zoukankan      html  css  js  c++  java
  • 转 lightmap

    小记一下用法与问题,时更

    surface shader就不用操心了,自带lightmap计算

    主要是vertex fragment shader部分

    Unity5 bake light map有三种情况:

    1.Non-directional

    2.directional

    3.directional specular

     

    Non-directional

    这种计算最为简单,消耗也最少,

    注意不会烘焙上normal map的信息,只是模型顶点法线计算得的diffuse结果

    首先需要声明lightmap变量

    sampler2D unity_Lightmap;
    
    float4 unity_LightmapST;



    重复声明异常(unity 5.4),在UnityCG.cginc已经声明过了,就不用再声明

    需要在appdata中用一个新的坐标变量来计算lightmap的uv,否则开始可能正确,但是博主在把模型generate lightmap uv后再烘焙,uv全部都是错的了。

            structappdata {
    
                float4vertex : POSITION;
    
                float4tangent : TANGENT;
    
                float3normal : NORMAL;
    
                float2texcoord : TEXCOORD0;
    
                float2texcoord2 : TEXCOORD1;
    
                fixed4color : COLOR;
    
            };



    然后vertex部分的struct声明(名字随意)

    float2 uv_lightmap : TEXCOORD1;

    vertex shader生成计算lightmap uv

    o.uv_lightmap =v.texcoord2.xy *unity_LightmapST.xy + unity_LightmapST.zw;



    在fragment shader中获取lightmap数据的方法,得到的是三元向量,如果未烘焙默认值为0:

    DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap,i.uv_lightmap))



    判断是否烘焙,这样就可以分为两种算法,没有lightmap就实时算,有lightmap就用

            #ifdefLIGHTMAP_ON
    
    DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap,i.uv_lightmap))。。。。lightmap相关计算
    
            #endif


    烘焙lightmap后,shader获取的阴影自阴影信息为1,光照方向为0(与光的Baking模式设置有关,realtime(有)/mixed(有)/baked(无))

    directional specular

    这种会产生两种lightmap,一种是带normal map的diffuse信息也就是普通的light map,一种是direction map也就是光照方向,我们可以使用烘焙的光照方向来计算specular及其他

    应该是这样可以得到direction map,但是博主试过会报错

     UNITY_SAMPLE_TEX2D_SAMPLER(unity_LightmapInd,unity_Lightmap,1);

     ---wolf96 2017/1/11

  • 相关阅读:
    Android使用SO库时要注意的一些问题
    android studio 生成引用arr
    android studio 改包名
    P2P通信原理与实现(C++)
    unity3d各种OpenFileDialog操作
    使用ffmpeg编码时,如何设置恒定码率,并控制好关键帧I帧间隔
    ffmpeg h264转h265
    照片人脸建模
    自动减面
    Unity3d 5.3.5使用sqlite3
  • 原文地址:https://www.cnblogs.com/rexzhao/p/7339778.html
Copyright © 2011-2022 走看看