Ticket #1613: samplerCheck.patch
File samplerCheck.patch, 26.6 KB (added by , 9 years ago) |
---|
-
binaries/data/mods/public/art/materials/objectcolor.xml
2 2 <material> 3 3 <shader effect="model"/> 4 4 <define name="USE_OBJECTCOLOR" value="1"/> 5 6 <required_sampler name="baseTex"/> 5 7 </material> -
binaries/data/mods/public/art/materials/player_trans_parallax.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.75"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="normTex"/> 26 23 27 </material> -
binaries/data/mods/public/art/materials/player_trans.xml
2 2 <material> 3 3 <shader effect="model"/> 4 4 <define name="USE_PLAYERCOLOR" value="1"/> 5 <required_sampler name="baseTex"/> 5 6 </material> -
binaries/data/mods/public/art/materials/trans_wind_parallax_spec.xml
13 13 <renderquery name="sim_time"/> 14 14 <define name="USE_WIND" value="1"/> 15 15 <uniform name="windData" value="1.0 1.0"/> 16 17 <required_sampler name="baseTex"/> 18 <required_sampler name="specTex"/> 19 <required_sampler name="normTex"/> 16 20 </material> -
binaries/data/mods/public/art/materials/terrain_norm.xml
4 4 <define name="USE_NORMAL_MAP" value="1"/> 5 5 6 6 <uniform name="effectSettings" value="1.0 15.0 0.0 0.0"/> 7 <required_sampler name="normTex"/> 7 8 </material> -
binaries/data/mods/public/art/materials/trans_wind.xml
4 4 <renderquery name="sim_time"/> 5 5 <define name="USE_WIND" value="1"/> 6 6 <uniform name="windData" value="1.0 1.0"/> 7 <required_sampler name="baseTex"/> 7 8 </material> -
binaries/data/mods/public/art/materials/player_trans_spec.xml
12 12 Third value: Parallax scale. 13 13 Fourth value: AO amount. --> 14 14 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 15 16 <required_sampler name="baseTex"/> 17 <required_sampler name="specTex"/> 18 15 19 </material> -
binaries/data/mods/public/art/materials/player_water.xml
13 13 <uniform name="murkiness" value="0.6"/> 14 14 <uniform name="reflectionTint" value="0.3 0.4 0.3"/> 15 15 <uniform name="reflectionTintStrength" value="0.1"/> 16 <required_sampler name="baseTex"/> 16 17 </material> -
binaries/data/mods/public/art/materials/terrain_base.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <material> 3 3 <shader effect="terrain_base"/> 4 <required_sampler name="baseTex"/> 4 5 </material> -
binaries/data/mods/public/art/materials/basic_trans.xml
4 4 <alpha_blending/> 5 5 <define name="USE_TRANSPARENT" value="1"/> 6 6 <alternative material="alphatest.xml" if="CFG_FORCE_ALPHATEST"/> 7 8 <required_sampler name="baseTex"/> 7 9 </material> -
binaries/data/mods/public/art/materials/basic_trans_ao_spec.xml
22 22 Third value: Parallax scale. 23 23 Fourth value: AO amount. --> 24 24 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 25 26 <required_sampler name="baseTex"/> 27 <required_sampler name="specTex"/> 28 <required_sampler name="aoTex"/> 25 29 </material> -
binaries/data/mods/public/art/materials/basic_trans_spec.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="specTex"/> 26 <required_sampler name="normTex"/> 27 23 28 </material> -
binaries/data/mods/public/art/materials/objectcolor_specmap.xml
6 6 7 7 <define name="USE_SPECULAR_MAP" value="1"/> 8 8 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 9 10 <required_sampler name="baseTex"/> 11 <required_sampler name="specTex"/> 9 12 </material> -
binaries/data/mods/public/art/materials/objectcolor_spec.xml
7 7 <define name="USE_SPECULAR" value="1"/> 8 8 <uniform name="specularPower" value="16.0"/> 9 9 <uniform name="specularColor" value="1.0 1.0 1.0"/> 10 11 <required_sampler name="baseTex"/> 10 12 </material> -
binaries/data/mods/public/art/materials/basic_glow.xml
8 8 <define name="USE_SPECULAR_MAP" value="1"/> 9 9 <define name="USE_SELF_LIGHT" value="1"/> 10 10 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 11 <required_sampler name="baseTex"/> 12 <required_sampler name="specTex"/> 11 13 </material> -
binaries/data/mods/public/art/materials/terrain_norm_spec.xml
5 5 <define name="USE_SPECULAR_MAP" value="1"/> 6 6 7 7 <uniform name="effectSettings" value="1.0 15.0 0.0 0.0"/> 8 <required_sampler name="baseTex"/> 9 <required_sampler name="normTex"/> 10 <required_sampler name="specTex"/> 8 11 </material> -
binaries/data/mods/public/art/materials/aura.xml
8 8 <define name="USE_SELF_LIGHT" value="1"/> 9 9 <uniform name="specularPower" value="100.0"/> 10 10 <uniform name="specularColor" value="1.0 1.0 1.0"/> 11 <required_sampler name="baseTex"/> 12 <required_sampler name="specTex"/> 11 13 </material> -
binaries/data/mods/public/art/materials/player_trans_ao.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.6"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="aoTex"/> 26 23 27 </material> -
binaries/data/mods/public/art/materials/basic_spec.xml
5 5 <define name="USE_SPECULAR" value="1"/> 6 6 <uniform name="specularPower" value="16.0"/> 7 7 <uniform name="specularColor" value="1.0 1.0 1.0"/> 8 9 <required_sampler name="baseTex"/> 8 10 </material> -
binaries/data/mods/public/art/materials/no_trans_parallax_ao.xml
18 18 Third value: Parallax scale. 19 19 Fourth value: AO amount. --> 20 20 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 21 <required_sampler name="baseTex"/> 22 <required_sampler name="normTex"/> 23 <required_sampler name="aoTex"/> 24 21 25 </material> -
binaries/data/mods/public/art/materials/alphatest_ao_parallax_spec.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <material> 3 <required_sampler name="baseTex"/> 4 3 5 <shader effect="model_transparent"/> 4 6 <define name="USE_TRANSPARENT" value="1"/> 5 7 <define name="USE_ALPHATEST" value="1"/> 6 8 9 <required_sampler name="baseTex"/> 7 10 <!--define name="USE_PLAYERCOLOR" value="1"/--> 8 11 9 12 <!-- REQUIRES: Actor must provide a texture named "normTex", where the Alpha channel -
binaries/data/mods/public/art/materials/waterfall.xml
7 7 8 8 <uniform name="specularPower" value="16.0"/> 9 9 <uniform name="specularColor" value="1.0 1.0 1.0"/> 10 11 <required_sampler name="baseTex"/> 10 12 </material> -
binaries/data/mods/public/art/materials/rock_bump_spec_test.xml
46 46 Third value: Parallax scale. 47 47 Fourth value: AO amount. --> 48 48 <uniform name="effectSettings" value="5.0 50.0 0.0075 0.85"/> 49 50 <required_sampler name="baseTex"/> 51 <required_sampler name="normTex"/> 52 <required_sampler name="specTex"/> 49 53 </material> -
binaries/data/mods/public/art/materials/playercolor_spec.xml
7 7 <define name="USE_SPECULAR" value="1"/> 8 8 <uniform name="specularPower" value="16.0"/> 9 9 <uniform name="specularColor" value="1.0 1.0 1.0"/> 10 <required_sampler name="baseTex"/> 10 11 </material> -
binaries/data/mods/public/art/materials/blend_spec.xml
9 9 <define name="USE_SPECULAR" value="1"/> 10 10 <uniform name="specularPower" value="16.0"/> 11 11 <uniform name="specularColor" value="1.0 1.0 1.0"/> 12 <required_sampler name="baseTex"/> 12 13 </material> -
binaries/data/mods/public/art/materials/basic_trans_parallax_spec.xml
22 22 Third value: Parallax scale. 23 23 Fourth value: AO amount. --> 24 24 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 25 <required_sampler name="baseTex"/> 26 <required_sampler name="specTex"/> 27 <required_sampler name="normTex"/> 25 28 </material> -
binaries/data/mods/public/art/materials/alphatest_spec.xml
7 7 <define name="USE_SPECULAR" value="1"/> 8 8 <uniform name="specularPower" value="16.0"/> 9 9 <uniform name="specularColor" value="1.0 1.0 1.0"/> 10 <required_sampler name="baseTex"/> 10 11 </material> -
binaries/data/mods/public/art/materials/material.rnc
39 39 element renderquery { 40 40 attribute name { text } 41 41 }* 42 element required_sampler { 43 attribute name { text } 44 }* 42 45 } -
binaries/data/mods/public/art/materials/basic_trans_ao_parallax_spec.xml
22 22 Third value: Parallax scale. 23 23 Fourth value: AO amount. --> 24 24 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 25 26 <required_sampler name="baseTex"/> 27 <required_sampler name="normTex"/> 28 <required_sampler name="specTex"/> 29 <required_sampler name="aoTex"/> 25 30 </material> -
binaries/data/mods/public/art/materials/terrain_grass.xml
5 5 <!--define name="USE_SPECULAR_MAP" value="1"/--> 6 6 7 7 <!--uniform name="specularPower" value="15.0"/--> 8 <required_sampler name="baseTex"/> 8 9 </material> -
binaries/data/mods/public/art/materials/material.rng
86 86 <attribute name="name"/> 87 87 </element> 88 88 </zeroOrMore> 89 <zeroOrMore> 90 <element name="required_sampler"> 91 <attribute name="name"/> 92 </element> 93 </zeroOrMore> 89 94 </interleave> 90 95 </element> -
binaries/data/mods/public/art/materials/basic_trans_ao.xml
22 22 Third value: Parallax scale. 23 23 Fourth value: AO amount. --> 24 24 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 25 26 <required_sampler name="baseTex"/> 27 <required_sampler name="aoTex"/> 25 28 </material> -
binaries/data/mods/public/art/materials/terrain_triplanar_norm_spec.xml
6 6 <define name="USE_TRIPLANAR" value="1"/> 7 7 8 8 <uniform name="effectSettings" value="1.0 15.0 0.0 0.0"/> 9 <required_sampler name="baseTex"/> 10 <required_sampler name="normTex"/> 11 <required_sampler name="specTex"/> 9 12 </material> -
binaries/data/mods/public/art/materials/basic_trans_wind.xml
6 6 <renderquery name="sim_time"/> 7 7 <define name="USE_WIND" value="1"/> 8 8 <uniform name="windData" value="1.0 1.0"/> 9 <required_sampler name="baseTex"/> 9 10 </material> -
binaries/data/mods/public/art/materials/no_trans_ao.xml
19 19 Third value: Parallax scale. 20 20 Fourth value: AO amount. --> 21 21 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 22 23 <required_sampler name="baseTex"/> 24 <required_sampler name="aoTex"/> 22 25 </material> -
binaries/data/mods/public/art/materials/alphatest.xml
3 3 <shader effect="model_transparent"/> 4 4 <define name="USE_TRANSPARENT" value="1"/> 5 5 <define name="USE_ALPHATEST" value="1"/> 6 <required_sampler name="baseTex"/> 7 6 8 </material> -
binaries/data/mods/public/art/materials/basic_specmap.xml
18 18 Third value: Parallax scale. 19 19 Fourth value: AO amount. --> 20 20 <uniform name="effectSettings" value="1.0 25.0 0.0075 0.85"/> 21 22 <required_sampler name="baseTex"/> 23 <required_sampler name="specTex"/> 21 24 </material> -
binaries/data/mods/public/art/materials/terrain_triplanar.xml
4 4 <define name="USE_TRIPLANAR" value="1"/> 5 5 6 6 <uniform name="effectSettings" value="1.0 15.0 0.0 0.0"/> 7 <required_sampler name="baseTex"/> 7 8 </material> -
binaries/data/mods/public/art/materials/player_trans_parallax_spec.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="specTex"/> 26 <required_sampler name="normTex"/> 27 23 28 </material> -
binaries/data/mods/public/art/materials/rock_bump_spec_ao_test.xml
47 47 Third value: Parallax scale. 48 48 Fourth value: AO amount. --> 49 49 <uniform name="effectSettings" value="1.0 10.0 0.0075 0.85"/> 50 51 <required_sampler name="baseTex"/> 52 <required_sampler name="specTex"/> 53 <required_sampler name="normTex"/> 54 <required_sampler name="aoTex"/> 55 50 56 </material> -
binaries/data/mods/public/art/materials/player_trans_ao_parallax_spec.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.6"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="normTex"/> 26 <required_sampler name="specTex"/> 27 <required_sampler name="aoTex"/> 23 28 </material> -
binaries/data/mods/public/art/materials/player_trans_ao_spec.xml
20 20 Third value: Parallax scale. 21 21 Fourth value: AO amount. --> 22 22 <uniform name="effectSettings" value="1.0 50.0 0.0075 0.85"/> 23 24 <required_sampler name="baseTex"/> 25 <required_sampler name="specTex"/> 26 <required_sampler name="normTex"/> 27 <required_sampler name="aoTex"/> 28 23 29 </material> -
binaries/data/mods/public/art/materials/player_trans_spec_helmet.xml
12 12 Third value: Parallax scale. 13 13 Fourth value: AO amount. --> 14 14 <uniform name="effectSettings" value="1.0 20.0 0.0075 0.85"/> 15 16 <required_sampler name="baseTex"/> 17 <required_sampler name="specTex"/> 18 15 19 </material> -
binaries/data/mods/public/art/materials/default.xml
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <material> 3 3 <shader effect="model"/> 4 <required_sampler name="baseTex"/> 4 5 </material> -
source/graphics/Material.h
74 74 void AddRenderQuery(const char* key); 75 75 const CShaderRenderQueries& GetRenderQueries() const { return m_RenderQueries; } 76 76 77 void AddRequiredSampler(const CStr& samplerName); 78 const std::vector<CStrIntern>& GetRequiredSampler() const { return m_RequiredSamplers; } 79 77 80 // Must be called after all AddShaderDefine and AddConditionalDefine 78 81 void RecomputeCombinedShaderDefines(); 79 82 … … 84 87 CTexturePtr m_DiffuseTexture; 85 88 86 89 SamplersVector m_Samplers; 90 std::vector<CStrIntern> m_RequiredSamplers; 87 91 88 92 CStrIntern m_ShaderEffect; 89 93 CShaderDefines m_ShaderDefines; -
source/graphics/ObjectEntry.cpp
136 136 LOGERROR("Actor '%s' has no textures.", utf8_from_wstring(m_Base->m_ShortName)); 137 137 } 138 138 139 const std::vector<CStrIntern> requiredSamplers = model->GetMaterial().GetRequiredSampler(); 140 139 141 std::vector<CObjectBase::Samp>::iterator samp; 140 142 for (samp = m_Samplers.begin(); samp != m_Samplers.end(); ++samp) 141 143 { 144 CStrIntern string(samp->m_SamplerName); 145 if (std::find(requiredSamplers.begin(), requiredSamplers.end(), string) == requiredSamplers.end()) 146 { 147 LOGERROR("Object %s: sampler %s is not required by %s", m_ModelName.string8().c_str(), samp->m_SamplerName.c_str(), m_Base->m_Material.string8().c_str()); 148 } 142 149 CTextureProperties textureProps(samp->m_SamplerFile); 143 150 textureProps.SetWrap(GL_CLAMP_TO_EDGE); 144 151 CTexturePtr texture = g_Renderer.GetTextureManager().CreateTexture(textureProps); … … 149 156 model->GetMaterial().AddSampler(CMaterial::TextureSampler(samp->m_SamplerName, texture)); 150 157 } 151 158 159 for (auto it : requiredSamplers) 160 { 161 bool found = false; 162 for (auto sampit : m_Samplers) 163 { 164 CStrIntern string(sampit.m_SamplerName); 165 if (string == it) 166 { 167 found = true; 168 break; 169 } 170 } 171 if (!found) 172 { 173 LOGERROR("Object %s: required sampler %s not found (material %s)", m_ModelName.string8().c_str(), it.string().c_str(), m_Base->m_Material.string8().c_str()); 174 } 175 } 176 152 177 // calculate initial object space bounds, based on vertex positions 153 178 model->CalcStaticObjectBounds(); 154 179 -
source/graphics/MaterialManager.cpp
58 58 EL(shader); 59 59 EL(uniform); 60 60 EL(renderquery); 61 EL(required_sampler); 61 62 EL(conditional_define); 62 63 AT(effect); 63 64 AT(if); … … 180 181 { 181 182 material.AddRenderQuery(attrs.GetNamedItem(at_name).c_str()); 182 183 } 184 else if (token == el_required_sampler) 185 { 186 material.AddRequiredSampler(attrs.GetNamedItem(at_name)); 183 187 } 188 } 184 189 185 190 material.RecomputeCombinedShaderDefines(); 186 191 -
source/graphics/Material.cpp
60 60 m_RenderQueries.Add(key); 61 61 } 62 62 63 void CMaterial::AddRequiredSampler(const CStr& samplerName) 64 { 65 CStrIntern string(samplerName); 66 m_RequiredSamplers.push_back(string); 67 } 68 69 63 70 // Set up m_CombinedShaderDefines so that index i contains m_ShaderDefines, plus 64 71 // the extra defines from m_ConditionalDefines[j] for all j where bit j is set in i. 65 72 // This lets GetShaderDefines() cheaply return the defines for any combination of conditions.