zoukankan      html  css  js  c++  java
  • srp render queue 失效

    srp的render queue

    根据每次render的时候的sortflags来选择开关

    public enum SortFlags
    {
        /// <summary>
        ///   <para>Do not sort objects.</para>
        /// </summary>
        None = 0x0,
        /// <summary>
        ///   <para>Sort by renderer sorting layer.</para>
        /// </summary>
        SortingLayer = 0x1,
        /// <summary>
        ///   <para>Sort by material render queue.</para>
        /// </summary>
        RenderQueue = 0x2,
        /// <summary>
        ///   <para>Sort objects back to front.</para>
        /// </summary>
        BackToFront = 0x4,
        /// <summary>
        ///   <para>Sort objects in rough front-to-back buckets.</para>
        /// </summary>
        QuantizedFrontToBack = 0x8,
        /// <summary>
        ///   <para>Sort objects to reduce draw state changes.</para>
        /// </summary>
        OptimizeStateChanges = 0x10,
        /// <summary>
        ///   <para>Sort renderers taking canvas order into account.</para>
        /// </summary>
        CanvasOrder = 0x20,
        /// <summary>
        ///   <para>Sorts objects by renderer priority.</para>
        /// </summary>
        RendererPriority = 0x40,
        /// <summary>
        ///   <para>Typical sorting for opaque objects.</para>
        /// </summary>
        CommonOpaque = 0x3B,
        /// <summary>
        ///   <para>Typical sorting for transparencies.</para>
        /// </summary>
        CommonTransparent = 0x17
    }

    用的时候 可以直接设置

    var sortFlags = SortFlags.RenderQueue;
    var drawSettings = CreateDrawRendererSettings(renderingData.cameraData.camera, sortFlags, RendererConfiguration.None, renderingData.supportsDynamicBatching);
    context.DrawRenderers(renderingData.cullResults.visibleRenderers, ref drawSettings, opaqueFilterSettings);
    
    
     

    还可以从renderingData.cameraData.defaultOpaqueSortFlags这里拿统一的设置

    lwrp 里面的CommonOpaque 应该就是个distance sort

    var commonOpaqueFlags = SortFlags.CommonOpaque;
    var noFrontToBackOpaqueFlags = SortFlags.SortingLayer | SortFlags.RenderQueue | SortFlags.OptimizeStateChanges | SortFlags.CanvasOrder;
    bool hasHSRGPU = SystemInfo.hasHiddenSurfaceRemovalOnGPU;
    bool canSkipFrontToBackSorting = (camera.opaqueSortMode == OpaqueSortMode.Default && hasHSRGPU) || camera.opaqueSortMode == OpaqueSortMode.NoDistanceSort;
    
    cameraData.defaultOpaqueSortFlags = canSkipFrontToBackSorting ? noFrontToBackOpaqueFlags : commonOpaqueFlags;
    

      

     https://docs.unity3d.com/Manual/SL-SubShaderTags.html

  • 相关阅读:
    ACdream 1224 Robbers (贪心)
    HDU 4320 Arcane Numbers 1 (质因子分解)
    在脚本中重定向输入
    呈现数据
    shell中的for、while、until(二)
    shell中的for、while、until
    C 指针疑虑
    结构化命令
    fdisk -c 0 350 1000 300命令
    PC机上的COM1口和COM2口
  • 原文地址:https://www.cnblogs.com/minggoddess/p/12454640.html
Copyright © 2011-2022 走看看