water_fragment.cg
来自「游戏编程精粹6第中关于粒子的实时流体仿真系统,对入门的游戏开发者很有帮助.」· CG 代码 · 共 32 行
CG
32 行
void main(float reflectionFactor : COLOR,
float3 incident : TEXCOORD0,
float3 N : TEXCOORD1,
//float3 incident : TEXCOORD2,
out float4 color : COLOR,
// uniform float transmittance,
// uniform sampler2D decalMap,
uniform samplerCUBE environmentMap)
{
// float4 reflectedColor = texCUBE(environmentMap, R);
//float4 refractedColor = texCUBE(environmentMap, T);
incident = normalize(incident);
N = normalize(N);
float eta_ratio = 1.3;
// float4 refract_color = texCUBE(environmentMap, refract(incident, N, eta_ratio));
float4 refract_color = texCUBE(environmentMap, refract(incident, N, eta_ratio).xyz);
// float4 refract_color = texCUBE(environmentMap, incident);
float4 reflect_color = texCUBE(environmentMap, reflect(incident, N));
//color = lerp(refract_color, reflectedColor, 0.2);
color = lerp(refract_color, reflect_color, reflectionFactor);
// color = lerp(lerp(refract_color, reflectedColor, reflectionFactor), dot(N, normalize(float3(1, 1, 0))), 0.5);
// color = lerp(lerp(refract_color, reflect_color, reflectionFactor), dot(N, normalize(float3(1, 1, 0))) + float4(0.1, 0.1, 0.1, 1), 0.5);
//color = reflectedColor;
//color += 0.2*dot(N, normalize(float3(1, 1, 0)));
//color = refract_color;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?