https://www.bilibili.com/video/BV11a4y1H7jC

desktop renderer 和mobile renderer各有一个deferred renderer

用设置就能开

 

 

mobile deferred renderer

ue deferred renderer

 4.26的 mobile renderer

仅完成了metal和vulkan部分 (mali 连vulkan也没有完成)

ogl部分的 onchip要在4.27才能完成

 

1.editor预览无光照

ue deferred renderer

 

 Gbuffer onchip

ue deferred renderer

 

mobile没有shadow

 ue deferred renderer

 

cpp这层有封装

 ue deferred renderer

 

 

vulkan

ue deferred renderer

 

 

ue deferred renderer

 

 

metal

ue deferred renderer

 

 

ue deferred renderer

 

 

渲染部分的功能很有限 完成度不够高 很鸡肋的一个管线

只有一个有用的东西就是onchip的封装

 

void FetchGBuffer(in float2 UV, out float4 GBufferA, out float4 GBufferB, out float4 GBufferC, out float4 GBufferD, out float SceneDepth)
{
#if VULKAN_PROFILE
    GBufferA = VulkanSubpassFetch1(); 
    GBufferB = VulkanSubpassFetch2(); 
    GBufferC = VulkanSubpassFetch3(); 
    GBufferD = 0;
    SceneDepth = ConvertFromDeviceZ(VulkanSubpassDepthFetch());
#elif METAL_PROFILE
    GBufferA = SubpassFetchRGBA_1(); 
    GBufferB = SubpassFetchRGBA_2(); 
    GBufferC = SubpassFetchRGBA_3(); 
    GBufferD = 0; 
    SceneDepth = ConvertFromDeviceZ(SubpassFetchR_4());
#else
    GBufferA = Texture2DSampleLevel(MobileSceneTextures.GBufferATexture, MobileSceneTextures.GBufferATextureSampler, UV, 0); 
    GBufferB = Texture2DSampleLevel(MobileSceneTextures.GBufferBTexture, MobileSceneTextures.GBufferBTextureSampler, UV, 0);
    GBufferC = Texture2DSampleLevel(MobileSceneTextures.GBufferCTexture, MobileSceneTextures.GBufferCTextureSampler, UV, 0);
    GBufferD = 0;
    SceneDepth = ConvertFromDeviceZ(Texture2DSampleLevel(MobileSceneTextures.SceneDepthAuxTexture, MobileSceneTextures.SceneDepthAuxTextureSampler, UV, 0).r);
#endif
}

 

相关文章:

  • 2021-04-13
  • 2021-11-08
  • 2021-08-01
  • 2022-12-23
  • 2021-10-08
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-09
  • 2021-07-19
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案