zoukankan      html  css  js  c++  java
  • 使用lightProbe来模拟动态物体的照明shader

    VertexLit path中读取lightProbe烘焙信息:

    Shader "VertexLitProbe" {
    Properties {
        _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}//主贴图
    }
    
    SubShader {
        LOD 100
    
        
        Pass {  
            Tags { "LightMode" = "VertexLit" }
        
            CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                //#pragma target 3.0
                
                #include "UnityCG.cginc"
                #include "Lighting.cginc"
    
                struct appdata_t {
                    float4 vertex : POSITION;
                    float3 normal : NORMAL;
                    float2 texcoord : TEXCOORD0;
                };
                struct v2f {
                    float4 vertex : SV_POSITION;
                    float3 wroldN : TEXCOORD01;
                    half2 texcoord : TEXCOORD0;
                };
    
                float4 _MainTex_ST;
                sampler2D _MainTex;
                
    
                    
                v2f vert (appdata_t v)
                {
                    v2f o;
                    o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                    o.wroldN = mul((float3x3)_Object2World, v.normal);
                    o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                    return o;
                }
                
                fixed4 frag (v2f i) : SV_Target
                {
                    fixed4 mainCol = tex2D(_MainTex, i.texcoord);
                    mainCol.rgb = mainCol.rgb * ShadeSH9(half4(i.wroldN,1.0));
                    return mainCol;
                }
            ENDCG
        }
    }
    
    }

     效果如下图:

    Ps:unity 自带的diffuse(surface shader)中有在forwardBass pass中处理SH9,但是自带的VertexLit(cg)中没有,所以使用自带shader时,只有在forward pass中在能使用LightProbe,但是可以自己写

    ps2:别忘了勾选cube的MeshRenderer组件的 Use Light Probes选项

    可以在surface shader中关闭:

  • 相关阅读:
    php解析.csv文件
    sublime text3 输入中文的解决方法
    git 的使用
    yii2.0 框架邮件的发送
    yii2.0的分页和排序
    php上传图片文件常用的几个方法
    在yii框架中如何连接数据库mongodb
    yii框架中验证器声明一组内置验证器可以使用短名称引用
    yii中的cookie的发送和读取
    ExpressionToSQL
  • 原文地址:https://www.cnblogs.com/wonderKK/p/5051923.html
Copyright © 2011-2022 走看看