SimpleReflection

SimpleReflection

  取法线的x、y作为reflection-map的uv。

Shader "Custom/SimpleReflection"
{
    Properties
    {
        _MainTex ("Base (RGB)", 2D) = "White" {}
        _ReflectionMap ("ReflectionMap", 2D) = "White" {}
    }

   SubShader
   {
          Lod 100
          Tags { "Queue" = "Transparent"}
        Pass
        {
            Blend SrcAlpha OneMinusSrcAlpha
            CGPROGRAM 

            #pragma vertex Vert
            #pragma fragment Frag
            #include "UnityCG.cginc" 

            sampler2D _MainTex;
            sampler2D _ReflectionMap;

            struct V2F
            {
                fixed4 pos:SV_POSITION;
                fixed2 uv:TEXCOORD0;
                fixed2 uv2:TEXCOORD1;
            }; 

            V2F Vert(appdata_full v)
            {
                V2F output;
                output.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                output.uv = v.texcoord;
                output.uv2 = mul(UNITY_MATRIX_IT_MV, float4(v.normal, 0)).xy/2+0.5;
                return output;
            }

            half4 Frag(V2F i):COLOR
            {
                return tex2D(_MainTex,i.uv) + tex2D(_ReflectionMap,i.uv2);
            }

            ENDCG
        }
   } 

    FallBack "VertexLit"
}
时间: 2024-11-26 04:37:40

SimpleReflection的相关文章

C#图解教程 第二十四章 反射和特性

反射和特性元数据和反射Type 类获取Type对象什么是特性应用特性预定义的保留的特性Obsolete(废弃)特性Conditional特性调用者信息特性DebuggerStepThrough 特性其他预定义特性有关应用特性的更多内容多个特性其他类型的目标全局特性自定义特性声明自定义特性使用特性的构造函数指定构造函数使用构造函数构造函数中的位置参数和命名参数限制特性的使用自定义特性的最佳实践访问特性使用IsDefined方法使用GetCustomAttributes方法 Note 类的元数据包含

【Unity Shaders】学习笔记——SurfaceShader(九)Cubemap

[Unity Shaders]学习笔记——SurfaceShader(九)Cubemap 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水平有限,难免有谬误之处,望指出. 上一节中讲述了制作Cubemap的方法.这一节讲讲怎么使用它. Simple Cubemap 先来看一下最简单的Cubemap. Shader "Custom/SimpleReflection" { Properties { _MainTint (&