⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocean.frag

📁 采用GPU通用计算API实现快速傅立叶变换
💻 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 + -