mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Implement a global shader parameter passing system and useful shaders
This commit is contained in:
parent
22e6fb7056
commit
27373919f4
15 changed files with 241 additions and 90 deletions
|
@ -1012,8 +1012,11 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data):
|
|||
Convert MeshCollector to SMesh
|
||||
Also store animation info
|
||||
*/
|
||||
video::E_MATERIAL_TYPE shadermat = m_gamedef->getShaderSource()->
|
||||
getShader("the_darkness_of_light").material;
|
||||
bool enable_shaders = (g_settings->getS32("enable_shaders") > 0);
|
||||
video::E_MATERIAL_TYPE shadermat1 = m_gamedef->getShaderSource()->
|
||||
getShader("test_shader_1").material;
|
||||
video::E_MATERIAL_TYPE shadermat2 = m_gamedef->getShaderSource()->
|
||||
getShader("test_shader_2").material;
|
||||
for(u32 i = 0; i < collector.prebuffers.size(); i++)
|
||||
{
|
||||
PreMeshBuffer &p = collector.prebuffers[i];
|
||||
|
@ -1080,8 +1083,12 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data):
|
|||
material.setTexture(0, p.tile.texture.atlas);
|
||||
p.tile.applyMaterialOptions(material);
|
||||
|
||||
//if(material.MaterialType == video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF)
|
||||
material.MaterialType = shadermat;
|
||||
if(enable_shaders){
|
||||
if(material.MaterialType == video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF)
|
||||
material.MaterialType = shadermat1;
|
||||
if(material.MaterialType == video::EMT_TRANSPARENT_VERTEX_ALPHA)
|
||||
material.MaterialType = shadermat2;
|
||||
}
|
||||
|
||||
// Create meshbuffer
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue