Texturize your procedural mesh directly from the voxels that compose it, having full control over the aesthetics produced by procedural algorithms like Marching cubes.While developing a game that creates procedural mesh from voxels, I found myself in the needs of applying textures that represented the voxel materials over the mesh. To do so, a simple triplanar projection based on mesh height wasn't enough, so I came up with the shader available in this package, that exploits UV channels to retrieve the data needed to blend different textures together.Inside you’ll find:Three shaders and related materials that process the voxel data and render it in the form of textures or colours. One shader renders textures and normal maps, one only textures and the last one only vertex coloursA script to visualize voxels as cubesTwo Marching Cubes scripts ready to use out of the box, of which one is optimized to reduce vertex count (works only with vertex colours tho)A few scripts to setup the demo scenesA MeshCombiner script that can be used, also in other projects, to combine meshes that share the same material, reducing drawcallsWarning: This asset requires Shader Graph package to be installed.This asset requires Shader Graph package to be installed.Warning: this shader is computing-heavy when it comes to pixels (the more you have the more it will be slow), it should not be used to render super high definition scenes, especially with diffuse and normal textures together.Some stress tests have been performed using a 2 GB Nvidia Quadro graphic card, i7 Intel core and 16 GB RAM PC. The stress demo scene rendered a maximum of 1.8 M vertices in the view (full screen 1920x1080) with a texture array of 30 different textures 2048x2048.Shader with diffuses and normal textures: 60 FPS minimum, 120 FPS averageShader with diffuse textures only: 90 FPS minimum 140 averageShader with vertex colours: 200 FPS minimum