MRTK2 standart gölgelendirici
MRTK2 Standart gölgelendirme sistemi, Unity'nin Standart Gölgelendiricisi'ne benzer görsellere ulaşabilen, Fluent Design Sistemi ilkeleri uygulayabilen ve karma gerçeklik cihazlarında performans gösterebilen tek, esnek bir gölgelendirici kullanır.
Örnek sahneler
Gölgelendirici malzeme örneklerini materialGallery sahnesinde altında MRTK/Examples/Demos/StandardShader/Scenes/
bulabilirsiniz. Bu sahnedeki tüm malzemeler MRTK/Standart gölgelendiriciyi kullanıyor.
MRTK/Standard gölgelendiricisini, altındaki MRTK/Examples/Demos/StandardShader/Scenes/
StandardMaterialComparison sahnesindeki Unity/Standard gölgelendiricisi örneğinde karşılaştırıp test etmek için bir karşılaştırma sahnesi bulabilirsiniz.
Mimari
MRTK/Standart gölgelendirme sistemi, malzeme özelliklerine göre en uygun gölgelendirici kodunu otomatik olarak oluşturmak için Unity'nin gölgelendirici programı çeşitleme özelliğini kullanan bir "uber gölgelendiricidir". Kullanıcı malzeme denetçisinde malzeme özelliklerini seçtiğinde, yalnızca etkinleştirdikleri özellikler için performans maliyetine neden olur.
Malzeme denetçisi
MRTK/Standard gölgelendiricisi için adlı MixedRealityStandardShaderGUI.cs
özel bir malzeme denetçisi vardır. Denetçi, kullanıcı seçimine ve işleme durumunu ayarlamaya yardımcı olan gölgelendirici özelliklerini otomatik olarak etkinleştirir/devre dışı bırakır. Her özellik hakkında daha fazla bilgi için lütfen bir araç ipucu için Unity Düzenleyicisi'ndeki her özelliğin üzerine gelin.
Denetçinin ilk bölümü, malzemenin işleme durumunu denetler. İşleme Modu , bir malzemenin ne zaman ve nasıl işleneceğini belirler. MRTK/Standart gölgelendiricisinin amacı Unity/Standard gölgelendiricisinde bulunan işleme modlarını yansıtmaktır. MRTK/Standart gölgelendiricisi, tam kullanıcı denetimi için bir Eklemeli işleme modu ve Özel işleme modu da içerir.
İşleme Modu | Description |
---|---|
Opak | (Varsayılan) Saydam alanları olmayan normal katı nesneler için uygundur. |
Kesme | Opak ve saydam alanlar arasında sert kenarları olan saydam efektlerin oluşturulmasına olanak tanır. Bu modda yarı saydam alanlar yoktur, doku %100 opak veya görünmezdir. Bu, bitki örtüsü gibi malzemelerin şeklini oluşturmak için saydamlık kullanılırken yararlıdır. |
Fade | Saydamlık değerlerinin, herhangi bir belirtik vurgu veya yansıma da dahil olmak üzere bir nesneyi tamamen soldurmasına izin verir. Bu mod, sönen veya sönen bir nesneye animasyon eklemek istiyorsanız kullanışlıdır. Net plastik veya cam gibi gerçekçi şeffaf malzemelerin işlenmesi için uygun değildir, çünkü yansımalar ve vurgular da soluk görünür. |
Geçirgen | Şeffaf plastik veya cam gibi gerçekçi şeffaf malzemeleri işlemek için uygundur. Bu modda, malzemenin kendisi saydamlık değerlerini alır (dokunun alfa kanalına ve ton renginin alfaya göre). Ancak, yansımalar ve aydınlatma vurguları, gerçek saydam malzemelerde olduğu gibi tam netlikte görünür kalır. |
Toplamsal | Önceki piksel rengini geçerli piksel rengiyle toplayan eklenebilir karıştırma modunu etkinleştirir. Bu, saydamlık sıralama sorunlarını önlemek için tercih edilen saydamlık modudur. |
Özel | İşleme modunun her yönünün el ile denetlenmesini sağlar. Yalnızca gelişmiş kullanım için. |
Cull Modu | Description |
---|---|
Kapalı | Yüz hesaplamayı devre dışı bırakır. Culling yalnızca iki taraflı bir ağ gerektiğinde Kapalı olarak ayarlanmalıdır. |
Front | Ön yüz itlafı sağlar. |
Geri | (Varsayılan) Arka yüz itlafı sağlar. İşleme performansını geliştirmek için arka yüz itlafı mümkün olduğunca sık etkinleştirilmelidir. |
Performans
MRTK Standart gölgelendiricisini Unity standart gölgelendiricisine göre kullanmanın birincil avantajlarından biri performanstır. MRTK Standart Gölgelendiricisi yalnızca etkinleştirilen özellikleri kullanmak için genişletilebilir. Bununla birlikte, MRTK Standart gölgelendiricisi unity Standard gölgelendiricisi ile benzer estetik sonuçlar sunmak için de yazılmıştır, ancak çok daha düşük bir maliyetle. Gölgelendirici performansını karşılaştırmanın basit bir yolu, GPU üzerinde gerçekleştirilmesi gereken işlem sayısıdır. Tabii ki, hesaplamaların büyüklüğü etkinleştirilen özellikler ve diğer işleme yapılandırmaları tarafından dalgalanabilir. Ancak genel olarak MRTK Standart gölgelendiricisi Unity Standard gölgelendiricisinden çok daha az hesaplama gerçekleştirir.
Unity Standart gölgelendirici istatistikleri örneği
MRTK Standart gölgelendirici istatistikleri örneği
Not
Bu sonuçlar, Unity denetçisinde bir gölgelendirici varlığı seçilip görüntülenip kod derle ve göster düğmesine tıklanarak oluşturulabilir.
Işık
MRTK/Standard, aydınlatma için basit bir yaklaşık kullanır. Bu gölgelendirici fiziksel doğruluk ve enerji tasarrufu hesaplamadığından, hızlı ve verimli bir şekilde işler. Blinn-Phong, Fresnel ve görüntü tabanlı aydınlatma ile yaklaşık fiziksel tabanlı aydınlatmaya harmanlanmış birincil aydınlatma tekniğidir. Gölgelendirici aşağıdaki aydınlatma tekniklerini destekler:
Yön ışığı
Gölgelendirici sahnedeki ilk Unity Yönlü Işığın yönüne, rengine ve yoğunluğuna saygı gösterecektir (etkinse). Dinamik nokta ışıkları, spot ışıklar veya diğer Unity ışığı gerçek zamanlı aydınlatmada dikkate alınmaz.
Küresel harmonikler
Gölgelendirici, etkinse Spherical Harmonics kullanarak sahnedeki ışıkları yaklaşık olarak ayarlamak için Işık Yoklamaları kullanır. Hesaplama maliyetini azaltmak için köşe başına küresel harmonik hesaplamaları gerçekleştirilir.
Açık eşleme
Statik aydınlatma için gölgelendirici Unity'nin Lightmapping sistemi tarafından oluşturulan lightmap'lere saygı gösterir. Lightmap'leri kullanmak için işleyiciyi statik (veya lightmap statik) olarak işaretlemeniz yeterlidir.
Vurgu ışığı
Yakınlık ışığı
- Bkz . Yakınlık Işığı
Basit Betik Yazılabilir İşleme İşlem Hattı desteği
MRTK, geliştiricilerin MRTK gölgelendiricileriyle Unity'nin Basit Betik Yazılabilir İşleme İşlem Hattı'nı (LWRP) kullanmasına olanak sağlayan bir yükseltme yolu içerir. Unity 2019.1.1f1 ve Lightweight RP 5.7.2 paketinde test edilmiştir. LWRP'yi kullanmaya başlama yönergeleri için bu sayfaya bakın.
MRTK yükseltmesini gerçekleştirmek için şunları seçin: Karma Gerçeklik Toolkit -> Utilities -> Upgrade MRTK Standard Shader for Lightweight Render Pipeline
Yükseltme gerçekleştikten sonra MRTK/Standart gölgelendirici değiştirilir ve tüm eflatun (gölgelendirici hatası) malzemeleri düzeltilmelidir. Yükseltmenin başarıyla gerçekleştiğini doğrulamak için konsoluna bakın: Lightweight Render Pipeline ile kullanılmak üzere Yükseltilmiş Assets/MixedRealityToolkit/StandardAssets/Shaders/MixedRealityStandard.shader.
UGUI desteği
MRTK Standart gölgelendirme sistemi Unity'nin yerleşik kullanıcı arabirimi sistemiyle çalışır. Unity UI bileşenlerinde unity_ObjectToWorld matrisi, Grafik bileşeninin üzerinde yaşadığı yerel dönüşümün dönüştürme matrisi değildir, üst Tuvalinin matrisidir. Birçok MRTK/Standart gölgelendirici efekti, nesne ölçeğinin bilinmesini gerektirir. Bu sorunu çözmek için, ScaleMeshEffect.cs
kullanıcı arabirimi ağı oluşturma sırasında ölçeklendirme bilgilerini UV kanalı özniteliklerine depolar.
Unity Görüntüsü bileşeni kullanılırken Unity kullanıcı arabiriminin fazladan köşeler oluşturmasını önlemek için Kaynak Görüntü için "Yok (Sprite)" belirtmeniz önerilir.
MRTK içindeki tuval, gerektiğinde bir ScaleMeshEffect.cs
tuval eklenmesini ister:
Doku birleştirici
Unity Standart gölgelendirici ile piksel başına metalik, pürüzsüzlük, serbestlik ve oklüzyon değerlerinin eşliklerini geliştirmek için kanal ambalajı aracılığıyla kontrol edilebilir. Örnek:
Kanal paketlemeyi kullanırken, dört ayrı doku yerine yalnızca bir dokuyu örneklemeniz ve belleğe yüklemeniz gerekir. Doku haritalarınızı Madde veya Photoshop gibi bir programda yazdığınızda, bunları aşağıdaki gibi el ile paketleyebilirsiniz:
Kanal | Özellik |
---|---|
Kırmızı | Meta -lik |
Yeşil | Tıkanık -lığı |
Mavi | Emisyon (Gri Tonlamalı) |
Alfa | Düzgünlüğü |
Veya MRTK Doku Birleştirici Aracı'nı kullanabilirsiniz. Aracı açmak için şunu seçin: araç setini Karma Gerçeklik -> Yardımcı Programlar -> Doku Birleştiricisi aşağıdaki pencereyi açar:
Bu pencere, Unity Standart gölgelendiricisi seçilerek ve "Standart Malzemeden Otomatik Olarak Doldur" seçeneğine tıklanarak otomatik olarak doldurulabilir. Ya da kırmızı, yeşil, mavi veya alfa kanalı başına el ile doku (veya sabit değer) belirtebilirsiniz. Doku bileşimi GPU hızlandırmalı ve giriş dokusunun CPU ile erişilebilir olmasını gerektirmez.
Ek özellik belgeleri
MrTK/Standard gölgelendiricisi ile kullanılabilen birkaç özellik ayrıntısıyla ilgili ek ayrıntılar aşağıdadır.
Temel kırpma
Mesh ana hatları
Birçok mesh anahat tekniği, bir işlem sonrası tekniği kullanılarak gerçekleştirilir. İşlem sonrası harika kalite ana hatları sağlar, ancak birçok Karma Gerçeklik cihazında çok pahalı olabilir. Altındaki OutlineExamples sahnesinde mesh ana hatlarının kullanımını gösteren bir sahne MRTK/Examples/Demos/StandardShader/Scenes/
bulabilirsiniz.
MeshOutline.cs
ve MeshOutlineHierarchy.cs
ağ işleyicisi etrafında bir ana hat oluşturmak için kullanılabilir. Bu bileşenin etkinleştirilmesi, özetlenen nesnenin ek bir işleme geçişini getirir, ancak mobil Karma Gerçeklik cihazlarda performansla çalışacak şekilde tasarlanmıştır ve herhangi bir son işlem kullanmaz. Bu etkinin sınırlamaları, su geçirmez olmayan (veya iki taraflı olması gereken) nesneler üzerinde düzgün çalışmaması ve çakışan nesnelerde derinlik sıralama sorunları oluşmasını içerir.
Ana hat davranışları MRTK/Standart gölgelendirici ile birlikte kullanılacak şekilde tasarlanmıştır. Ana hat malzemeleri genellikle düz bir yarılmamış renktir, ancak çok çeşitli efektler elde etmek için yapılandırılabilir. Ana hat malzemesinin varsayılan yapılandırması aşağıdaki gibidir:
- Derinlik Yazma - ana hattın diğer nesnelerin işlenmesini engellemediğinden emin olmak için ana hat malzemeleri için devre dışı bırakılmalıdır.
- Köşe Ekstrüzyonu - Ana hattı işlemek için etkinleştirilmesi gerekir.
- Düzgün Normalleri Kullan - Bu ayar bazı tireler için isteğe bağlıdır. Ekstrüzyon, bir köşeyi normal bir köşe boyunca taşıyarak gerçekleşir, bazı kafeslerde varsayılan normaller boyunca ekstrüzyon yapılırsa ana hatta kesintilere neden olur. Bu kesintileri düzeltmek için, bu kutuyu işaretleyerek
MeshSmoother.cs
MeshSmoother.cs
bir ağ üzerinde otomatik olarak düzeltilmiş normaller oluşturmak için kullanılabilen bir bileşendir. Bu yöntem, boşlukta aynı konumu paylaşan bir ağ içindeki köşeleri gruplandırır ve ardından bu köşelerin normallerinin ortalamasını alır. Bu işlem temel ağın bir kopyasını oluşturur ve yalnızca gerektiğinde kullanılmalıdır.
- aracılığıyla
MeshSmoother.cs
oluşturulan düzgün normaller. - Kullanılan varsayılan normal değerler, küp köşelerinin etrafındaki yapıtlara dikkat edin.
Kalıp testi
Çok çeşitli efektler elde etmek için yerleşik yapılandırılabilir kalıp testi desteği. Portallar gibi:
Örnek renk desteği
Binlerce GPU örneği benzersiz malzeme özelliği sağlamak için örnek renk desteği:
Triplanar eşlemesi
Triplanar eşlemesi, bir ağı program aracılığıyla dokulama tekniğidir. Genellikle arazide kullanılır, UV'ler olmadan tireler veya şekilleri açmak zordur. Bu uygulama dünya veya yerel alan projeksiyonunu, karıştırma düzgünlüğü belirtimini ve normal harita desteğini destekler. Kullanılan her doku için 3 doku örneği gerektiğini, bu nedenle performans açısından kritik durumlarda dikkate alınması gerektiğini unutmayın.
Köşe ekstrüzyonu
Dünya uzayında köşe ekstrüzyonu. Ekstrüzyonlu sınırlayıcı birimleri veya geçişleri kesik/dış çizgilerle görselleştirmek için kullanışlıdır.
Çeşitli
Albedo iyileştirmelerini denetlemek için bir onay kutusu. İyileştirme albedo işlemleri, hiçbir albedo dokusu belirtilmediğinde devre dışı bırakılır. Bu, uzak doku yüklemesini denetlemek için kullanışlıdır.
Şu kutuyu işaretlemeniz yeterlidir:
Piksel başına kırpma dokuları, yerel kenar tabanlı diğer ad önleme ve normal harita ölçeklendirme desteklenir.