Membuat renderer dengan BatchRenderer Login
Mendaftar jala dan bahan

Menawarkan BatchRenderer Sitemap

Langkah pertama untuk menggunakan BRG adalah untuk membuat contoh BatchRendererGroup dan menginisialisasinya dengan implementasi OnPerformCulling.

Callback OnPerformCulling adalah titik masuk utama BRG dan Unity menyebutnya setiap kali objek terlihat kusam. Untuk informasi tentang parameter yang diterima, lihat OnPerformCulling. Biasanya, ada dua tugas yang harus dilakukan callback OnPerformCulling:

  • Visibility culling untuk menentukan mana dari instancenya terlihat berdasarkan parameter BatchCullingContext.
  • Keluarkan perintah menggambar yang sebenarnya untuk membuat instance tersebut. Untuk melakukan ini Anda menulis ke parameter BatchCullingOutput.

Dalam implementasi sederhana, Anda dapat melakukan tugas-tugas ini langsung dalam panggilan OnPerformCulling, tetapi untuk implementasi kinerja tinggi, praktik terbaik untuk melakukan sebagian besar pekerjaan ini dalam pekerjaan. Callback OnPerformCulling harus mengembalikan JobHandle yang menyelesaikan setelah pekerjaan menulis output ke dalam parameter BatchCullingOutput. Jika implementasi Anda tidak menggunakan pekerjaan, Anda dapat mengembalikan JobHandle kosong.

Lihat sampel kode berikut untuk contoh cara membuat objek BatchRendererGroup dan menginisialisasinya dengan callback OnPerformCulling minimum yang dikompilasi.

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();
    }
}

Sebelum Anda menggunakan OnPerformCulling untuk membuat perintah menggambar, Anda perlu menyediakan objek BatchRendererGroup setiap jala yang Anda inginkan untuk menggambar, dan bahan apa pun yang Anda inginkan. Untuk informasi lebih lanjut, lihat topik berikutnya, Mendaftar jala dan bahan.

Membuat renderer dengan BatchRenderer Login
Mendaftar jala dan bahan