Aracılığıyla paylaş


Gölgelendirici Tasarım Aracı düğümleri nedir?

Visual Studio'daki Gölgelendirici Tasarım Aracı görsel efektleri grafik olarak temsil eder. Bu grafikler, hedeflenen etkiyi elde etmek için kesin yollarla seçilen ve bağlanan düğümlerden oluşturulur. Her düğüm bir bilgi parçasını veya matematiksel işlevi temsil eder ve aralarındaki bağlantılar sonucu elde etmek için bilgilerin grafikte nasıl aktığını gösterir. Düğüm türleri filtreler, dokular, parametreler, sabitler, yardımcı program düğümleri ve matematik düğümleridir.

Düğüm yapısı

Tüm düğümler ortak öğelerin birleşiminden oluşur. Her düğümün sağ tarafında en az bir çıkış terminali vardır (gölgelendiricinin çıkışını temsil eden son renk düğümü hariç). Hesaplamaları veya doku örnekleyicilerini temsil eden düğümlerin sol tarafında giriş terminalleri vardır, ancak bilgileri temsil eden düğümlerin giriş terminalleri yoktur. Çıkış terminalleri, bilgileri bir düğümden diğerine taşımak için giriş terminallerine bağlanır.

Girişleri yükseltme

Gölgelendirici Tasarım Aracı, efektin bir oyunda veya uygulamada kullanılabilmesi için nihai olarak HLSL kaynak kodu oluşturması gerektiğinden, Shader Tasarım Aracı düğümleri HLSL'nin kullandığı tür yükseltme kurallarına tabidir. Grafik donanımı öncelikli olarak kayan nokta değerleri üzerinde çalıştığından, farklı türler arasında tür yükseltmesi (örneğin, 'den int float, veya 'den- float double) sık karşılaşılan bir durumdur. Bunun yerine, grafik donanımı aynı işlemi aynı anda birden çok bilgi parçası üzerinde kullandığından, birçok girişin daha kısasının en uzun girişin boyutuyla eşleşecek şekilde uzatıldığı farklı bir yükseltme türü oluşabilir. Uzatılma şekli girişin türüne ve ayrıca işlemin kendisine bağlıdır:

  • Küçük tür bir skaler değerse:

    Skaler değeri, boyutu büyük girişe eşit olan bir vektöre çoğaltılır. Örneğin, skaler giriş 5.0, işlemin en büyük girişi ne olursa olsun üç öğeli bir vektör olduğunda vektör (5.0, 5.0, 5.0) olur.

  • Küçük tür bir vektörse ve işlem çarpımlıysa (*, /, %, vb.), o zaman:

    Vektör değeri, boyutu büyük girişe eşit olan bir vektörnün önde gelen öğelerine kopyalanır ve sondaki öğeler 1,0 olarak ayarlanır. Örneğin, vektör girişi (5.0, 5.0), dört öğeli bir vektörle çarpıldığında vektör (5.0, 5.0, 1.0, 1.0) olur. Bu, 1.0 çarpımlı kimliği kullanarak çıkışın üçüncü ve dördüncü öğelerini korur.

  • Küçük tür bir vektörse ve işlem ekliyse (+, -, vb.), sonra:

    Vektör değeri, boyutu büyük girişe eşit olan bir vektörnün öndeki öğelerine kopyalanır ve sondaki öğeler 0,0 olarak ayarlanır. Örneğin, vektör girişi (5.0, 5.0), dört öğeli bir vektöre eklendiğinde vektör (5.0, 5.0, 0.0, 0.0) olur. Bu, 0,0 ek kimliğini kullanarak çıkışın üçüncü ve dördüncü öğelerini korur.

Düğümler ve düğüm türleri

Gölgelendirici Tasarım Aracı filtreler, doku düğümleri, parametreler, sabitler, yardımcı program düğümleri ve matematik düğümleri olmak üzere altı farklı düğüm türü sağlar ve her türe ait birkaç ayrı düğüm vardır.

Sabit düğümler

Gölgelendirici Tasarım Aracı sabit düğümler, piksel gölgelendiricisi hesaplamalarında değişmez değerleri ve ilişkilendirilmiş köşe özniteliklerini temsil eder. Köşe öznitelikleri ilişkilendirilmiş olduğundan ve her piksel için farklı olduğundan, her piksel gölgelendirici örneği sabitin farklı bir sürümünü alır. Bu, her piksele benzersiz bir görünüm verir.

Köşe özniteliği ilişkilendirmesi

Bir oyun veya uygulamadaki 3B sahnenin görüntüsü, köşeler, köşe öznitelikleri ve ilkel tanımlarla tanımlanan birçok nesnenin matematiksel olarak ekran piksellerine dönüştürülmesiyle oluşturulur. Piksele benzersiz görünümünü vermek için gereken tüm bilgiler, pikselin ilkel öğeyi oluşturan farklı köşelere yakınlığıyla bir araya gelen köşe öznitelikleri aracılığıyla sağlanır. Temel öğe, temel bir işleme öğesidir; yani nokta, çizgi veya üçgen gibi basit bir şekildir. Köşelerden yalnızca birine çok yakın olan bir piksel, bu köşeyle neredeyse aynı sabitleri alır, ancak bir ilkelin tüm köşeleri arasında eşit aralıklı bir piksel, bu köşelerin ortalaması olan sabitleri alır. Grafik programlamada, piksellerin aldığı sabitlerin ilişkilendirilmiş olduğu söylenir. Piksellere bu şekilde sabit veri sağlamak iyi görsel kalite sağlar ve aynı zamanda bellek ayak izi ve bant genişliği gereksinimlerini azaltır.

Her piksel gölgelendirici örneği yalnızca bir sabit değer kümesi alır ve bu değerleri değiştiremese de, farklı piksel gölgelendiricisi örnekleri farklı sabit veri kümeleri alır. Bu tasarım, bir gölgelendirici programının ilkeldeki her piksel için farklı bir renk çıkışı oluşturmasını sağlar.

Sabit düğüm başvurusu

Düğüm Ayrıntılar Özellikler
Kamera Vektör Geçerli pikselden dünya uzayında kameraya uzanan vektör.

Bunu kullanarak dünya uzayında yansımaları hesaplayabilirsiniz.

Çıktı

Output: float3
Geçerli pikselden kameraya vektör.
Hiçbiri
Renk Sabiti Sabit bir renk değeri.

Çıktı

Output: float4
Renk değeri.
Çıktı
Renk değeri.
Sabit Sabit bir skaler değer.

Çıktı

Output: float
Skaler değer.
Çıktı
Skaler değer.
2B Sabit İki bileşenli vektör sabiti.

Çıktı

Output: float2
Vektör değeri.
Çıktı
Vektör değeri.
3B Sabit Üç bileşenli vektör sabiti.

Çıktı

Output: float3
Vektör değeri.
Çıktı
Vektör değeri.
4B Sabit Dört bileşenli vektör sabiti.

Çıktı

Output: float4
Renk değeri.
Çıktı
Vektör değeri.
Normalleştirilmiş Konum Normalleştirilmiş cihaz koordinatlarıyla ifade edilen geçerli pikselin konumu.

x koordinatı ve y koordinatı [-1, 1] aralığında değerlere sahiptir, z koordinatının [0, 1] aralığında bir değeri vardır ve w bileşeni görünüm alanında nokta derinliği değerini içerir; w normalleştirilmemiş.

Çıktı

Output: float4
Geçerli pikselin konumu.
Hiçbiri
Nokta Rengi Malzeme yayma rengi ve köşe rengi özniteliklerinin bir bileşimi olan geçerli pikselin yayma rengi.

Çıktı

Output: float4
Geçerli pikselin dağınık rengi.
Hiçbiri
Nokta Derinliği Görünüm alanında geçerli pikselin derinliği.

Çıktı

Output: float
Geçerli pikselin derinliği.
Hiçbiri
Normalleştirilmiş Nokta Derinliği Normalleştirilmiş cihaz koordinatlarıyla ifade edilen geçerli pikselin derinliği.

Sonucun [0, 1] aralığında bir değeri vardır.

Çıktı

Output: float
Geçerli pikselin derinliği.
Hiçbiri
Ekran Konumu Geçerli pikselin ekran koordinatlarıyla ifade edilen konumu.

Ekran koordinatları geçerli görünüm penceresine dayanır. x ve y bileşenleri ekran koordinatlarını, z bileşeni [0, 1] aralığına normalleştirilmiş derinliği ve w bileşeni de görünüm alanında derinlik değerini içerir.

Çıktı

Output: float4
Geçerli pikselin konumu.
Hiçbiri
Surface Normal Nesne alanında geçerli pikselin yüzey normali.

Nesne alanında aydınlatma katkılarını ve yansımalarını hesaplamak için bunu kullanabilirsiniz.

Çıktı

Output: float3
Geçerli pikselin yüzey normali.
Hiçbiri
Tanjant Uzay Kamera Vektör Geçerli pikselden tanjant uzayda kameraya uzanan vektör.

Tanjant alanda yansımaları hesaplamak için bunu kullanabilirsiniz.

Çıktı

Output: float3
Geçerli pikselden kameraya vektör.
Hiçbiri
Tanjant Uzay Işık Yönü Geçerli pikselin tanjant alanında bir ışık kaynağından ışığın hangi yönde atıldığını tanımlayan vektör.

Tanjant alanında aydınlatmayı ve belirtik katkıları hesaplamak için bunu kullanabilirsiniz.

Çıkış:

Output: float3
Geçerli pikselden bir ışık kaynağına vektör.
Hiçbiri
Dünya Normali Dünya uzayında geçerli pikselin yüzey normali.

Bunu, dünya uzayında aydınlatma katkılarını ve yansımalarını hesaplamak için kullanabilirsiniz.

Çıktı

Output: float3
Geçerli pikselin yüzey normali.
Hiçbiri
Dünya Konumu Geçerli pikselin dünya uzayı içindeki konumu.

Çıktı

Output: float4
Geçerli pikselin konumu.
Hiçbiri

Parametre düğümleri

Shader Tasarım Aracı parametre düğümleri, malzeme özellikleri, yön ışıkları, kamera konumu ve zaman gibi çizim başına uygulama denetimi altındaki gölgelendiriciye girişleri temsil eder. Bu parametreleri her çizim çağrısıyla değiştirebildiğiniz için, bir nesneye farklı görünümler vermek için aynı gölgelendiriciyi kullanabilirsiniz.

Parametre düğümü başvurusu

Düğüm Ayrıntılar Özellikler
Kamera Dünya Konumu Dünyanın uzayında kameranın konumu.

Çıkış:

Output: float4
Kameranın konumu.
Hiçbiri
Açık Yön Dünya uzayında bir ışık kaynağından ışığın hangi yönde atıldığını tanımlayan vektör.

Bunu, dünya uzayında aydınlatmayı ve belirtik katkıları hesaplamak için kullanabilirsiniz.

