zoukankan      html  css  js  c++  java
  • ue deferred renderer

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

    desktop renderer 和mobile renderer各有一个deferred renderer

    用设置就能开

    mobile deferred renderer

     4.26的 mobile renderer

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

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

    1.editor预览无光照

     Gbuffer onchip

    mobile没有shadow

     

    cpp这层有封装

     

    vulkan

    metal

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

    只有一个有用的东西就是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
    }
  • 相关阅读:
    为了博多
    [JSOI2008]星球大战starwar
    【网络流24题】最小路径覆盖问题
    【中学高级水题本】关路灯
    【网络流24题】分配问题
    【网络流24题】方格取数问题
    【网络流24题】汽车加油行驶
    [洛谷P2057][bzoj1934]善意的投票(最大流)
    LeetCode(38) Count and Say
    LeetCode(36)Valid Sudoku
  • 原文地址:https://www.cnblogs.com/minggoddess/p/14164508.html
Copyright © 2011-2022 走看看