Login Login
Foto & Video

Single-Pass Stereo Rendering untuk HoloLens

Ada dua metode rendering stereo untuk perangkat Holografik Windows (HoloLens); multi-pass dan satu-pass.

Multi-pass

Multi-pass rendering berjalan 2 lengkap render pass (satu untuk setiap mata). Ini menghasilkan hampir dua kali lipat beban kerja CPU dibandingkan dengan metode rendering yang dicontoh. Namun metode ini adalah yang paling mundur kompatibel dan tidak memerlukan perubahan shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
.

Single-pass Instanced

rendering yang luar biasa melakukan satu render lulus di mana setiap panggilan menggambar diganti dengan panggilan penarikan yang dicontoh. Ini sangat mengurangi pemanfaatan CPU. Selain sedikit ini mengurangi pemanfaatan GPU karena koherensi cache antara dua panggilan menggambar. Pada gilirannya konsumsi daya aplikasi Anda akan jauh lebih rendah.

Untuk mengaktifkan fitur ini, buka pengaturan Player (menu: Edit > Project SettingsPengumpulan yang luas dari pengaturan yang memungkinkan Anda untuk mengkonfigurasi bagaimana Fisika, Audio, Jaringan, Grafik, Input dan banyak bidang lain dari jangkauan proyek Anda. More info
Lihat di Glossary
, kemudian pilih kategori Player). Kemudian arahkan ke panel Other Settings, aktifkan properti Virtual Reality Supported, lalu pilih Single Pass Instanced (Fastest) dari menu dropdown Stereo Rendering Method.

Unity default ke pengaturan Multi pass (Slow) yang lebih lambat karena Anda mungkin memiliki naungan kustom yang tidak memiliki kode yang diperlukan dalam scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
Anda untuk mendukung fitur ini.

Persyaratan skrip Shader

Setiap naungan non built-in harus diperbarui untuk bekerja dengan peninggalan. Baca dokumentasi ini untuk melihat bagaimana ini dilakukan: Login Login. Selanjutnya, Anda harus membuat dua perubahan tambahan pada tahap naungan terakhir yang digunakan sebelum naungan fragmen (Vertex/Hull/Domain/Geometry). Pertama, Anda harus menambahkan UNITY_VERTEX_OUTPUT_STEREO ke struct output. Kedua, Anda harus menambahkan UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO() dalam fungsi utama untuk tahap itu setelah UNITY_SETUP_INSTANCE_ID() telah disebut.

Post-Processing Shaders

Anda harus menambahkan makro UNITY_DECLARE_SCREENSPACE_TEXTURE(tex) di sekitar deklarasi tekstur input, sehingga array tekstur 2D akan benar dinyatakan. Selanjutnya, Anda harus menambahkan panggilan ke UNITY_SETUP_INSTANCE_ID() pada awal naungan fragmen. Akhirnya, Anda harus menggunakan makro UNITY_SAMPLE_SCREENSPACE_TEXTURE() ketika pengambilan tekstur. Lihat HLSLSupport.cginc untuk informasi lebih lanjut tentang tekstur kedalaman makro dan peta bayangan ruang layar yang serupa.

Berikut ini contoh sederhana yang menerapkan semua perubahan yang sebelumnya disebutkan pada efek gambar template:

struct appdata
{
    float4 vertex : POSITION;
    float2 uv : TEXCOORD0;
    UNITY_INSTANCE_ID
};
struct v2f
{
    float2 uv : TEXCOORD0;
    float4 vertex : SV_POSITION;
    UNITY_INSTANCE_ID
    UNITY_VERTEX_OUTPUT_STEREO
};
v2f vert (appdata v)
{
    v2f o;
    UNITY_SETUP_INSTANCE_ID(v);
    UNITY_TRANSFER_INSTANCE_ID(v, o);
    UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
    o.vertex = UnityObjectToClipPos(v.vertex);
    o.uv = v.uv;
    return o;
}

UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);

fixed4 frag (v2f i) : SV_Target
{
    UNITY_SETUP_INSTANCE_ID(i);
    fixed4 col = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
    // just invert the colors
    col = 1 - col;
    return col;
}

DrawProceduralIndirect

Graphics.DrawProceduralIndirect() dan CommandBuffer.DrawProceduralIndirect() mendapatkan semua argumen mereka dari buffer compute, sehingga kita tidak dapat dengan mudah meningkatkan jumlah instance. Oleh karena itu Anda harus secara manual menggandakan jumlah instance yang terkandung dalam buffer compute Anda.

Lihat halaman Contoh warna Vertex dan fragmen untuk informasi lebih lanjut tentang kode naungan.


  • 2017–09–01 Login
  • Fitur baru di 5.5
  • Kode contoh tetap untuk rendering stereo pass tunggal untuk HoloLens
Login Login
Foto & Video