-
Notifications
You must be signed in to change notification settings - Fork 36
Description
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.