美文网首页
shader常用函数

shader常用函数

作者: Rayson | 来源:发表于2020-06-30 16:09 被阅读0次

顶点着色器:

// 将坐标转换到裁剪空间
o.pos = UnityObjectToClipPos(vertex);

// 计算顶点的世界坐标
float3 worldPos = mul(_Object2World, vertex).xyz;

// 计算世界空间下的视角方向
float3 worldViewDir = normalize(UnityWorldSpaceViewDir(worldPos));

// 世界空间下的法线
float3 worldNormal = UnityObjectToWorldNormal(normal);

// 世界空间下的反射向量
o.worldRefl = reflect(-worldViewDir, worldNormal);

片段着色器

// 采样纹理并返回数据
fixed4 col = tex2D(_MainTex, i.uv);

// 使用反射向量采样默认的反射立体纹理(unity_SpecCube0)
half4 skyData = UNITY_SAMPLE_TEXCUBE(unity_SpecCube0, i.worldRefl);
// 解码cubemap的数据到具体显示的颜色
half3 skyColor = DecodeHDR (skyData, unity_SpecCube0_HDR);

相关文章

网友评论

      本文标题:shader常用函数

      本文链接:https://www.haomeiwen.com/subject/zsgtqktx.html