Peningkatan ke Unity 5.6
Peningkatan ke Unity 5.4

Peningkatan ke Unity 5.5

Naungan: Perubahan kode Shading Berbasis Fisik

Kode terkait shading berbasis fisik telah diisi ulang dalam Unity 5.5 (file UnityStandardBRDF.cginc dan sebagainya). Dalam kebanyakan kasus ini tidak mempengaruhi kode shaderProgram yang berjalan di GPU. More info
Lihat di Glossary
Anda langsung, kecuali Anda secara manual memanggil beberapa fungsi secara langsung. Perubahan yang tidak dapat dibaca tercantum di bawah ini.

  • Sekarang ada fungsi untuk mengkonversi antara kelancaran, kekasaran dan kekasaran perceptual: PerceptualRoughnessToRoughness, RoughnessToPerceptualRoughness, SmoothnessToRoughness.RoughnessToSmoothness.

  • Istilah visibilitas dalam UnityStandardBRDF.cginc mengambil roughness dan tidak perceptualRoughness.

  • Dalam versi Unity yang lebih tua, dimungkinkan untuk melakukan remapping dengan kekasaran Marmoset. Dengan bergerak ke GGX tidak lagi cocok, dan definisi UNITY_GLOSS_MATCHES_MARMOSET_TOOLBAG2 dan kode terkait telah dihapus.

  • Semua membaca dan menulis ke Gbuffer harus melalui fungsi baru UnityStandardDataToGbuffer / UnityStandardDataFromGbuffer.

  • Kode naungan Anda harus memanggil UnityGlossyEnvironmentSetup() untuk menginisialisasi struct Unity_GlossyEnvironmentData daripada melakukannya secara manual.

  • Variabel roughness Unity_GlossyEnvironmentData sebenarnya “kekasaran sementara” tetapi belum berganti nama untuk menghindari kesalahan dengan kode naungan yang ada. Catatan: UnityGlossyEnvironmentSetup mengambil smoothness sebagai parameter dan menghitung kekasaran perceptual.

  • Nilai variabel ndotl pada UnityLight sekarang dihitung pada terbang dan nilai yang ditulis ke dalam variabel diabaikan.

  • makro UNITY_GI rusak dan tidak boleh digunakan lagi.

Naungan: DirectX 9 setengah-pikiran mengimbangi masalah

Unity 5.5 sekarang menangani DX9 setengah-piksel mengimbangi rasterizationProses menghasilkan gambar dengan menghitung piksel untuk setiap poligon atau segitiga dalam geometri. Ini adalah alternatif untuk ray tracing.
Lihat di Glossary
di latar belakang, yang berarti Anda tidak perlu lagi memperbaiki masalah setengah-piksel DX9 baik dalam naungan atau kode. Lihat lebih detail dalam posting blog ini. Jika Anda menggunakan cek ini di kode Anda, mereka sekarang dapat dihapus:

  • Cek naungan untuk UNITY_HALF_TEXEL_OFFSET dan menggeser vertices/UV berdasarkan itu.
  • Cek untuk D3D9 melalui SystemInfo.graphicsDeviceType atau SystemInfo.graphicsDeviceVersion, dan mengubah vertices/UV berdasarkan itu.

Cara Unity memecahkan ini sekarang adalah dengan memasukkan kode penyesuaian setengah-piksel ke semua naungan simpul yang dikompilasi. Akibatnya, register konstan vertex shaderProgram yang berjalan pada setiap simpul model 3D ketika model sedang diberikan. More info
Lihat di Glossary
c255 menjadi disediakan oleh Unity, serta dua instruksi ditambahkan ke semua naungan, dan satu lagi register sementara digunakan. Ini tidak boleh membuat masalah, kecuali naungan simpul Anda menggunakan semua sumber daya yang tersedia (daftar terus-menerus / jadwal dan slot instruksi) ke maksimum absolut.

Shaders: Z-buffer mengapung terbalik

