Probe cahaya dan pemuatan adegan
Refleksi Probe

Proxy Probe Cahaya Komponen volume

Switch to Scripting

Komponen Light Probe Proxy Volume (LPPV) memungkinkan Anda untuk menggunakan informasi lebih banyak pencahayaan untuk GameObjectsObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
dinamis besar yang tidak dapat menggunakan baked lightmapsTekstur pra-render yang mengandung efek sumber cahaya pada objek statis di tempat kejadian. Lightmaps dilalui atas geometri adegan untuk menciptakan efek pencahayaan. More info
Lihat di Glossary
(misalnya, Sistem Partikel besar atau Mesh Berwarna).

Secara default, Renderer probe-lit menerima pencahayaan dari satu Probe Cahaya yang diinterpolasi antara Probe Cahaya sekitarnya di SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
. Karena ini, GameObjects memiliki pencahayaan ambien konstan di permukaan. Pencahayaan ini memiliki gradien rotasi karena menggunakan harmonik bulat, tetapi kekurangan gradien spasial. Ini lebih terlihat pada GameObjects yang lebih besar atau Particle SystemsKomponen yang mensimulasikan entitas fluida seperti cairan, awan dan nyala dengan menghasilkan dan memikat sejumlah besar gambar 2D kecil di tempat kejadian. More info
Lihat di Glossary
. Pencahayaan melintasi GameObject cocok dengan pencahayaan pada titik jangkar, dan jika GameObject straddles gradien pencahayaan, bagian GameObject mungkin terlihat salah.

Komponen Light Probe Proxy Volume menghasilkan grid 3D dari Probe Cahaya Interpolated di dalam Bounding VolumeBentuk tertutup mewakili tepi dan wajah sari atau pemicu.
Lihat di Glossary
. Anda dapat menentukan resolusi grid ini pada UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary
komponen. Koefisien harmonik bulat (SH) dari Probe Cahaya yang diserbuki diunggah ke tekstur 3D. Tekstur 3D yang mengandung koefisien SH kemudian sampel pada waktu render untuk mengimbangi kontribusi pencahayaan ambient yang diffuse. Ini menambahkan gradien spasial ke GameObjects probe-lit.

Standar Shader mendukung fitur ini. Untuk menambahkan ini ke shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
kustom, gunakan fungsi ShadeSHPerPixel. Untuk mempelajari cara menerapkan fungsi ini, lihat contoh kode Sampel Sistem Partikel Shader di bagian bawah halaman ini.

Render pipa dukungan

Lihat render perbandingan fitur pipa untuk informasi lebih lanjut tentang dukungan untuk Komponen Volume Proxy Probe Cahaya di seluruh render pipelinesRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary
.

Ketika menggunakan komponen

Sebagian besar komponen Renderer dalam Unity mengandung Probe Cahaya. Ada tiga pilihan untuk Probe Cahaya:

  • Off: Renderer tidak menggunakan probe cahaya yang diserbuki.

  • Blend Probes (nilai default): Renderer menggunakan satu probe cahaya yang diserbuki.

  • Use Proxy Volume: Renderer menggunakan grid 3D dari Probe Cahaya yang diserbuki.

Ketika Anda mengatur properti Light Probesprobe cahaya menyimpan informasi tentang bagaimana cahaya melewati ruang di tempat kejadian Anda. Koleksi probe cahaya yang diatur dalam ruang tertentu dapat meningkatkan pencahayaan pada objek bergerak dan pemandangan LOD statis dalam ruang itu. More info
Lihat di Glossary
dalam komponen MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
Renderer
untuk Use Proxy Volume, GameObject harus memiliki komponen Light Probe Proxy Volume (LPPV). Anda dapat menambahkan komponen LPPV pada GameObject yang sama, atau Anda dapat menggunakan (borrow) komponen LPPV dari GameObject lain menggunakan properti Proxy Volume Override. Jika Unity tidak dapat menemukan komponen LPPV di GameObject saat ini atau dalam Proxy Volume Override GameObject, pesan peringatan ditampilkan di bagian bawah Renderer.

