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

  • 相关阅读:
    mysql access denied for user root Mysql用户无权限
    远程链接调用sql脚本
    CuteEditor使用详解
    如何设置release模式
    ShardingJDBC不分库,只分表例子
    SpringCloud Stream整合RocketMQ实现消息发送与接收
    Spring Cloud Gateway的PrefixPath及StripPrefix功能
    使用MongoDB的Spring Boot和MongoTemplate教程
    ShardingJDBC读写分离案例
    SpringBoot那些好用的连接池HikariCP
  • 原文地址:https://www.cnblogs.com/minggoddess/p/12454640.html
Copyright © 2011-2022 走看看