MRTK2 standart gölgelendirici

Standart gölgelendirici örnekleri

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.

Malzeme Galerisi

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.

Malzeme Karşılaştırması

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.

Malzeme Denetçisi

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.

İşleme Modları

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

Unity Standart Gölgelendirici İstatistikleri

MRTK Standart gölgelendirici istatistikleri örneği

MRTK Standart Gölgelendirici İstatistikleri

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 ışığı

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

lwrp yükseltmesi

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:

ağ efektini ölçeklendirme

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 haritası örneği

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:

doku birleştirici örneği

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

ilkel 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.

Mesh Ana Hattı

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:

Mesh Ana Hat Malzemesi
  1. 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.
  2. Köşe Ekstrüzyonu - Ana hattı işlemek için etkinleştirilmesi gerekir.
  3. 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.

Düzgün Normaller Ana Hattı
  1. aracılığıyla MeshSmoother.csoluşturulan düzgün normaller.
  2. 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:

kalıp testi

Örnek renk desteği

Binlerce GPU örneği benzersiz malzeme özelliği sağlamak için örnek renk desteği:

örneklenen özellikler

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.

triplanar

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.

normal harita ölçeği 1

Ç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:

albedo ataması

Piksel başına kırpma dokuları, yerel kenar tabanlı diğer ad önleme ve normal harita ölçeklendirme desteklenir.

normal harita ölçeği 2

Ayrıca bkz.