Arah Z-buffer (pemilihan mendalam) telah terbalik dan ini berarti Z-buffer sekarang akan mengandung 1.0 di pesawat dekat, 0,0 di pesawat jauh. Ini, dikombinasikan dengan titik mengambang depth bufferSebuah toko memori yang memegang kedalaman nilai z setiap pixel dalam gambar, di mana nilai z adalah kedalaman untuk setiap piksel yang diberikan dari pesawat proyeksi. More info
Lihat di Glossary
secara signifikan meningkatkan presisi penyangga kedalaman yang menghasilkan lebih sedikit Z-fighting dan bayangan yang lebih baik, terutama ketika menggunakan pesawat dekat kecil dan pesawat jauh besar.

Perubahan API grafis:

  • Rentang ruang klip adalah [dekat, 0] bukan [0, jauh]
  • _CameraDepthTexture tekstur kisaran adalah [1,0] bukan [0,1]
  • Z-bias diabaikan sebelum diterapkan
  • Penyangga kedalaman 24 bit beralih ke format float 32 bit

makro/fungsi berikut akan menangani situasi Z terbalik tanpa langkah lain. Jika naungan Anda sudah menggunakannya, maka tidak ada perubahan yang diperlukan dari sisi Anda:

  • Linear01Depth(float z)
  • LinearEyeDepth(float z)
  • UNITY_CALC_FOG_FACTOR(koord)

Namun jika Anda mengambil nilai penyangga Z secara manual Anda perlu melakukan menulis kode mirip dengan:

float z = tex2D(_CameraDepthTexture, uv);
#if defined(UNITY_REVERSED_Z)
    z = 1.0f - z;
#endif

Untuk kedalaman ruang klip Anda dapat menggunakan makro berikut. Silahkan note bahwa makro ini tidak akan mengubah ruang klip pada plaform OpenGL/ES tetapi akan tetap [-near, far]:

float clipSpaceRange01 = UNITY_Z_0_FAR_FROM_CLIPSPACE(rawClipSpace);

_ZBufferParams sekarang mengandung nilai-nilai ini pada platform dengan penyangga kedalaman terbalik. Lihat dokumentasi tentang perbedaan rendering spesifik platform untuk informasi lebih lanjut.

x = -1+far/near
y = 1
z = x/far
w = 1/far

Z-bias ditangani secara otomatis oleh Unity tetapi jika Anda menggunakan plugin rendering kode asli Anda harus mengabaikannya di C / C++ Anda kode pada platform yang cocok.

Folder Khusus: Subfolder Editor Unity bernama “Resources”

Semua subfolder folder bernama “Editor” akan dikecualikan dari build dan tidak akan dimuat dalam mode Play di Editor Unity. Sebelumnya subfolder bernama “Resources” akan memiliki asetnya termasuk dalam build. Aset-aset ini masih dapat dimuat dengan memanggil sumber daya. Load() di Editor Anda 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
.

Misalnya, file ini dikecualikan dari build dan akan beban not ketika dalam mode Play di Editor, tetapi beban will jika disebut dari skrip:

  • Editor/Foo/Resources/Bar.png (foto ini dari kode Editor sebagai “Bar.png”)
  • WordPress.org
  • Editor/Resources/Editor/Resources/Foo.png (foto ini dari kode Editor sebagai “Foo.png” tetapi tidak sebagai “Editor/Resources/Foo.png”)

Aset ini akan memuat semua situasi:

  • Sumber Daya/Editor/Foo.png
  • Sumber Daya/Foo/Editor/Bar.png "Foo/Editor/Bar.png")
  • Sumber Daya/Editor/Resources/Foo.png (Ini memuat sebagai “Foo.png” dan bukan sebagai “Editor/Resources/Foo.png”)

Backface Toleransi dan Final Gather

Sebelumnya 'Backface Tolerance' parameter dalam Parameter Lightmap tidak diterapkan ketika menggunakan final mengumpulkan untuk panggang GI. Sekarang diterapkan dengan benar. Parameter sekarang mempengaruhi tahap GI realtime dan panggang GI (termasuk final mengumpulkan).

Affected scenesAdegan 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
terutama salah satu dengan geometri satu sisi (seperti papan iklan) di mana penting untuk dapat menyesuaikan 'Backface Tolerance' untuk menghindari texels yang tidak valid yang melihat permukaan punggung geometri satu sisi. Dalam adegan yang menggunakan billboardsObjek 2D bertekstur yang berputar sehingga selalu menghadapi Kamera. More info
Lihat di Glossary
dan final mengumpulkan 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
sekarang dapat ditingkatkan dengan menyesuaikan 'Backface Tolerance', namun adegan lain mungkin juga dipengaruhi, jika 'Backface Tolerance' non-standar diterapkan, karena sekarang benar di akuntansi untuk pada tahap akhir berkumpul.

Standar naungan BRDF2 sekarang menggunakan kira-kira GGX

BRDF2, tipe naungan standar ditetapkan pada platform seluler secara default, sekarang menggunakan perkiraan GGX bukan Blinn-Phong. Ini membuatnya terlihat lebih dekat dengan BRDF1 (digunakan pada desktop secara default) dan meningkatkan kualitas visual.

Haruskah Anda perlu melestarikan kira-kira legacy Anda harus memodifikasi kode BRDF2 di UnityStandardBRDF.cginc yang memiliki implementasi baru di dalam pernyataan #if UNITY_BRDF_GGX (ini juga digunakan oleh BRDF1 untuk memilih GGX). Mengubah definisi dalam UnityStandardConfig.cginc atau perubahan #if UNITY_BRDF_GGX ke #if 0 dalam fungsi BRDF2_Unity_PBS.

WordPress.org

Anda sekarang dapat menggunakan GradleSistem build Android yang mengotomatiskan beberapa proses build. Otomasi ini berarti bahwa banyak kesalahan build umum cenderung terjadi. More info
Lihat di Glossary
untuk membangun untuk Android.

Gradle tidak ketat tentang kesalahan dibandingkan dengan sistem build Android Unity yang ada, yang berarti bahwa beberapa proyek yang ada mungkin sulit untuk mengkonversi ke Gradle. Lihat dokumentasi tentang Pemecahan masalah Gradle untuk mengidentifikasi dan memecahkan kegagalan membangun ini.

Beban Objek Instantiate telah berubah

Beban spesifik dari fungsi Instantiate yang secara default, mengambil parameter untuk GameObjectObjek 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
asli dan satu untuk Transformasi induk telah berubah untuk bekerja secara berbeda. Tidak lagi menafsirkan posisi dan rotasi GameObject asli sebagai posisi ruang dunia dan rotasi, sehingga mengabaikan posisi dan rotasi Transformasi induk yang ditentukan.

Sekarang ini menafsirkan posisi dan rotasi sebagai posisi lokal dan rotasi dalam ruang Transform induk yang ditentukan, secara default. Ini konsisten dengan perilaku di Editor. Script Anda tidak akan diperbarui secara otomatis. Ini berarti ketika Anda menjalankan skrip yang mengandung panggilan ke overload ini Instantiate yang belum diperbarui untuk akun untuk perubahan ini, Anda mungkin mengalami perilaku yang tak terduga.

Renderers dan perilaku komponen LOD Group

Menonaktifkan komponen LODTeknik Tingkat Detail (LOD) adalah optimasi yang mengurangi jumlah segitiga yang dimiliki Unity untuk membuat GameObject ketika jaraknya dari kamera meningkat. More info
Lihat di Glossary
Group tidak lagi menonaktifkan Renderer melekat padanya. Pengaturan LOD GroupKomponen untuk mengelola tingkat detail (LOD) untuk GameObjects. More info
Lihat di Glossary
hanya berlaku untuk Renderers ketika komponen LOD Group diaktifkan. Unity secara otomatis menerapkan perubahan ini ketika Anda meningkatkan proyek Anda, dan perubahan tidak dapat dibalik.

Peningkatan ke Unity 5.6
Peningkatan ke Unity 5.4