美文网首页
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