You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here's an implementation I found working you can add to your tutorial:
ChunkBase.h:
(A blueprint-accessible array for materials, plus arrays for the material struct and vertices instead of single values)
ChunkBase.cpp:
(On clearing, empty the arrays then refresh using the total amount of materials, not blocks)
NaiveChunk.cpp, in GenerateMesh():
(Get the material for the current block's face, minus 2 to skip null and air enums, clamp as a safety, then pass it to CreateFace() )
NaiveChunk.cpp, in CreateFace():
(Switch all mesh structs and the vertex int to the new arrays)
GreedyChunk.cpp, GenerateMesh():
(Same as NaiveChunk, but using CurrentMask.Block for the face's material)
ApplyMesh():
(First clear all previous sections, then generate a new one for each material on the chunk)
Basically the same code as before, but generates one unique section for each different block material. Straightforward to scale-up (just add materials to the array) and supports both naive/greedy meshing. Maybe you had something in mind too of the like.
The text was updated successfully, but these errors were encountered:
I was pondering on the same issue for a while, I was thinking of having 2 Materials (One base martials with texture arrays) and one for fluids like water with some other effects, for a while I as thinking on creating 2 separate meshed that means 2 runs of meshing algorithms which won't be performant, Didn't think of mesh sections. this is a nice scalable solution. I'll be sure to include this and credit you.
@Ayliroe Hey man. I sadly cannot seem to get your code to work. mind adding me on discord so I can bother you there haha?
No seriously please add me on discord I really need the help here is my username "anasdev"
Here's an implementation I found working you can add to your tutorial:
ChunkBase.h:
(A blueprint-accessible array for materials, plus arrays for the material struct and vertices instead of single values)
ChunkBase.cpp:
(On clearing, empty the arrays then refresh using the total amount of materials, not blocks)
NaiveChunk.cpp, in GenerateMesh():
(Get the material for the current block's face, minus 2 to skip null and air enums, clamp as a safety, then pass it to CreateFace() )
NaiveChunk.cpp, in CreateFace():
(Switch all mesh structs and the vertex int to the new arrays)
GreedyChunk.cpp, GenerateMesh():
(Same as NaiveChunk, but using CurrentMask.Block for the face's material)
ApplyMesh():
(First clear all previous sections, then generate a new one for each material on the chunk)
Basically the same code as before, but generates one unique section for each different block material. Straightforward to scale-up (just add materials to the array) and supports both naive/greedy meshing. Maybe you had something in mind too of the like.
The text was updated successfully, but these errors were encountered: