summaryrefslogtreecommitdiffstats
path: root/o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl')
-rw-r--r--o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl174
1 files changed, 174 insertions, 0 deletions
diff --git a/o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl b/o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl
new file mode 100644
index 0000000..6a7838f
--- /dev/null
+++ b/o3d/samples/beachdemo/shaders_glsl/underwatershader.glsl
@@ -0,0 +1,174 @@
+// glslv profile log:
+// (64) : warning C7011: implicit cast from "float4" to "float3"
+// (64) : warning C7011: implicit cast from "float4" to "float3"
+// 80 lines, 2 warnings, 0 errors.
+
+// glslf profile log:
+// 80 lines, 0 errors.
+
+// glslv output by Cg compiler
+// cgc version 2.0.0010, build date Dec 12 2007
+// command line args: -profile glslv
+//vendor NVIDIA Corporation
+//version 2.0.0.10
+//profile glslv
+//program vertexShaderFunction
+//semantic world : WORLD
+//semantic viewProjection : VIEWPROJECTION
+//semantic waterColor
+//semantic sunVector
+//semantic fadeFudge
+//semantic diffuseSampler
+//var float4x4 world : WORLD : _ZZ2Sworld[0], 4 : -1 : 1
+//var float4x4 viewProjection : VIEWPROJECTION : _ZZ2SviewProjection[0], 4 : -1 : 1
+//var float4 waterColor : : : -1 : 0
+//var float3 sunVector : : _ZZ2SsunVector : -1 : 1
+//var float fadeFudge : : _ZZ2SfadeFudge : -1 : 1
+//var sampler diffuseSampler : : : -1 : 0
+//var float4 input.position : $vin.POSITION : POSITION : 0 : 1
+//var float3 input.normal : $vin.ATTR8 : $_ZZ3SZaTMP32 : 0 : 1
+//var float2 input.texcoord : $vin.TEXCOORD0 : TEXCOORD0 : 0 : 1
+//var float4 vertexShaderFunction.position : $vout.POSITION : POSITION : -1 : 1
+//var float2 vertexShaderFunction.texcoord : $vout.TEXCOORD0 : TEXCOORD0 : -1 : 1
+//var float vertexShaderFunction.fade : $vout.TEXCOORD1 : TEXCOORD1 : -1 : 1
+//var float4 vertexShaderFunction.color : $vout.TEXCOORD2 : TEXCOORD2 : -1 : 1
+//var float4 vertexShaderFunction.worldPosition : $vout.TEXCOORD3 : TEXCOORD3 : -1 : 1
+
+attribute vec4 position;
+attribute vec4 texcoord0;
+vec4 _glPositionTemp;
+uniform vec4 dx_clipping;
+
+struct VertexShaderInput {
+ vec4 position;
+ vec3 normal;
+ vec2 texcoord;
+};
+
+struct PixelShaderInput {
+ vec4 position;
+ vec2 texcoord;
+ float fade;
+ vec4 color;
+ vec4 worldPosition;
+};
+
+PixelShaderInput _ZZ3Sret_0;
+vec4 _ZZ3SrZh0011;
+vec4 _ZZ3SrZh0013;
+vec4 _ZZ3SvZh0013;
+vec4 _ZZ3SrZh0015;
+vec4 _ZZ3SvZh0015;
+vec4 _ZZ3SZDtemp16;
+float _ZZ3SxZh0023;
+float _ZZ3SxZh0025;
+float _ZZ3SZDtemp26;
+float _ZZ3SbZh0031;
+attribute vec4 normal;
+uniform mat4 world;
+uniform mat4 viewprojection;
+uniform vec3 sunVector;
+uniform float fadeFudge;
+
+ // main procedure, the original name was vertexShaderFunction
+void main()
+{
+
+ PixelShaderInput _ZZ4Soutput;
+
+ _ZZ3SrZh0011 = position.x*world[0];
+ _ZZ3SrZh0011 = _ZZ3SrZh0011 + position.y*world[1];
+ _ZZ3SrZh0011 = _ZZ3SrZh0011 + position.z*world[2];
+ _ZZ3SrZh0011 = _ZZ3SrZh0011 + position.w*world[3];
+ _ZZ3SvZh0013 = vec4(_ZZ3SrZh0011.x, _ZZ3SrZh0011.y, _ZZ3SrZh0011.z, 1.00000000E+00);
+ _ZZ3SrZh0013 = _ZZ3SvZh0013.x*viewprojection[0];
+ _ZZ3SrZh0013 = _ZZ3SrZh0013 + _ZZ3SvZh0013.y*viewprojection[1];
+ _ZZ3SrZh0013 = _ZZ3SrZh0013 + _ZZ3SvZh0013.z*viewprojection[2];
+ _ZZ3SrZh0013 = _ZZ3SrZh0013 + _ZZ3SvZh0013.w*viewprojection[3];
+ _ZZ3SvZh0015 = vec4(normal.x, normal.y, normal.z, 0.00000000E+00);
+ _ZZ3SrZh0015 = _ZZ3SvZh0015.x*world[0];
+ _ZZ3SrZh0015 = _ZZ3SrZh0015 + _ZZ3SvZh0015.y*world[1];
+ _ZZ3SrZh0015 = _ZZ3SrZh0015 + _ZZ3SvZh0015.z*world[2];
+ _ZZ3SrZh0015 = _ZZ3SrZh0015 + _ZZ3SvZh0015.w*world[3];
+ _ZZ3SxZh0023 = dot(_ZZ3SrZh0015, _ZZ3SrZh0015);
+ _ZZ3SZDtemp16 = inversesqrt(_ZZ3SxZh0023)*_ZZ3SrZh0015;
+ _ZZ4Soutput.color = vec4(dot(sunVector, _ZZ3SZDtemp16.xyz), dot(sunVector, _ZZ3SZDtemp16.xyz), dot(sunVector, _ZZ3SZDtemp16.xyz), dot(sunVector, _ZZ3SZDtemp16.xyz));
+ _ZZ3SxZh0025 = _ZZ3SrZh0011.z*fadeFudge;
+ _ZZ3SbZh0031 = min(1.00000000E+00, _ZZ3SxZh0025);
+ _ZZ3SZDtemp26 = max(0.00000000E+00, _ZZ3SbZh0031);
+ _ZZ4Soutput.fade = 2.00000003E-01 + 8.00000012E-01*_ZZ3SZDtemp26;
+ _ZZ3Sret_0.position = _ZZ3SrZh0013;
+ _ZZ3Sret_0.texcoord = texcoord0.xy;
+ _ZZ3Sret_0.fade = _ZZ4Soutput.fade;
+ _ZZ3Sret_0.color = _ZZ4Soutput.color;
+ _ZZ3Sret_0.worldPosition = _ZZ3SrZh0011;
+ gl_TexCoord[0].xy = texcoord0.xy;
+ gl_TexCoord[2] = _ZZ4Soutput.color;
+ _glPositionTemp = _ZZ3SrZh0013; gl_Position = vec4(_glPositionTemp.x + _glPositionTemp.w * dx_clipping.x, dx_clipping.w * (_glPositionTemp.y + _glPositionTemp.w * dx_clipping.y), _glPositionTemp.z * 2.0 - _glPositionTemp.w, _glPositionTemp.w);
+ gl_TexCoord[1].x = _ZZ4Soutput.fade;
+ gl_TexCoord[3] = _ZZ3SrZh0011;
+ return;
+} // main end
+
+
+// #o3d SplitMarker
+// #o3d MatrixLoadOrder RowMajor
+
+// glslf output by Cg compiler
+// cgc version 2.0.0010, build date Dec 12 2007
+// command line args: -profile glslf
+//vendor NVIDIA Corporation
+//version 2.0.0.10
+//profile glslf
+//program pixelShaderFunction
+//semantic world : WORLD
+//semantic viewProjection : VIEWPROJECTION
+//semantic waterColor
+//semantic sunVector
+//semantic fadeFudge
+//semantic diffuseSampler
+//var float4x4 world : WORLD : , 4 : -1 : 0
+//var float4x4 viewProjection : VIEWPROJECTION : , 4 : -1 : 0
+//var float4 waterColor : : : -1 : 0
+//var float3 sunVector : : : -1 : 0
+//var float fadeFudge : : : -1 : 0
+//var sampler diffuseSampler : : _ZZ2SdiffuseSampler : -1 : 1
+//var float2 input.texcoord : $vin.TEXCOORD0 : TEXCOORD0 : 0 : 1
+//var float input.fade : $vin.TEXCOORD1 : : 0 : 0
+//var float4 input.color : $vin.TEXCOORD2 : : 0 : 0
+//var float4 input.worldPosition : $vin.TEXCOORD3 : TEXCOORD3 : 0 : 1
+//var float4 pixelShaderFunction : $vout.COLOR : COLOR : -1 : 1
+
+
+
+struct VertexShaderInput {
+ vec3 normal;
+ vec2 texcoord;
+};
+
+struct PixelShaderInput {
+ vec2 texcoord;
+ float fade;
+ vec4 color;
+ vec4 worldPosition;
+};
+
+vec4 _ZZ3Sret_0;
+sampler2D _ZZ3SsZh0009;
+uniform sampler diffuseSampler;
+
+ // main procedure, the original name was pixelShaderFunction
+void main()
+{
+
+ vec4 _ZZ4Scolor;
+ float _ZZ4Salpha;
+
+ _ZZ3SsZh0009 = sampler2D(diffuseSampler);
+ _ZZ4Scolor = texture2D(_ZZ3SsZh0009, gl_TexCoord[0].xy);
+ _ZZ4Salpha = gl_TexCoord[3].z < 1.00000000E+02 ? _ZZ4Scolor.w : 0.00000000E+00;
+ _ZZ3Sret_0 = vec4(_ZZ4Scolor.x, _ZZ4Scolor.y, _ZZ4Scolor.z, _ZZ4Salpha);
+ gl_FragColor = _ZZ3Sret_0;
+ return;
+} // main end
+