Optional overlay texture for models
This commit is contained in:
parent
cea50f52ed
commit
f62550e115
2 changed files with 73 additions and 18 deletions
|
@ -89,6 +89,17 @@ please see Docs/README.model-combined.eff for documentation
|
||||||
</texture>
|
</texture>
|
||||||
<reflection-noise type="float">0.25</reflection-noise>
|
<reflection-noise type="float">0.25</reflection-noise>
|
||||||
<!-- END Reflection -->
|
<!-- END Reflection -->
|
||||||
|
<!-- grain texture -->
|
||||||
|
<grain-texture-enabled type="int">0</grain-texture-enabled>
|
||||||
|
<grain-magnification type="float">10</grain-magnification>
|
||||||
|
<texture n="14">
|
||||||
|
<image>Textures/Terrain/void.png</image>
|
||||||
|
<filter>linear-mipmap-linear</filter>
|
||||||
|
<wrap-s>repeat</wrap-s>
|
||||||
|
<wrap-t>repeat</wrap-t>
|
||||||
|
<internal-format>normalized</internal-format>
|
||||||
|
</texture>
|
||||||
|
<!-- END Grain texture -->
|
||||||
<!-- Dirt -->
|
<!-- Dirt -->
|
||||||
<dirt-enabled type="int">0</dirt-enabled>
|
<dirt-enabled type="int">0</dirt-enabled>
|
||||||
<dirt-multi type="int">0</dirt-multi>
|
<dirt-multi type="int">0</dirt-multi>
|
||||||
|
@ -348,7 +359,7 @@ please see Docs/README.model-combined.eff for documentation
|
||||||
</internal-format>
|
</internal-format>
|
||||||
</texture-unit>
|
</texture-unit>
|
||||||
<!-- Reflection rainbow texture unit-->
|
<!-- Reflection rainbow texture unit-->
|
||||||
<texture-unit>
|
<!--<texture-unit>
|
||||||
<unit>7</unit>
|
<unit>7</unit>
|
||||||
<image>
|
<image>
|
||||||
<use>texture[7]/image</use>
|
<use>texture[7]/image</use>
|
||||||
|
@ -365,26 +376,35 @@ please see Docs/README.model-combined.eff for documentation
|
||||||
<internal-format>
|
<internal-format>
|
||||||
<use>texture[7]/internal-format</use>
|
<use>texture[7]/internal-format</use>
|
||||||
</internal-format>
|
</internal-format>
|
||||||
</texture-unit>
|
</texture-unit>-->
|
||||||
|
|
||||||
|
<!-- Grain texture -->
|
||||||
|
<texture-unit>
|
||||||
|
<unit>7</unit>
|
||||||
|
<image>
|
||||||
|
<use>texture[14]/image</use>
|
||||||
|
</image>
|
||||||
|
<filter>
|
||||||
|
<use>texture[14]/filter</use>
|
||||||
|
</filter>
|
||||||
|
<wrap-s>
|
||||||
|
<use>texture[14]/wrap-s</use>
|
||||||
|
</wrap-s>
|
||||||
|
<wrap-t>
|
||||||
|
<use>texture[14]/wrap-t</use>
|
||||||
|
</wrap-t>
|
||||||
|
<internal-format>
|
||||||
|
<use>texture[14]/internal-format</use>
|
||||||
|
</internal-format>
|
||||||
|
</texture-unit>
|
||||||
|
|
||||||
<vertex-program-two-side>
|
<vertex-program-two-side>
|
||||||
<use>vertex-program-two-side</use>
|
<use>vertex-program-two-side</use>
|
||||||
</vertex-program-two-side>
|
</vertex-program-two-side>
|
||||||
|
|
||||||
<program>
|
<program>
|
||||||
<!-- <vertex-shader n="0">Shaders/include_fog.vert</vertex-shader> -->
|
|
||||||
<vertex-shader n="1">Shaders/ubershader.vert</vertex-shader>
|
<vertex-shader n="1">Shaders/ubershader.vert</vertex-shader>
|
||||||
<!-- <fragment-shader n="0">Shaders/include_fog.frag</fragment-shader> -->
|
|
||||||
<fragment-shader n="1">Shaders/ubershader-lightfield.frag</fragment-shader>
|
<fragment-shader n="1">Shaders/ubershader-lightfield.frag</fragment-shader>
|
||||||
<!--<attribute>
|
|
||||||
<name>tangent</name>
|
|
||||||
<index>6</index>
|
|
||||||
</attribute>
|
|
||||||
<attribute>
|
|
||||||
<name>binormal</name>
|
|
||||||
<index>7</index>
|
|
||||||
</attribute>-->
|
|
||||||
</program>
|
</program>
|
||||||
|
|
||||||
<uniform>
|
<uniform>
|
||||||
|
@ -429,13 +449,17 @@ please see Docs/README.model-combined.eff for documentation
|
||||||
<value type="int">6</value>
|
<value type="int">6</value>
|
||||||
</uniform>
|
</uniform>
|
||||||
|
|
||||||
<uniform>
|
<!--<uniform>
|
||||||
<name>ReflRainbowTex</name>
|
<name>ReflRainbowTex</name>
|
||||||
<type>sampler-2d</type>
|
<type>sampler-2d</type>
|
||||||
<value type="int">7</value>
|
<value type="int">7</value>
|
||||||
</uniform>
|
</uniform>-->
|
||||||
|
|
||||||
|
|
||||||
|
<uniform>
|
||||||
|
<name>GrainTex</name>
|
||||||
|
<type>sampler-2d</type>
|
||||||
|
<value type="int">7</value>
|
||||||
|
</uniform>
|
||||||
|
|
||||||
<!-- NORMAL MAP -->
|
<!-- NORMAL MAP -->
|
||||||
<!-- normalmap is used-->
|
<!-- normalmap is used-->
|
||||||
|
@ -672,6 +696,24 @@ please see Docs/README.model-combined.eff for documentation
|
||||||
</value>
|
</value>
|
||||||
</uniform>
|
</uniform>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- use a grain texture map-->
|
||||||
|
<uniform>
|
||||||
|
<name>grain_texture_enabled</name>
|
||||||
|
<type>int</type>
|
||||||
|
<value>
|
||||||
|
<use>grain-texture-enabled</use>
|
||||||
|
</value>
|
||||||
|
</uniform>
|
||||||
|
|
||||||
|
<uniform>
|
||||||
|
<name>grain_magnification</name>
|
||||||
|
<type>float</type>
|
||||||
|
<value>
|
||||||
|
<use>grain-magnification</use>
|
||||||
|
</value>
|
||||||
|
</uniform>
|
||||||
|
|
||||||
<!-- set the amount of ambient light correction 0.0 - 1.0 -->
|
<!-- set the amount of ambient light correction 0.0 - 1.0 -->
|
||||||
<uniform>
|
<uniform>
|
||||||
<name>amb_correction</name>
|
<name>amb_correction</name>
|
||||||
|
|
|
@ -22,9 +22,10 @@ uniform sampler2D LightMapTex;
|
||||||
uniform sampler2D NormalTex;
|
uniform sampler2D NormalTex;
|
||||||
uniform sampler2D ReflFresnelTex;
|
uniform sampler2D ReflFresnelTex;
|
||||||
uniform sampler2D ReflMapTex;
|
uniform sampler2D ReflMapTex;
|
||||||
uniform sampler2D ReflRainbowTex;
|
//uniform sampler2D ReflRainbowTex;
|
||||||
uniform sampler3D ReflNoiseTex;
|
uniform sampler3D ReflNoiseTex;
|
||||||
uniform samplerCube Environment;
|
uniform samplerCube Environment;
|
||||||
|
uniform sampler2D GrainTex;
|
||||||
|
|
||||||
uniform int dirt_enabled;
|
uniform int dirt_enabled;
|
||||||
uniform int dirt_multi;
|
uniform int dirt_multi;
|
||||||
|
@ -35,6 +36,7 @@ uniform int nmap_enabled;
|
||||||
uniform int refl_enabled;
|
uniform int refl_enabled;
|
||||||
uniform int refl_map;
|
uniform int refl_map;
|
||||||
uniform int shader_qual;
|
uniform int shader_qual;
|
||||||
|
uniform int grain_texture_enabled;
|
||||||
|
|
||||||
uniform float amb_correction;
|
uniform float amb_correction;
|
||||||
uniform float dirt_b_factor;
|
uniform float dirt_b_factor;
|
||||||
|
@ -49,6 +51,7 @@ uniform float refl_correction;
|
||||||
uniform float refl_fresnel;
|
uniform float refl_fresnel;
|
||||||
uniform float refl_noise;
|
uniform float refl_noise;
|
||||||
uniform float refl_rainbow;
|
uniform float refl_rainbow;
|
||||||
|
uniform float grain_magnification;
|
||||||
|
|
||||||
|
|
||||||
uniform float avisibility;
|
uniform float avisibility;
|
||||||
|
@ -116,6 +119,8 @@ void main (void)
|
||||||
vec4 noisevec = texture3D(ReflNoiseTex, rawpos.xyz);
|
vec4 noisevec = texture3D(ReflNoiseTex, rawpos.xyz);
|
||||||
vec4 lightmapTexel = texture2D(LightMapTex, gl_TexCoord[0].st);
|
vec4 lightmapTexel = texture2D(LightMapTex, gl_TexCoord[0].st);
|
||||||
|
|
||||||
|
vec4 grainTexel;
|
||||||
|
|
||||||
vec3 mixedcolor;
|
vec3 mixedcolor;
|
||||||
vec3 N = vec3(0.0,0.0,1.0);
|
vec3 N = vec3(0.0,0.0,1.0);
|
||||||
float pf = 0.0;
|
float pf = 0.0;
|
||||||
|
@ -203,6 +208,14 @@ void main (void)
|
||||||
|
|
||||||
/// END light
|
/// END light
|
||||||
|
|
||||||
|
/// BEGIN grain overlay
|
||||||
|
if (grain_texture_enabled > 0)
|
||||||
|
{
|
||||||
|
grainTexel = texture2D(GrainTex, gl_TexCoord[0].st * grain_magnification);
|
||||||
|
texel.rgb = mix(texel.rgb, grainTexel.rgb, grainTexel.a );
|
||||||
|
}
|
||||||
|
/// END grain overlay
|
||||||
|
|
||||||
///BEGIN bump
|
///BEGIN bump
|
||||||
if (nmap_enabled > 0 && shader_qual > 2){
|
if (nmap_enabled > 0 && shader_qual > 2){
|
||||||
N = nmap.rgb * 2.0 - 1.0;
|
N = nmap.rgb * 2.0 - 1.0;
|
||||||
|
@ -217,7 +230,7 @@ void main (void)
|
||||||
vec3 viewVec = normalize(vViewVec);
|
vec3 viewVec = normalize(vViewVec);
|
||||||
float v = abs(dot(viewVec, normalize(VNormal)));// Map a rainbowish color
|
float v = abs(dot(viewVec, normalize(VNormal)));// Map a rainbowish color
|
||||||
vec4 fresnel = texture2D(ReflFresnelTex, vec2(v, 0.0));
|
vec4 fresnel = texture2D(ReflFresnelTex, vec2(v, 0.0));
|
||||||
vec4 rainbow = texture2D(ReflRainbowTex, vec2(v, 0.0));
|
//vec4 rainbow = texture2D(ReflRainbowTex, vec2(v, 0.0));
|
||||||
|
|
||||||
float nDotVP = max(0.0, dot(N, normalize(gl_LightSource[0].position.xyz)));
|
float nDotVP = max(0.0, dot(N, normalize(gl_LightSource[0].position.xyz)));
|
||||||
float nDotHV = max(0.0, dot(N, normalize(gl_LightSource[0].halfVector.xyz)));
|
float nDotHV = max(0.0, dot(N, normalize(gl_LightSource[0].halfVector.xyz)));
|
||||||
|
@ -262,7 +275,7 @@ void main (void)
|
||||||
reflFactor = clamp(reflFactor, 0.0, 1.0);
|
reflFactor = clamp(reflFactor, 0.0, 1.0);
|
||||||
|
|
||||||
// add fringing fresnel and rainbow effects and modulate by reflection
|
// add fringing fresnel and rainbow effects and modulate by reflection
|
||||||
vec4 reflcolor = mix(reflection, rainbow, refl_rainbow * v);
|
vec4 reflcolor = reflection;//mix(reflection, rainbow, refl_rainbow * v);
|
||||||
reflcolor += Specular * nmap.a;
|
reflcolor += Specular * nmap.a;
|
||||||
vec4 reflfrescolor = mix(reflcolor, fresnel, refl_fresnel * v);
|
vec4 reflfrescolor = mix(reflcolor, fresnel, refl_fresnel * v);
|
||||||
vec4 noisecolor = mix(reflfrescolor, noisevec, refl_noise);
|
vec4 noisecolor = mix(reflfrescolor, noisevec, refl_noise);
|
||||||
|
|
Loading…
Reference in a new issue