Example

An example of a simple Mesh Renderer using a Light Probe Proxy Volume component
Contoh Renderer Mesh sederhana menggunakan Komponen Volume Proxy Probe Cahaya

Di tempat kejadian di atas, ada dua pesawat di lantai menggunakan bahan yang memancarkan banyak cahaya. Catatan:

  • Perubahan ambient lightCahaya yang tidak datang dari arah tertentu, dan berkontribusi cahaya yang sama di semua arah ke Adegan. More info
    Lihat di Glossary
    pada geometri saat menggunakan komponen LPPV. Gunakan satu probe cahaya yang diserbuki untuk membuat warna konstan di setiap sisi geometri.

  • Geometri tidak menggunakan peta cahaya statis, dan bidang mewakili Probe Cahaya yang diserbuki. Mereka adalah bagian dari Gizmo Renderer.

Bagaimana cara menggunakan komponen

Area di mana grid 3D dari Probe Cahaya yang diserbuki dihasilkan dipengaruhi oleh properti Bounding Box Mode.

Ada tiga pilihan yang tersedia:

Bounding Box Mode: Function:
Automatic Local (nilai default) Kotak terikat ruang lokal dikomputasikan. Posisi probe cahaya yang diserbuki dihasilkan di dalam kotak yang terikat ini. Jika komponen Renderer tidak melekat pada GameObject, maka kotak terikat default dihasilkan. Kotak komputasi yang terikat mencakup Renderer saat ini, dan menetapkan semua Renderer ke bawah hierarki yang memiliki properti Light Probes ke Use Proxy Volume.
Automatic World Kotak yang terikat bersaing yang mencakup Renderer saat ini dan semua Renderer turun hierarki yang memiliki properti Light Probes yang ditetapkan ke Use Proxy Volume. Kotak yang mengikat di dunia.
Custom Kotak terikat kustom digunakan. Kotak yang terikat ditentukan di ruang lokal GameObject. Alat pengeditan kotak yang terikat tersedia. Anda dapat mengedit volume yang terikat secara manual dengan memodifikasi nilai Size dan Origin di UI (lihat di bawah).

Perbedaan utama antara Automatic Local dan Automatic World adalah bahwa dalam Automatic Local, kotak yang terikat lebih intensif sumber daya untuk mengimbangi ketika hierarki besar dari GameObjects menggunakan komponen LPPV yang sama dari GameObject induk. Namun, kotak yang dihasilkan terikat mungkin lebih kecil dalam ukuran, berarti data pencahayaan lebih kompak.

Jumlah Probe Cahaya yang diserbuki dari dalam volume yang terikat dipengaruhi oleh properti Proxy Volume Resolution. Ada dua pilihan:

  • Automatic (nilai default) - Resolusi pada setiap sumbu dihitung menggunakan jumlah Probe Cahaya yang diserbuki per area unit yang Anda tentukan, dan ukuran kotak yang terikat.

  • Custom - Memungkinkan Anda untuk menentukan resolusi yang berbeda pada setiap sumbu (lihat di bawah).

Sitemap Resolusi akhir pada setiap sumbu harus menjadi kekuatan dua, dan nilai maksimum dari resolusi 32.Note: The final resolution on each axis must be a power of two, and the maximum value of the resolution is 32.

Probe Position Mode menentukan posisi relatif dari Probe Cahaya yang diserbuki ke pusat sel. Pilihan ini mungkin berguna dalam situasi ketika beberapa Probe Cahaya yang diserbuki melewati dinding atau geometri lain dan menyebabkan kebocoran cahaya. Contoh di bawah ini menunjukkan perbedaan antara Cell Corner dan Cell Center dalam pandangan 2D, menggunakan resolusi grid 4x4:

Data Format menentukan format yang digunakan tekstur 3D terkait. Ada dua pilihan:

  • Float (nilai default) - Tekstur menggunakan format saluran floating-point 32-bit untuk menyimpan koefisien harmonik bulat.

  • Half Float - Tekstur menggunakan format saluran setengah-float (16-bit float) untuk menyimpan koefisien harmonik bulat. Keuntungan dari format ini adalah bahwa sampling tekstur linier setengah-float didukung oleh mayoritas perangkat dan perbedaan presisi antara format ini dan format saluran titik mengambang 32-bit tidak terlihat. Juga, kinerja pengambilan tekstur di GPU lebih baik dengan format data ini.

Gambar untuk perbandingan

  1. Mesh RendererKomponen mesh yang mengambil geometri dari Filter Mesh dan render di posisi yang ditentukan oleh komponen Transform objek. More info
    Lihat di Glossary
    sederhana menggunakan Shader Standar:

    With Light Probe Proxy Volume (resolution: 4x1x1)
    Dengan Volume Proxy Probe Cahaya (resolution: 4x1x1)
    Without Light Probe Proxy Volume
    Tanpa Volume Proxy Probe Cahaya
  2. Renderer Mesh berkelok-kelok menggunakan Shader Standar:

    With Light Probe Proxy Volume (resolution: 2x2x2)
    Dengan Volume Proxy Probe Cahaya (resolution: 2x2x2)
    Without Light Probe Proxy Volume
    Tanpa Volume Proxy Probe Cahaya

Sampel Sistem Partikel Shader menggunakan fungsi ShadeSHPerPixel

Shader "Particles/AdditiveLPPV" {
Properties {
    _MainTex ("Particle Texture", 2D) = "white" {}
    _TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)
}

Category {
    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
    Blend SrcAlpha One
    ColorMask RGB
    Cull Off Lighting Off ZWrite Off

    SubShader {
        Pass {

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma multi_compile_particles
            #pragma multi_compile_fog

            // Specify the target
            #pragma target 3.0

            #include "UnityCG.cginc"

            // You must include this header to have access to ShadeSHPerPixel
            #include "UnityStandardUtils.cginc"

            fixed4 _TintColor;
            sampler2D _MainTex;

            struct appdata_t {
                float4 vertex : POSITION;
                float3 normal : NORMAL;
                fixed4 color : COLOR;
                float2 texcoord : TEXCOORD0;
            };

            struct v2f {
                float4 vertex : SV_POSITION;
                fixed4 color : COLOR;
                float2 texcoord : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float3 worldPos : TEXCOORD2;
                float3 worldNormal : TEXCOORD3;
            };

            float4 _MainTex_ST;

            v2f vert (appdata_t v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.worldNormal = UnityObjectToWorldNormal(v.normal);
                o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
                o.color = v.color;
                o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                half3 currentAmbient = half3(0, 0, 0);
                half3 ambient = ShadeSHPerPixel(i.worldNormal, currentAmbient, i.worldPos);
                fixed4 col = _TintColor * i.color * tex2D(_MainTex, i.texcoord);
                col.xyz += ambient;
                UNITY_APPLY_FOG_COLOR(i.fogCoord, col, fixed4(0,0,0,0)); // fog towards black due to our blend mode
                return col;
            }
            ENDCG
        }
    }
}
}

Persyaratan perangkat keras

Komponen ini membutuhkan setidaknya Shader Model 4 perangkat keras grafis dan dukungan API, termasuk dukungan untuk Tekstur 3D dengan format titik mengambang 32-bit atau 16-bit dan penyaringan linier.

Untuk bekerja dengan benar, Adegan perlu mengandung Probe Cahaya melalui komponen Light Probe GroupKomponen yang memungkinkan Anda untuk menambahkan Probe Cahaya ke GameObjects di tempat kejadian Anda. More info
Lihat di Glossary
. Jika persyaratan tidak terpenuhi, komponen Volume Proxy Renderer atau Light Probe InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
menampilkan pesan peringatan.

Probe cahaya dan pemuatan adegan
Refleksi Probe