?? ocean.frag
字號:
// GLSL fragment shader
varying vec3 eyeSpacePos;
varying vec3 worldSpaceNormal;
varying vec3 eyeSpaceNormal;
uniform vec4 deepColor = vec4(0.0, 0.0, 0.1, 1.0);
uniform vec4 shallowColor = vec4(0.1, 0.4, 0.3, 1.0);
uniform vec4 skyColor = vec4(0.5, 0.5, 0.5, 1.0);
uniform vec3 lightDir = vec3(0.0, 1.0, 0.0);
void main()
{
vec3 eyeVector = normalize(eyeSpacePos);
eyeSpaceNormal = normalize(eyeSpaceNormal);
worldSpaceNormal = normalize(worldSpaceNormal);
float facing = max(0.0, dot(eyeSpaceNormal, -eyeVector));
float fresnel = pow(1.0 - facing, 5.0); // Fresnel approximation
float diffuse = max(0.0, dot(worldSpaceNormal, lightDir));
vec4 waterColor = mix(shallowColor, deepColor, facing);
// gl_FragColor = gl_Color;
// gl_FragColor = vec4(fresnel);
// gl_FragColor = vec4(diffuse);
// gl_FragColor = waterColor;
// gl_FragColor = waterColor*diffuse;
gl_FragColor = waterColor*diffuse + skyColor*fresnel;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -