diff options
| author | Danila Shutov <dcbrwn2@gmail.com> | 2020-06-16 22:48:31 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-16 20:48:31 +0100 |
| commit | 3a6dfda358112e2fb5d6f887a1a1e936eacddadd (patch) | |
| tree | 340e1e0442ef8ba346b522580b2b6bee66246b30 /src/client/content_cao.cpp | |
| parent | 0a1181f7637adab6fe1ba5d3c09038912a06b37f (diff) | |
| download | minetest-3a6dfda358112e2fb5d6f887a1a1e936eacddadd.tar.xz | |
Make shading of CAOs optional (#10033)
Diffstat (limited to 'src/client/content_cao.cpp')
| -rw-r--r-- | src/client/content_cao.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index eec4e3de0..5352c35f4 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -577,10 +577,16 @@ void GenericCAO::addToScene(ITextureSource *tsrc) if (m_enable_shaders) { IShaderSource *shader_source = m_client->getShaderSource(); - u32 shader_id = shader_source->getShader( - "object_shader", - (m_prop.use_texture_alpha) ? TILE_MATERIAL_ALPHA : TILE_MATERIAL_BASIC, - NDT_NORMAL); + MaterialType material_type; + + if (m_prop.shaded && m_prop.glow == 0) + material_type = (m_prop.use_texture_alpha) ? + TILE_MATERIAL_ALPHA : TILE_MATERIAL_BASIC; + else + material_type = (m_prop.use_texture_alpha) ? + TILE_MATERIAL_PLAIN_ALPHA : TILE_MATERIAL_PLAIN; + + u32 shader_id = shader_source->getShader("object_shader", material_type, NDT_NORMAL); m_material_type = shader_source->getShaderInfo(shader_id).material; } else { m_material_type = (m_prop.use_texture_alpha) ? @@ -1504,6 +1510,7 @@ bool GenericCAO::visualExpiryRequired(const ObjectProperties &new_) const return old.backface_culling != new_.backface_culling || old.is_visible != new_.is_visible || old.mesh != new_.mesh || + old.shaded != new_.shaded || old.use_texture_alpha != new_.use_texture_alpha || old.visual != new_.visual || old.visual_size != new_.visual_size || |
