• SkyLight 添加LightingChannelMask功能


    PC端 SkyLight 添加LightingChannelMask功能

    1. Skylight Shader参数 IndirectLightRendering.h–>FSkyDiffuseLightingParameters

    2. PS函数 ReflectionEnvironmentPixelShader.usf–>ReflectionEnvironmentSkyLighting

    3. 相关shader

    
    IMPLEMENT_GLOBAL_SHADER(FDiffuseIndirectCompositePS, "/Engine/Private/DiffuseIndirectComposite.usf", "MainPS", SF_Pixel);
    IMPLEMENT_GLOBAL_SHADER(FAmbientCubemapCompositePS, "/Engine/Private/AmbientCubemapComposite.usf", "MainPS", SF_Pixel);
    IMPLEMENT_GLOBAL_SHADER(FReflectionEnvironmentSkyLightingPS, "/Engine/Private/ReflectionEnvironmentPixelShader.usf", "ReflectionEnvironmentSkyLighting", SF_Pixel);
    
    

    -------------------SkyLight逻辑流程----------------

    FDeferredShadingSceneRenderer::Render() {
    	RenderDeferredReflectionsAndSkyLighting() {
    		AddSkyReflectionPass()
    	}
    }
    IndirectLightRendering.cpp{
    	RenderDeferredReflectionsAndSkyLighting(){
    		AddSkyReflectionPass()
    	}
    }
    

    -------------SkyLight功能添加修改内容--------------------

    1. in SkyLightComponent.h::USkyLightComponent add
      {
      UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category = Light)
      FLightingChannels LightingChannels;
      }

    2. in SceneManagement.h::FSkyLightSceneProxy add
      {
      uint8 LightingChannelMask;
      }

    3. in SkyLightComponent.cpp::FSkyLightSceneProxy add
      {
      LightingChannelMask(GetLightingChannelMaskForStruct(InLightComponent->LightingChannels))
      }

    4. in IndirectLightRendering.h::FSkyDiffuseLightingParameters add
      {
      SHADER_PARAMETER(uint32,LightingChannelMask)
      }

    5. in IndirectLightRendering.cpp::GetSkyDiffuseLightingParameters add
      {
      Out.LightingChannelMask = SkyLight->LightingChannelMask;
      }

    6. 在RenderDeferredReflectionsAndSkyLighting函数添加LightingChannelsTexture
      函数申明在DeferredShadingRenderer.h,函数定义在IndirectLightRendering.cpp
      {
      FRDGTextureRef LightingChannelsTexture;
      }

    7. 在FReflectionEnvironmentSkyLightingPS::FParameters添加
      {

  • 相关阅读:
    【C++】字体文件解析(FreeType)
    从零开始学数据结构系列之第一章《双链表》
    科研试剂Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺
    HTML八大特性
    fluke dtx-1800测试精度有必要进行原厂校准吗?
    冒泡排序的简单理解
    Jmeter+Ant+Git+Jenkins持续集成介绍
    Mybatis如何使用druid数据连接池
    (待填坑)【数据结构】笛卡尔树
    ElasticSearch集群服务器配置
  • 原文地址:https://blog.csdn.net/qq_16123279/article/details/127103967