Çıkış:

Output: float3
Geçerli pikselden bir ışık kaynağına vektör.
Hiçbiri
Malzeme Ortam Dolaylı aydınlatmaya atfedilen geçerli pikselin dağınık renk katkısı.

Bir pikselin dağınık rengi, aydınlatmanın pürüzlü yüzeylerle nasıl etkileşime geçtiğini simüle eder. Dolaylı aydınlatmanın bir nesnenin gerçek dünyadaki görünümüne nasıl katkıda bulunabileceğini yaklaşık olarak ayarlamak için Material Ambient parametresini kullanabilirsiniz.

Çıkış:

Output: float4
Dolaylı yani ortam aydınlatması nedeniyle geçerli pikselin dağınık rengi.
Erişim
Özelliğin Model Düzenleyicisi'nden ayarlanmasını sağlamak için Genel; aksi takdirde Özel.

Değer
Dolaylı yani ortam aydınlatması nedeniyle geçerli pikselin dağınık rengi.
Malzeme Dağılımı Geçerli pikselin doğrudan aydınlatmayı nasıl yaydığını açıklayan bir renk.

Bir pikselin dağınık rengi, aydınlatmanın pürüzlü yüzeylerle nasıl etkileşime geçtiğini simüle eder. Material Diffuse parametresini kullanarak geçerli pikselin doğrudan aydınlatmayı (yani yön, nokta ve spot ışıkları) nasıl yaydığını değiştirebilirsiniz.

Çıkış:

Output: float4
Geçerli pikselin doğrudan aydınlatmayı nasıl yaydığını açıklayan bir renk.
Erişim
Özelliğin Model Düzenleyicisi'nden ayarlanmasını sağlamak için Genel; aksi takdirde Özel.

Değer
Geçerli pikselin doğrudan aydınlatmayı nasıl yaydığını açıklayan bir renk.
Malzeme İzinli Geçerli pikselin kendisine sağladığı aydınlatmaya atfedilen renk katkısı.

Parlayan bir nesnenin benzetimini yapmak için bunu kullanabilirsiniz; yani, kendi ışığını sağlayan bir nesne. Bu ışık diğer nesneleri etkilemez.

Çıkış:

Output: float4
Geçerli pikselin kendi kendine sağlanan aydınlatmadan kaynaklanan renk katkısı.
Erişim
Özelliğin Model Düzenleyicisi'nden ayarlanmasını sağlamak için Genel; aksi takdirde Özel.

Değer
Geçerli pikselin kendi kendine sağlanan aydınlatmadan kaynaklanan renk katkısı.
Malzeme Belirtimi Geçerli pikselin doğrudan aydınlatmayı nasıl yansıttığını açıklayan bir renk.

Bir pikselin belirtik rengi, ışıklandırmanın pürüzsüz, ayna benzeri yüzeylerle nasıl etkileşime geçtiğini simüle eder. Geçerli pikselin doğrudan aydınlatmayı (yani yön, nokta ve spot ışıklarını) yansıtma şeklini değiştirmek için Material Specular parametresini kullanabilirsiniz.

Çıkış:

Output: float4
Geçerli pikselin doğrudan aydınlatmayı nasıl yansıttığını açıklayan bir renk.
Erişim
Özelliğin Model Düzenleyicisi'nden ayarlanmasına izin vermek için Genel; aksi takdirde Özel.

Değer
Geçerli pikselin doğrudan aydınlatmayı nasıl yansıttığını açıklayan bir renk.
Malzeme Belirtik Gücü Belirtik vurguların yoğunluğunu açıklayan skaler değer.

Belirtik güç ne kadar büyük olursa, belirtik vurgular o kadar yoğun ve geniş bir alana ulaşır.

Çıkış:

Output: float
Geçerli pikseldeki belirtik vurguların yoğunluğunu açıklayan üstel terim.
Erişim
Özelliğin Model Düzenleyicisi'nden ayarlanmasını sağlamak için Genel; aksi takdirde Özel.

Değer
Geçerli pikseldeki belirtik vurguların yoğunluğunu tanımlayan üs.
Normalleştirilmiş Zaman [0, 1] aralığına kadar normalleştirilen saniye sayısı, zaman 1'e ulaştığında 0'a sıfırlanır.

Bunu, örneğin doku koordinatlarına, renk değerlerine veya diğer özniteliklere animasyon eklemek için gölgelendirici hesaplamalarında parametre olarak kullanabilirsiniz.

Çıkış:

Output: float
Saniye olarak normalleştirilmiş süre.
Hiçbiri
Time Saniye olarak süre.

Bunu, örneğin doku koordinatlarına, renk değerlerine veya diğer özniteliklere animasyon eklemek için gölgelendirici hesaplamalarında parametre olarak kullanabilirsiniz.

Çıkış:

Output: float
Saniyeler içinde.
Hiçbiri

Doku düğümleri

Gölgelendirici Tasarım Aracı doku düğümleri çeşitli doku türlerini ve geometrilerini örneklemektedir ve doku koordinatları üretebilir veya dönüştürebilir. Dokular nesneler üzerinde renk ve aydınlatma ayrıntısı sağlar.

Doku düğümü başvurusu

Düğüm Ayrıntılar Özellikler
Küp Haritası Örneği Belirtilen koordinatlarda bir küp haritasından renk örneği alır.

Yansıma efektleri için renk ayrıntısı sağlamak veya küresel bir nesneye 2B dokudan daha az bozulmaya sahip bir doku uygulamak için küp haritası kullanabilirsiniz.

Giriş:

UVW: float3
Doku küpü üzerinde örneğin alındığı konumu belirten bir vektör. Örnek, bu vektör küple kesiştiği yerde alınır.

Çıkış:

Output: float4
Renk örneği.
Doku
Örnekleyici ile ilişkili doku yazmacı.
Normal Harita Örneği Belirtilen koordinatlarda 2B normal bir haritadan normal bir örnek alır

Bir nesnenin yüzeyinde ek geometrik ayrıntının görünümünü simüle etmek için normal bir harita kullanabilirsiniz. Normal haritalar, renk verileri yerine birim vektörlerini temsil eden paketlenmiş veriler içerir

Giriş:

UV: float2
Örneğin alındığı koordinatlar.

Çıkış:

Output: float3
Normal örnek.
Eksen Ayarlama
Normal harita örneğinin hazır olma durumunu ayarlamak için kullanılan faktör.

Doku
Örnekleyici ile ilişkili doku yazmacı.
Pan UV Belirtilen doku koordinatlarını zamanın bir işlevi olarak kaydırıyor.

Bir dokuyu veya normal haritayı nesnenin yüzeyi boyunca taşımak için bunu kullanabilirsiniz.

Giriş:

UV: float2
Kaydıracak koordinatlar.

Time: float
Saniye cinsinden kaydırma süresi.

Çıkış:

Output: float2
Kaydırılmış koordinatlar.
Hız X
Saniye başına x ekseni boyunca kaydırılan texel sayısı.

Hız Y
Saniye başına y ekseni boyunca kaydırılan texel sayısı.
Parallax UV Belirtilen doku koordinatlarını yükseklik ve görüntüleme açısı işlevi olarak değiştirir.

Bunun oluşturduğu etki parallax eşlemesi veya sanal yer değiştirme eşlemesi olarak bilinir. Düz bir yüzeyde derinlik yanılsaması oluşturmak için kullanabilirsiniz.

Giriş:

UV: float2
Yer değiştirme koordinatları.

Height: float
Koordinatlarla UV ilişkili heightmap değeri.

Çıkış:

Output: float2
Yerlerinden edilmiş koordinatlar.
Derinlik Düzlemi
Parallax etkisi için başvuru derinliği. Varsayılan olarak değer 0,5'tir. Daha küçük değerler dokuyu kaldırır; daha büyük değerler onu yüzeye batırıyor.

Derinlik Ölçeği
Paralaks etkisinin ölçeği. Bu, görünür derinliğin daha fazla veya daha az belirgin olmasını sağlar. Tipik değerler 0,02 ile 0,1 arasında değişir.
UV Döndürme Belirtilen doku koordinatlarını merkezi bir nokta etrafında zamanın işlevi olarak döndürür.

Bir nesnenin yüzeyinde doku veya normal harita döndürmek için bunu kullanabilirsiniz.

Giriş:

UV: float2
Döndürülecek koordinatlar.

Time: float
Saniye cinsinden kaydırma süresi.

Çıkış:

Output: float2
Döndürülen koordinatlar.
Orta X
Döndürme merkezini tanımlayan x koordinatı.

Orta Y
Döndürme merkezini tanımlayan y koordinatı.

Hız
Dokunun saniyede döndürüldüğünde radyan cinsinden açı.
Doku Koordinatı Geçerli pikselin doku koordinatları.

Doku koordinatları, yakındaki köşelerin doku koordinat öznitelikleri arasında ilişkilendirme yaparak belirlenir. Bunu doku alanında geçerli pikselin konumu olarak düşünebilirsiniz.

Çıkış:

Output: float2
Doku koordinatları.
Hiçbiri
Doku Boyutları 2B doku haritasının genişliğini ve yüksekliğini gösterir.

Bir gölgelendiricideki doku genişliğini ve yüksekliğini göz önünde bulundurmak için doku boyutlarını kullanabilirsiniz.

Çıkış:

Output: float2
Doku genişliği ve yüksekliği, vektör olarak ifade edilir. Genişlik, vektörünün ilk öğesinde depolanır. Yükseklik ikinci öğede depolanır.
Doku
Doku boyutlarıyla ilişkili doku yazmaç.
Texel Delta 2B doku haritasının ifadeleri arasındaki delta (uzaklık) çıkışını alır.

Bir gölgelendiricide komşu texel değerlerini örneklemek için texel deltasını kullanabilirsiniz.

Çıkış:

Output: float2
Normalleştirilmiş doku alanında vektör olarak ifade edilen bir texel'den sonraki texel'e (çapraz olarak pozitif yönde hareket eden) delta (uzaklık). Deltanın U veya V koordinatlarını seçmeli olarak yoksayarak veya yok sayarak tüm komşu ifadelerin konumlarını türetebilirsiniz.
Doku
Texel deltasıyla ilişkili doku yazmaç.
Doku Örneği Belirtilen koordinatlarda bir 2B doku haritasından renk örneği alır.

Bir nesnenin yüzeyinde renk ayrıntısı sağlamak için doku haritası kullanabilirsiniz.

Giriş:

UV: float2
Örneğin alındığı koordinatlar.

Çıkış:

Output: float4
Renk örneği.
Doku
Örnekleyici ile ilişkili doku yazmacı.

Matematik düğümleri

Shader Tasarım Aracı matematik düğümleri cebirsel, mantık, trigonometrik ve diğer matematik işlemlerini gerçekleştirir.

Dekont

Gölgelendirici Tasarım Aracı matematik düğümleriyle çalışırken tür yükseltme özellikle belirgindir. Tür yükseltmenin giriş parametrelerini nasıl etkilediği hakkında daha fazla bilgi için Giriş yükseltme bölümüne bakın.

Matematik düğümü başvurusu

Düğüm Ayrıntılar Özellikler
Abs Bileşen başına belirtilen girişin mutlak değerini hesaplar.

Girdinin Xher bileşeni için negatif değerler pozitif yapılır, böylece sonucun her bileşeni pozitif bir değere sahip olur.

Giriş:

X: float, float2, float3veya float4
Mutlak değerin belirleneceği değerler.

Output:

Output: girişle aynı X
Bileşen başına mutlak değer.
Hiçbiri
Topla Bileşen başına belirtilen girişlerin bileşene göre toplamını hesaplar.

Sonucun her bileşeni için ilgili giriş X ve giriş Y bileşenleri birlikte eklenir.

Giriş:

X: float, float2, float3veya float4
Bir araya eklenecek değerlerden biri.

Y: girişle aynı X
Bir araya eklenecek değerlerden biri.

Çıkış:

Output: girişle aynı X
Bileşen başına toplam.
Hiçbiri
Ceil Bileşen başına belirtilen girişin tavanını hesaplar.

Bir değerin tavanı, bu değerden büyük veya buna eşit en küçük tamsayıdır.

Giriş:

X: float, float2, float3veya float4
Tavanın hesaplandığı değerler.

Çıkış:

Output: girişle aynı X
Tavan, bileşen başına.
Hiçbiri
Kelepçe Belirtilen girişin her bileşenini önceden tanımlanmış bir aralığa kelepçeler.

Sonucun her bileşeni için, tanımlı aralığın altındaki değerler aralıktaki en düşük değere eşit hale getirilir, tanımlı aralığın üzerindeki değerler aralıktaki en büyük değere eşit hale getirilir ve aralıktaki değerler değiştirilmez.

Giriş:

X: float, float2, float3veya float4
Sıkıştıracak değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına kıskaçlı değer.
Maksimum
Aralıktaki mümkün olan en büyük değer.

Min
Aralıktaki mümkün olan en küçük değer.
Çünkü Belirtilen girişin kosinüsünü bileşen başına radyan cinsinden hesaplar.

Sonucun her bileşeni için, radyan cinsinden sağlanan ilgili bileşenin kosinüsü hesaplanır. Sonuç, [-1, 1] aralığında değerleri olan bileşenlere sahiptir.

Giriş:

X: float, float2, float3veya float4
Kosinüsünü hesaplamak için radyan cinsinden değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına kosinüsü.
Hiçbiri
Çapraz Belirtilen üç bileşenli vektörlerin çarpım çarpımını hesaplar.

İki vektör tarafından tanımlanan bir yüzeyin normalini hesaplamak için çapraz ürünü kullanabilirsiniz.

Giriş:

X: float3
Çapraz ürünün sol tarafındaki vektör.

Y: float3
Çapraz ürünün sağ tarafındaki vektör.

Çıkış:

Output: float3
Çapraz ürün.
Hiçbiri
Mesafe Belirtilen noktalar arasındaki uzaklığı hesaplar.

Sonuç pozitif bir skaler değerdir.

Giriş:

X: float, float2, float3veya float4
Arasındaki mesafeyi belirlemek için noktalardan biri.

Y: girişle aynı X
Arasındaki mesafeyi belirlemek için noktalardan biri.

Çıkış:

Output: girişle aynı X
Uzaklık.
Hiçbiri
Bölmek Belirtilen girişlerin bileşen açısından bölüm değerini hesaplar.

Sonucun her bileşeni için ilgili giriş X bileşeni, ilgili giriş Ybileşenine bölünür.

Giriş:

X: float, float2, float3veya float4
Kar payı değerleri.

Y: girişle aynı X
Bölen değerleri.

Çıkış:

Output: girişle aynı X
Bileşen başına bölüm.
Hiçbiri
Nokta Belirtilen vektörlerin nokta çarpımını hesaplar.

Sonuç bir skaler değerdir. noktalı ürünü kullanarak iki vektör arasındaki açıyı belirleyebilirsiniz.

Giriş:

X: float, float2, float3veya float4
Terimlerden biri.

Y: girişle aynı X
Terimlerden biri.

Çıkış:

Output: float
Noktalı ürün.
Hiçbiri
Kat Bileşen başına belirtilen girişin tabanını hesaplar.

Sonucun her bileşeni için değeri, girişin ilgili bileşeninden küçük veya buna eşit en büyük tamsayı değeridir. Sonucun her bileşeni tamsayıdır.

Giriş:

X: float, float2, float3veya float4
Katın hesaplandığı değerler.

Çıkış:

Output: girişle aynı X
Kat, bileşen başına.
Hiçbiri
Fmod Belirtilen girişlerin bileşen açısından modüllerini (kalan) hesaplar.

Sonucun her bileşeni için, ilgili giriş bileşeninin bazı tamsayı (tam sayı) katı, m, girişin Y Xilgili bileşeninden çıkarılır ve kalan bir bileşen bırakılır. kat, m, geri kalanı ilgili giriş bileşeninden küçük olacak ve ilgili giriş Y Xbileşeniyle aynı işarete sahip olacak şekilde seçilir. Örneğin, fmod(-3.14, 1.5) -0.14'tür.

Giriş:

X: float, float2, float3veya float4
Kar payı değerleri.

Y: girişle aynı X
Bölen değerleri.

Çıkış:

Output: girişle aynı X
Modül, bileşen başına.
Hiçbiri
Frac Bileşen başına belirtilen girişin tamsayı (tamsayı) bölümünü kaldırır.

Sonucun her bileşeni için, girişin ilgili bileşeninin integral bölümü kaldırılır, ancak kesirli bölüm ve işaret korunur. Bu kesirli değer [0, 1) aralığında yer alır. Örneğin, -3,14 değeri -0,14 değeri olur.

Giriş:

X: float, float2, float3veya float4
Kesirli bölümün hesaplandığı değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına kesirli bölüm.
Hiçbiri
Lerp Doğrusal İlişkilendirme. Belirtilen girişlerin bileşen açısından ağırlıklı ortalamasını hesaplar.

Sonucun her bileşeni için ve girişlerinin X Yilgili bileşenlerinin ağırlıklı ortalaması. Ağırlık, bir skaler tarafından Percentsağlanır ve tüm bileşenlere tekdüzen uygulanır. Noktaları, renkleri, öznitelikleri ve diğer değerleri ilişkilendirmek için bunu kullanabilirsiniz.

Giriş:

X: float, float2, float3veya float4
Kaynak değer. Sıfır olduğunda Percent , sonuç bu girişe eşittir.

Y: girişle aynı X
Terminal değeri. Bir olduğunda Percent , sonuç bu girişe eşittir.

Percent: float
Girişten girişe X Yolan uzaklık yüzdesi olarak ifade edilen skaler ağırlık.

Çıkış:

Output: girişle aynı X
Belirtilen girişlerle birlikte çizili bir değer.
Hiçbiri
Çarpma Ekle Belirtilen girişlerin bileşen açısından çarpma-ekleme işlemini hesaplar.

Sonucun her bileşeni için, girişlerin M ilgili bileşenlerinin ürünü ve A ilgili giriş Bbileşenine eklenir. Bu işlem dizisi ortak formüllerde bulunur; örneğin, bir çizginin nokta eğimi formülünde ve bir girişi ölçeklendirmek ve sonra sapmak için kullanılan formülde.

Giriş:

M: float, float2, float3veya float4
Birlikte çarpmak için değerlerden biri.

A: girişle aynı M
Birlikte çarpmak için değerlerden biri.

B: girişle aynı M
Diğer iki girişin ürününe eklenecek değerler.

Çıkış:

Output: girişle aynı M
Bileşen başına çarpma-ekleme işleminin sonucu.
Hiçbiri
Maksimum Belirtilen girişlerin bileşen açısından en yüksek sayısını hesaplar.

Sonucun her bileşeni için, girişlerin ilgili bileşenlerinden daha fazla alınır.

Giriş:

X: float, float2, float3veya float4
En yüksek değerin hesaplandığı değerlerden biri.

Y: girişle aynı X
En yüksek değerin hesaplandığı değerlerden biri.

Çıkış:

Output: girişle aynı X
Bileşen başına en yüksek değer.
Hiçbiri
Min Belirtilen girişlerin bileşen açısından en düşük değerini hesaplar.

Sonucun her bileşeni için, girişlerin ilgili bileşenlerinden daha azı alınır.

Giriş:

X: float, float2, float3veya float4
En düşük değerin hesaplandığı değerlerden biri.

Y: girişle aynı X
En düşük değerin hesaplandığı değerlerden biri.

Çıkış:

Output: girişle aynı X
Bileşen başına en düşük değer.
Hiçbiri
Çarpma Belirtilen girişlerin bileşen açısından çarpımını hesaplar.

Sonucun her bileşeni için, girişlerin X ilgili bileşenleri ve Y birlikte çarpılır.

Giriş:

X: float, float2, float3veya float4
Birlikte çarpmak için değerlerden biri.

Y: girişle aynı X
Birlikte çarpmak için değerlerden biri.

Çıkış:

Output: girişle aynı X
Ürün, bileşen başına.
Hiçbiri
Normalleştirmek Belirtilen vektör normalleştirir.

Normalleştirilmiş vektör özgün vektör yönünü korur, ancak büyüklüğünü korumaz. Bir vektörünün büyüklüğünün önemli olmadığı hesaplamaları basitleştirmek için normalleştirilmiş vektörleri kullanabilirsiniz.

Giriş:

X: float2, float3veya float4
Normalleştirecek vektör.

Çıkış:

Output: girişle aynı X
Normalleştirilmiş vektör.
Hiçbiri
Bir Eksi Bileşen başına 1 ile belirtilen giriş arasındaki farkı hesaplar.

Sonucun her bileşeni için, girişin ilgili bileşeni 1'den çıkarılır.

Giriş:

X: float, float2, float3veya float4
1'den çıkarılacak değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına 1 ile belirtilen giriş arasındaki fark.
Hiçbiri
Power Belirtilen girişlerin bileşen açısından üstelleştirmesini (gücü) hesaplar.

Sonucun her bileşeni için, ilgili giriş bileşeni girişin X Yilgili bileşeninin gücüne yükseltilir.

Giriş:

X: float, float2, float3veya float4
Temel değerler

Y: girişle aynı X
Üs değerleri.

Çıkış:

Output: girişle aynı X
Bileşen başına üs.
Hiçbiri
Doymuş Belirtilen girişin her bileşenini [0, 1] aralığına kelepçeler.

Bu aralığı, hesaplamalardaki yüzdeleri ve diğer göreli ölçümleri göstermek için kullanabilirsiniz. Sonucun her bileşeni için, girişin 0'dan küçük karşılık gelen bileşen değerleri 0'a, 1'den büyük değerler 1'e eşit hale getirilir ve aralıktaki değerler değiştirilmez.

Giriş:

X: float, float2, float3veya float4
Doygunluk için değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına doygun değer.
Hiçbiri
Günah Belirtilen girişin sinüsünü bileşen başına radyan cinsinden hesaplar.

Sonucun her bileşeni için, radyan cinsinden sağlanan ilgili bileşenin sinüsü hesaplanır. Sonuç, [-1, 1] aralığında değerleri olan bileşenlere sahiptir.

Giriş:

X: float, float2, float3veya float4
Sinüsünü hesaplamak için radyan cinsinden değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına sinüs.
Hiçbiri
Sqrt Belirtilen girişin bileşen başına karekökünü hesaplar.

Sonucun her bileşeni için ilgili bileşenin karekökünü hesaplanır.

Giriş:

X: float, float2, float3veya float4
Kare kökün hesaplandığı değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına karekök.
Hiçbiri
Subtract Belirtilen girişlerin bileşen açısından farkını hesaplar.

Sonucun her bileşeni için ilgili giriş bileşeni, ilgili giriş Y Xbileşeninden çıkarılır. Bunu, ilk girişten ikinci girişe kadar uzanan vektörleri hesaplamak için kullanabilirsiniz.

Giriş:

X: float, float2, float3veya float4
Çıkarılacak değerler.

Y: girişle aynı X
Girdisinden Xçıkarıla değerler.

Çıkış:

Output: girişle aynı X
Bileşen başına fark.
Hiçbiri
3B Vektörü Dönüştür Belirtilen 3B vektörü farklı bir alana dönüştürür.

Bunu kullanarak noktaları veya vektörleri ortak bir alana getirerek anlamlı hesaplamalar yapabilirsiniz.

Giriş:

Vector: float3
Dönüştürülecek vektör.

Çıkış:

Output: float3
Dönüştürülen vektör.
Sistemden
Vektörünün yerel alanı.

Sisteme
Vektörün dönüştürülmesi için boşluk.

Yardımcı program düğümleri

Gölgelendirici Tasarım Aracı yardımcı program düğümleri, diğer kategorilere düzgün bir şekilde uymayan yaygın, kullanışlı gölgelendirici hesaplamalarını temsil eder. Bazı yardımcı program düğümleri vektörleri birbirine ekleme veya sonuçları koşullu olarak seçme gibi basit işlemler gerçekleştirirken, diğerleri popüler aydınlatma modellerine göre bilgi işlem aydınlatması katkıları gibi karmaşık işlemler gerçekleştirir.

Yardımcı program düğümü başvurusu

Düğüm Ayrıntılar Özellikler
Ekleme Vektöru Belirtilen girişleri birbirine ekleyerek bir vektör oluşturur.

Giriş:

Vector: float, float2veya float3
Eklenecek değerler.

Value to Append: float
Eklenecek değer.

Çıkış:

Output: float2, float3veya float4 girişin türüne bağlı olarak Vector
Yeni vektör.
Hiçbiri
Fresnel Fresnel düşüşünü belirtilen normal yüzeye göre hesaplar.

Fresnel düşüş değeri, geçerli pikselin normal yüzeyinin görünüm vektörüyle ne kadar yakın olduğunu gösterir. Vektörler hizalandığında işlevin sonucu 0'dır; vektörler daha az benzer hale geldikçe sonuç artar ve vektörler ortogonal olduğunda maksimuma ulaşır. Geçerli pikselin yönlendirmesi ile kamera arasındaki ilişkiye bağlı olarak efektin daha fazla veya daha az belirgin olmasını sağlamak için bunu kullanabilirsiniz.

Giriş:

Surface Normal: float3
Geçerli pikselin tanjant alanında tanımlanan, geçerli pikselin yüzey normali. Normal eşlemede olduğu gibi görünür yüzeyi normal olarak ayarlamak için bunu kullanabilirsiniz.

Çıkış:

Output: float
Geçerli pikselin yansıtması.
Üs
Fresnel düşüşünü hesaplamak için kullanılan üs.
If Koşullu olarak bileşen başına üç olası sonuç arasından birini seçer. Koşul, belirtilen diğer iki giriş arasındaki ilişki tarafından tanımlanır.

Sonucun her bileşeni için, ilk iki girişin ilgili bileşenleri arasındaki ilişkiye bağlı olarak, üç olası sonuçtan birinin karşılık gelen bileşeni seçilir.

Giriş:

X: float, float2, float3veya float4
Karşılaştıracak sol taraftaki değer.

Y: girişle aynı tür X
Karşılaştırmak için sağ taraftaki değer.

X > Y: girişle aynı tür X
değerinden büyük Yolduğunda X seçilen değerler.

X = Y: girişle aynı tür X
değerine eşit Yolduğunda X seçilen değerler.

X < Y: girişle aynı tür X
değerinden küçük Yolduğunda X seçilen değerler.

Çıkış:

Output: float3
Bileşen başına seçilen sonuç.
Hiçbiri
Lambert Belirtilen normal yüzeyi kullanarak geçerli pikselin rengini Lambert aydınlatma modeline göre hesaplar.

Bu renk, doğrudan aydınlatma altında ortam rengi ve yayma aydınlatma katkılarının toplamıdır. Ortam rengi dolaylı aydınlatmanın toplam katkısını yaklaşık olarak ifade eder, ancak ek aydınlatma yardımı olmadan düz ve donuk görünür. Dağınık aydınlatma, nesneye şekil ve derinlik eklemeye yardımcı olur.

Giriş:

Surface Normal: float3
Geçerli pikselin tanjant alanında tanımlanan, geçerli pikselin yüzey normali. Normal eşlemede olduğu gibi görünür yüzeyi normal olarak ayarlamak için bunu kullanabilirsiniz.

Diffuse Color: float3
Geçerli pikselin yayma rengi, genellikle Nokta Rengi. Giriş sağlanmazsa, varsayılan değer beyazdır.

Çıkış:

Output: float3
Geçerli pikselin dağınık rengi.
Hiçbiri
Maske Vektör Belirtilen vektör bileşenlerini maskeler.

Belirli renk kanallarını bir renk değerinden kaldırmak veya belirli bileşenlerin sonraki hesaplamalar üzerinde etkisi olmasını önlemek için bunu kullanabilirsiniz.

Giriş:

Vector: float4
Maske vektör.

Çıkış:

Output: float4
Maskelenmiş vektör.
Kırmızı / X
Kırmızı (x) bileşenin maskesini çıkarmak için False ; aksi takdirde True.

Yeşil / Y
Yeşil (y) bileşenin maskesini çıkarmak için False ; aksi takdirde True.

Mavi / Z
Mavi (z) bileşeni maskelemek için False ; aksi takdirde True.

Alfa / W
Alfa (w) bileşenini maskelemek için False ; aksi takdirde True.
Düşünceler ion Vektör Geçerli pikselin yansıma vektörlerini kamera konumuna göre tanjant alanında hesaplar.

Yansımaları, küp haritası koordinatlarını ve belirtik aydınlatma katkılarını hesaplamak için bunu kullanabilirsiniz

Giriş:

Tangent Space Surface Normal: float3
Geçerli pikselin tanjant alanında tanımlanan, geçerli pikselin yüzey normali. Normal eşlemede olduğu gibi görünür yüzeyi normal olarak ayarlamak için bunu kullanabilirsiniz.

Çıkış:

Output: float3
Yansıma vektör.
Hiçbiri
Aynasal Belirtilen yüzey normalini kullanarak Phong aydınlatma modeline göre specular aydınlatma katkısını hesaplar.

Specular aydınlatma, bir nesneye, örneğin su, plastik veya metallere parlak, yansıtıcı bir görünüm verir.

Giriş:

Surface Normal: float3
Geçerli pikselin tanjant alanında tanımlanan, geçerli pikselin yüzey normali. Normal eşlemede olduğu gibi görünür yüzeyi normal olarak ayarlamak için bunu kullanabilirsiniz.

Çıkış:

Output: float3
Belirtik vurguların renk katkısı.
Hiçbiri

Filtre düğümleri

Gölgelendirici Tasarım Aracı filtre düğümleri bir girişi (örneğin, bir renk veya doku örneği) figüratif bir renk değerine dönüştürür. Bu figüratif renk değerleri genellikle fotorealistik olmayan işlemede veya diğer görsel efektlerdeki bileşenler olarak kullanılır.

Filtre düğümü başvurusu

Düğüm Ayrıntılar Özellikler
Bulanık -lık Gauss işlevi kullanarak dokudaki pikselleri bulanıklaştırır.

Bir dokudaki renk ayrıntısını veya gürültüyü azaltmak için bunu kullanabilirsiniz.

Giriş:

UV: float2
Test için texel koordinatları.

Çıkış:

Output: float4
Bulanık renk değeri.
Doku
Bulanıklaştırma sırasında kullanılan örnekleyiciyle ilişkili doku yazmacı.
Desaturate Belirtilen renkteki renk miktarını azaltır.

Renk kaldırıldıkçe, renk değeri gri ölçekli eşdeğerine yaklaşır.

Giriş:

RGB: float3
Doygunlu olunacak renk.

Percent: float
Kaldırılacak renk yüzdesi, [0, 1] aralığında normalleştirilmiş bir değer olarak ifade edilir.

Çıkış:

Output: float3
Doygun olmayan renk.
Parlak -lık
Kırmızı, yeşil ve mavi renk bileşenlerine verilen ağırlıklar.
Uç Algılama Canny kenar algılayıcısı kullanarak dokudaki kenarları algılar. Kenar pikselleri beyaz olarak çıktı alır; nonedge pikselleri siyah olarak çıktılanır.

Kenar piksellerini işlemek için ek efektler kullanabilmek için dokudaki kenarları tanımlamak için bunu kullanabilirsiniz.

Giriş:

UV: float2
Test için texel koordinatları.

Çıkış:

Output: float4
Texel bir kenardaysa beyaz; aksi takdirde, siyah.
Doku
Kenar algılama sırasında kullanılan örnekleyiciyle ilişkili doku yazmacı.
Keskinleştirmek Dokuyu keskinleştirir.

Dokudaki ince ayrıntıları vurgulamak için bunu kullanabilirsiniz.

Giriş:

UV: float2
Test için texel koordinatları.

Çıkış:

Output: float4
Bulanık renk değeri.
Doku
Keskinleştirme sırasında kullanılan örnekleyiciyle ilişkili doku yazmacı.

Sonraki adımlar

Daha fazla bilgi edinmek için bkz. Visual Studio'da Shader Tasarım Aracı ile Gölgelendirici oluşturma.