Version: 2022.3
언어: 한국어
BatchRendererGroup으로 렌더러 생성
메시 및 머티리얼 등록

BatchRendererGroup 오브젝트 초기화

BRG를 사용하여 렌더링하기 위한 첫 번째 단계는 BatchRendererGroup의 인스턴스를 생성하고 OnPerformCulling 구현을 통해 초기화하는 것입니다.

OnPerformCulling 콜백은 BRG의 주요 엔트리 포인트이며 Unity는 표시되는 오브젝트를 컬링할 때마다 이 콜백을 호출합니다.수신하는 파라미터에 대한 자세한 내용은 OnPerformCulling을 참조하십시오.일반적으로 OnPerformCulling 콜백이 수행해야 하는 작업은 2가지입니다.

  • 가시성 컬링은 BatchCullingContext 파라미터에 따라 어떤 인스턴스를 표시할지 결정합니다.
  • 실제 드로우 커맨드를 출력하여 해당 인스턴스를 렌더링합니다.이렇게 하려면 BatchCullingOutput 파라미터에 작성합니다.

간단한 구현에서는 이러한 작업을 OnPerformCulling 콜백에서 직접 수행할 수 있지만, 고성능 구현에서는 이 작업의 대부분을 버스트 잡에서 수행하는 것이 가장 좋습니다.OnPerformCulling 콜백은 잡이 출력을 BatchCullingOutput 파라미터에 작성한 후 완료되는 JobHandle을 반환해야 합니다.구현에 잡을 사용하지 않는 경우 빈 JobHandle을 반환할 수 있습니다.

See the following code sample for an example of how to create a BatchRendererGroup object and initialize it with the most minimum OnPerformCulling callback that compiles.

using System;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Jobs;
using UnityEngine;
using UnityEngine.Rendering;

public class SimpleBRGExample :MonoBehaviour
{
    private BatchRendererGroup m_BRG;

    private void Start()
    {
        m_BRG = new BatchRendererGroup(this.OnPerformCulling, IntPtr.Zero);
    }

    private void OnDisable()
    {
        m_BRG.Dispose();
    }

    public unsafe JobHandle OnPerformCulling(
        BatchRendererGroup rendererGroup,
        BatchCullingContext cullingContext,
        BatchCullingOutput cullingOutput,
        IntPtr userContext)
    {
        // This example doesn't use jobs, so it can return an empty JobHandle.
        // Performance-sensitive applications should use Burst jobs to implement
        // culling and draw command output.In this case, this function would return a
        // handle here that completes when the Burst jobs finish.
        return new JobHandle();
    }
}

OnPerformCulling을 사용하여 드로우 커맨드를 생성하기 전에 드로우하려는 메시와 사용하려는 머티리얼을 BatchRendererGroup 오브젝트에 제공해야 합니다.자세한 내용은 다음 주제인 메시 및 머티리얼 등록을 참조하십시오.

BatchRendererGroup으로 렌더러 생성
메시 및 머티리얼 등록
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961