zoukankan      html  css  js  c++  java
  • ue4 lightmap的解码

    一. lq的解码过程     lightmapCommon.ush   GetLightMapColorLQ()函数:

    1. 纹理采样:

     2. 亮度、颜色还原

     3. 还原亮度

     4. 还原最大贡献方向

     5. 最终颜色还原

     二、 hq解码过程  lightmapCommon.ush   GetLightMapColorHQ()函数

    1. 纹理采样:分为有vt和没有vt:

     2. 亮度还原

     3. 颜色还原

     4. 还原方向,是否定义方向,是否是双向植被:

     5. 最终颜色:

     三、 skyOcclusion和aomaterialMask的解码

    float4 GetSkyBentNormalAndOcclusion(VTPageTableResult LightmapVTPageTableResult, float2 LightmapUV, uint LightmapDataIndex, float2 SvPositionXY)
    {
    	float4 TextureValue;
    #if LIGHTMAP_VT_ENABLED
    	TextureValue = SampleLightmapVT( LightmapVTPageTableResult, 3u, LightmapDataIndex, LightmapResourceCluster.VTSkyOcclusionTexture, LIGHTMAP_SHARED_SAMPLER(SkyOcclusionSampler)); 
    #else
    	TextureValue = Texture2DSample( LightmapResourceCluster.SkyOcclusionTexture, LIGHTMAP_SHARED_SAMPLER(SkyOcclusionSampler), LightmapUV );
    #endif
    
    	// Unpack vector
    	TextureValue.rgb = TextureValue.rgb * 2 - 1;
    	// Undo sqrt which allocated more precision toward 0
    	TextureValue.a = TextureValue.a * TextureValue.a;
    	return TextureValue;
    }
    
    float GetAOMaterialMask(VTPageTableResult LightmapVTPageTableResult, float2 LightmapUV, uint LightmapDataIndex, float2 SvPositionXY)
    {
    	float TextureValue;
    #if LIGHTMAP_VT_ENABLED
    	TextureValue = SampleLightmapVT( LightmapVTPageTableResult, 4u, LightmapDataIndex, LightmapResourceCluster.VTAOMaterialMaskTexture, LIGHTMAP_SHARED_SAMPLER(AOMaterialMaskSampler)).x; 
    #else
    	TextureValue = Texture2DSample( LightmapResourceCluster.AOMaterialMaskTexture, LIGHTMAP_SHARED_SAMPLER(AOMaterialMaskSampler), LightmapUV ).x;
    #endif
    
    	// Undo sqrt which allocated more precision toward 0
    	return TextureValue * TextureValue;
    }
    

      

    四、 ue4 lightmap编码特点的思考:

    1. 好处:

     2. 不足:

  • 相关阅读:
    Java多线程(二)关于多线程的CPU密集型和IO密集型这件事
    Java 过一下基础
    日历打印用java实现
    DAY8-打卡第八天-2018-1-18
    web-day1-初识标识符
    DAY7-图形界面第一弹-2018-1-17
    四种排序方法用java实现
    DAY6-小变化(java提示框)-2018-1-16
    DAY5-小别-2018-1-15
    DAY4-打卡第四天-2018-1-12
  • 原文地址:https://www.cnblogs.com/Shaojunping/p/14437171.html
Copyright © 2011-2022 走看看