564c69e10a
The overriding of the color mode uniform in the default model effect wasn't working. It's difficult to override the individual properties of techniques, especially if their names aren't unique. So, I changed the model-default effect to use a parameter for the color-mode uniform; material-off.eff and material-diffuse.eff override that.
128 lines
4.6 KiB
XML
128 lines
4.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<PropertyList>
|
|
<name>Effects/model-default</name>
|
|
<parameters>
|
|
<texture n ="0">
|
|
<type>white</type>
|
|
</texture>
|
|
<vertex-program-two-side type="bool">false</vertex-program-two-side>
|
|
<material>
|
|
<color-mode-uniform>1</color-mode-uniform> <!-- DIFFUSE -->
|
|
</material>
|
|
</parameters>
|
|
<technique n="10">
|
|
<predicate>
|
|
<and>
|
|
<property>/sim/rendering/shader-effects</property>
|
|
<or>
|
|
<less-equal>
|
|
<value type="float">2.0</value>
|
|
<glversion/>
|
|
</less-equal>
|
|
<and>
|
|
<extension-supported>GL_ARB_shader_objects</extension-supported>
|
|
<extension-supported>GL_ARB_shading_language_100</extension-supported>
|
|
<extension-supported>GL_ARB_vertex_shader</extension-supported>
|
|
<extension-supported>GL_ARB_fragment_shader</extension-supported>
|
|
</and>
|
|
</or>
|
|
</and>
|
|
</predicate>
|
|
<pass>
|
|
<lighting>true</lighting>
|
|
<material>
|
|
<active><use>material/active</use></active>
|
|
<ambient><use>material/ambient</use></ambient>
|
|
<diffuse><use>material/diffuse</use></diffuse>
|
|
<specular><use>material/specular</use></specular>
|
|
<emissive><use>material/emissive</use></emissive>
|
|
<shininess><use>material/shininess</use></shininess>
|
|
<color-mode><use>material/color-mode</use></color-mode>
|
|
</material>
|
|
<blend>
|
|
<active><use>blend/active</use></active>
|
|
<source><use>blend/source</use></source>
|
|
<destination><use>blend/destination</use></destination>
|
|
</blend>
|
|
<shade-model><use>shade-model</use></shade-model>
|
|
<cull-face><use>cull-face</use></cull-face>
|
|
<rendering-hint><use>rendering-hint</use></rendering-hint>
|
|
<texture-unit>
|
|
<!-- The texture unit is always active because the shaders expect
|
|
that. -->
|
|
<unit>0</unit>
|
|
<!-- If there is a texture, the type in the derived effect
|
|
will be "2d". -->
|
|
<type><use>texture[0]/type</use></type>
|
|
<image><use>texture[0]/image</use></image>
|
|
<filter><use>texture[0]/filter</use></filter>
|
|
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
|
|
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
|
|
<!--
|
|
<internal-format>
|
|
<use>texture[0]/internal-format</use>
|
|
</internal-format>
|
|
-->
|
|
</texture-unit>
|
|
<vertex-program-two-side>
|
|
<use>vertex-program-two-side</use>
|
|
</vertex-program-two-side>
|
|
<program>
|
|
<vertex-shader>Shaders/default.vert</vertex-shader>
|
|
<fragment-shader>Shaders/default.frag</fragment-shader>
|
|
</program>
|
|
<uniform>
|
|
<name>texture</name>
|
|
<type>sampler-2d</type>
|
|
<value type="int">0</value>
|
|
</uniform>
|
|
<uniform>
|
|
<name>colorMode</name>
|
|
<type>int</type>
|
|
<value><use>material/color-mode-uniform</use></value>
|
|
</uniform>
|
|
</pass>
|
|
</technique>
|
|
<technique n="11">
|
|
<pass>
|
|
<lighting>true</lighting>
|
|
<material>
|
|
<active><use>material/active</use></active>
|
|
<ambient><use>material/ambient</use></ambient>
|
|
<diffuse><use>material/diffuse</use></diffuse>
|
|
<specular><use>material/specular</use></specular>
|
|
<emissive><use>material/emissive</use></emissive>
|
|
<shininess><use>material/shininess</use></shininess>
|
|
<color-mode><use>material/color-mode</use></color-mode>
|
|
</material>
|
|
<blend>
|
|
<active><use>blend/active</use></active>
|
|
<source><use>blend/source</use></source>
|
|
<destination><use>blend/destination</use></destination>
|
|
</blend>
|
|
<shade-model><use>shade-model</use></shade-model>
|
|
<cull-face><use>cull-face</use></cull-face>
|
|
<rendering-hint><use>rendering-hint</use></rendering-hint>
|
|
<texture-unit>
|
|
<active><use>texture[0]/active</use></active>
|
|
<unit>0</unit>
|
|
<image><use>texture[0]/image</use></image>
|
|
<filter><use>texture[0]/filter</use></filter>
|
|
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
|
|
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
|
|
<!--
|
|
<internal-format>
|
|
<use>texture[0]/internal-format</use>
|
|
</internal-format>
|
|
-->
|
|
<environment>
|
|
<mode>modulate</mode>
|
|
</environment>
|
|
</texture-unit>
|
|
<!-- A two-sided lighting model is set by default near the root
|
|
of the scene graph. Perhaps that ought to be set in this
|
|
effect?
|
|
-->
|
|
</pass>
|
|
</technique>
|
|
</PropertyList>
|