Kompatibilitas browser WebGL
WebGL

WebGL Grafik

WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary
adalah API untuk membuat grafik di browser web, yang didasarkan pada fungsi perpustakaan grafis OpenGL ES. WebGL 1.0 kira-kira pertandingan OpenGL ES 2.0 fungsi, dan WebGL 2.0 kira-kira pertandingan OpenGL ES 3.0 fungsi.

Kamera Jelas

Perilaku WebGL default adalah untuk menghapus buffer gambar setelah setiap bingkai. Ini berarti pada Unity WebGL, konten penyangga bingkai jelas terlepas dari pengaturan. Namun, Anda dapat mengubah perilaku ini pada waktu instansi. Untuk melakukan ini, set webglContextAttributes.preserveDrawingBuffer ke true di template WebGL Anda:

script.onload = () => {
       config['webglContextAttributes'] = {"preserveDrawingBuffer": true}; // Add this line to the index.html file in a WebGL Template
       createUnityInstance(canvas, config, (progress) => }

Rendering yang rusak

Unity WebGL hanya mendukung Jalan Rendering Deferred jika WebGL2.0 tersedia. Pada WebGL1.0, runtime WebGL Unity akan jatuh kembali ke Forward RenderingSebuah jalur rendering yang membuat setiap objek dalam satu atau lebih melewati, tergantung pada lampu yang mempengaruhi objek. Lampu sendiri juga diperlakukan berbeda dengan Rendering Maju, tergantung pada pengaturan dan intensitas mereka. More info
Lihat di Glossary
.

Penerangan Global

Unity WebGL hanya mendukung baked GI. EnlightenSistem pencahayaan oleh Geomerics yang digunakan dalam Unity untuk lightmapping dan untuk Mencerahkan Penerangan Global Realtime. More info
Lihat di Glossary
Realtime Global IlluminationKelompok teknik yang model pencahayaan langsung dan tidak langsung untuk memberikan hasil pencahayaan yang realistis.
Lihat di Glossary
saat ini tidak didukung di WebGL. Selain itu, hanya 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
Non-Directional didukung.

Rendering linier

Unity WebGL hanya mendukung rendering ruang warna linier dengan WebGL 2.0. rendering ruang warna linier tidak memiliki dukungan fallback untuk WebGL 1.0. Untuk membangun pemain WebGL menggunakan rendering ruang warna linier, Anda perlu menghapus WebGL 1.0 API dalam pengaturan Player, buka panel Other Settings, menonaktifkan pengaturan Automatic Graphics API.

Beberapa browser web tidak mendukung sRGB DXT kompresi tekstur. Ini dapat menurunkan kualitas kinerja rendering ketika menggunakan rendering linier, karena dekompresi runtime dari semua tekstur DXT.

Video Klip Impor

Di platform WebGL, klip video tidak diimpor ke proyek Unity menggunakan VideoClipImporter, karena akan meningkatkan ukuran unduhan data aset awal dan mencegah streaming jaringan. Untuk pemutaran video, gunakan opsi URL di komponen VideoPlayer dan menempatkan aset di StreamingAssets / direktori untuk menggunakan streaming jaringan built-in browser Anda.

WebGL Kode Shader

WebGL 1.0 spesifikasi memaksakan beberapa batasan pada kode GLSLS shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
, yang lebih membatasi daripada banyak implementasi OpenGL ES 2.0. Ini sebagian besar relevan ketika Anda menulis naungan Anda sendiri.

Secara spesifik, WebGL memiliki pembatasan nilai mana yang dapat digunakan untuk array indeks atau matriks: WebGL hanya memungkinkan indeks dinamis dengan ekspresi konstan, indeks loop atau kombinasi. Satu-satunya pengecualian adalah untuk akses seragam di vertex shadersProgram yang berjalan pada setiap simpul model 3D ketika model sedang diberikan. More info
Lihat di Glossary
, yang dapat diindeks menggunakan ekspresi apa pun.

Juga, pembatasan berlaku pada struktur kontrol. Satu-satunya jenis loop yang diperbolehkan menghitung loop for, di mana initializer menginisialisasi variabel ke konstan, pembaruan menambahkan konstan atau mengurangi konstan dari variabel, dan uji kontinuasi membandingkan variabel menjadi konstan. loop For yang tidak sesuai dengan kriteria ini dan loop while tidak diperbolehkan.

Sitemap Karena memori yang tersedia terbatas di WebGL, Anda harus menghindari termasuk varian naungan yang tidak diinginkan yang dapat menyebabkan penggunaan memori yang tidak perlu. Oleh karena itu, Unity merekomendasikan untuk mengenali diri Anda dengan Note: dan varian warnaSebuah verion dari program naungan yang Unity menghasilkan sesuai dengan kombinasi khusus kata kunci naungan dan status mereka. Objek Shader dapat mengandung beberapa varian naungan. More info
Lihat di Glossary
, dan merawat ekstra untuk memastikan bahwa Anda tidak menambahkan naungan dengan terlalu banyak varian (misalnya, Unity shader stripping) ke bagian Standar Shader di Penyelamatan yang selalu dimasukkan.Pengaturan Grafik.

Font rendering

Unity WebGL mendukung rendering font dinamis seperti semua platform Unity. Namun, tidak memiliki akses ke font yang diinstal pada mesin pengguna, sehingga font yang digunakan harus dimasukkan dalam folder proyek (termasuk font fallback untuk karakter internasional, atau versi huruf tebal /italik), dan ditetapkan sebagai nama font fallback.

Anti-Aliasing

WebGL mendukung anti-aliasing pada sebagian besar (tetapi tidak sama sekali) kombinasi browser dan GPU. Untuk menggunakannya, anti-aliasing harus diaktifkan dalam pengaturan Quality default untuk platform WebGL.

Catatan bahwa di WebGL1.0 ada beberapa batasan:

  • Beralih pengaturan Quality pada runtime tidak akan mengaktifkan atau menonaktifkan anti-aliasing. Ini harus diatur dalam pengaturan Quality default dimuat pada pemain mulai.

  • Tingkat pengambilan sampel multi yang berbeda (2x, 4x, dll.) tidak berpengaruh di WebGL, itu baik di atau mati.

  • Setiap efek pasca proses diterapkan pada cameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
    Lihat di Glossary
    menonaktifkan Anti-Aliasing bawaan.

  • HDRkisaran dinamis tinggi
    Lihat di Glossary
    tidak kompatibel dengan anti-aliasing sehingga memastikan opsi kamera Allow HDR dinonaktifkan.

Tidak ada batasan tersebut di WebGL2.0.

Refleksi Probe

Probe Reflection didukung di WebGL, tetapi karena keterbatasan dalam spesifikasi WebGL tentang rendering ke mipmaps tertentu, Progres Reflection halus tidak didukung. Akibatnya, Reflection ProbesKomponen rendering yang menangkap pandangan bulat dari sekitarnya di semua arah, seperti kamera. Gambar yang ditangkap kemudian disimpan sebagai kubus yang dapat digunakan oleh benda dengan bahan reflektif. More info
Lihat di Glossary
selalu menghasilkan pantulan tajam yang mungkin muncul sangat rendah resolusi). Probe Reflection Realtime Halus memerlukan WebGL 2.0.

WebGL 2.0

Unity termasuk dukungan untuk WebGL 2.0 API, yang membawa kemampuan rendering level OpenGL ES 3.0 ke web.

Secara default, WebGL Unity mendukung API WebGL 2.0. Anda dapat mengkonfigurasi ini di pengaturan WebGL Player > panel Other Settings dengan menonaktifkan properti Automatic Graphics API dan menambahkan API WebGL 1.0 ke proyek Anda.

Browser dengan dukungan WebGL 2.0 memiliki keunggulan berikut:

  • Konten dalam Standar Shader adalah kualitas tinggi.
  • Dukungan untuk peta lampu Login Login dan arah.
  • Tidak ada batasan pada indeks dan loop dalam kode naungan
  • Kinerja yang lebih baik.

Anda dapat menggunakan SystemInfo.grafik pada waktu lari untuk menentukan apakah instance Unity rendering dengan OpenGLES3 (WebGL2.0) atau OpenGLES2 (WebGL1.0).


  • rendering linier untuk WebGL 2.0 ditambahkan dalam NewIn20172
Kompatibilitas browser WebGL
WebGL