zoukankan      html  css  js  c++  java
  • builtin_shaders-5.3.4f1学习-Unlit/Texture


    // Unlit shader. Simplest possible textured shader.
    // - no lighting
    // - no lightmap support
    // - no per-material color
    
    Shader "Unlit/Texture" {
    Properties {
    	_MainTex ("Base (RGB)", 2D) = "white" {}
    }
    
    SubShader {
    	Tags { "RenderType"="Opaque" }
    	LOD 100
    	
    	Pass {  
    		CGPROGRAM
    			#pragma vertex vert
    			#pragma fragment frag
    			#pragma multi_compile_fog
    			
    			#include "UnityCG.cginc"
    
    			struct appdata_t {
    				float4 vertex : POSITION;
    				float2 texcoord : TEXCOORD0;
    			};
    
    			struct v2f {
    				float4 vertex : SV_POSITION;
    				half2 texcoord : TEXCOORD0;
    				UNITY_FOG_COORDS(1)
    			};
    
    			sampler2D _MainTex;
    			float4 _MainTex_ST;
    			
    			v2f vert (appdata_t v)
    			{
    				v2f o;
    				o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
    				o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
    				UNITY_TRANSFER_FOG(o,o.vertex);
    				return o;
    			}
    			
    			fixed4 frag (v2f i) : SV_Target
    			{
    				fixed4 col = tex2D(_MainTex, i.texcoord);
    				UNITY_APPLY_FOG(i.fogCoord, col);
    				UNITY_OPAQUE_ALPHA(col.a);
    				return col;
    			}
    		ENDCG
    	}
    }
    
    }
    


    SV_Target 与Color略有区别,大体相同,有可能是两者的位置前者是中心位置,后者不是,有0.5像素的偏移,这个以后确认下


    Fog相关的几个函数

    UnityCG.cginc中的解释

    // multi_compile_fog Will compile fog variants.
    // UNITY_FOG_COORDS(texcoordindex) Declares the fog data interpolator.
    // UNITY_TRANSFER_FOG(outputStruct,clipspacePos) Outputs fog data from the vertex shader.
    // UNITY_APPLY_FOG(fogData,col) Applies fog to color "col". Automatically applies black fog when in forward-additive pass.
    // Can also use UNITY_APPLY_FOG_COLOR to supply your own fog color.



  • 相关阅读:
    [Scoi2010]游戏
    HDU3415(单调队列)
    POJ1221(整数划分)
    POJ1050(dp)
    POJ2479(dp)
    HDU1864(背包)
    HDU1175(dfs)
    STL_string.vector中find到的iterator的序号
    Qt532.数值转为16进制(并填充)
    异常处理.VC++
  • 原文地址:https://www.cnblogs.com/nafio/p/9137264.html
Copyright © 2011-2022 走看看