Aracılığıyla paylaş


Visual Studio'da Gölgelendirici Tasarım Aracı ile Gölgelendirici oluşturma

Bu makalede, farklı gölgelendirici türleri oluşturmak için Gölgelendirici Tasarım Aracı kullanmayı öğreneceksiniz.

Temel düz renk gölgelendiricileri oluşturma

Düz renk gölgelendiricisi oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Grafik GölgelendiriciSi Dili'ni (DGSL) kullanabilirsiniz. Bu gölgelendirici, son rengi sabit bir RGB renk değerine ayarlar. Rgb renk sabitinin renk değerini son çıkış rengine yazarak düz renk gölgelendiricisi uygulayabilirsiniz.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Çalışmak için bir DGSL gölgelendiricisi oluşturun. Projenize DGSL gölgelendiricisi ekleme hakkında bilgi için, Shader Tasarım Aracı'daki Başlarken bölümüne bakın.

  2. Nokta Rengi düğümünü silin. Nokta Rengi düğümünü seçmek için Seç aracını kullanın ve menü çubuğunda Silmeyi Düzenle'yi>seçin.

  3. Grafiğe bir Renk Sabiti düğümü ekleyin. Araç Kutusu'ndaki Sabitler'in altında Renk Sabiti'ni seçin ve tasarım yüzeyine taşıyın.

  4. Renk Sabiti düğümü için bir renk değeri belirtin. Renk Sabiti düğümünü seçmek için Seç aracını kullanın ve ardından Özellikler penceresindeki Çıkış özelliğinde bir renk değeri belirtin. Turuncu için değeri (1,0, 0,5, 0,2, 1,0) belirtin.

  5. Renk sabitini son renge Bağlan. Bağlantıları oluşturmak için Renk Sabiti düğümünün RGB terminalini Son Renk düğümünün RGB terminaline taşıyın ve ardından Renk Sabiti düğümünün Alfa terminalini Son Renk düğümünün Alfa terminaline taşıyın. Bu bağlantılar, son rengi önceki adımda tanımlanan renk sabitine ayarlar.

Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir küpe uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Dekont

Çizimde, gölgelendiricinin etkisini daha iyi göstermek için turuncu bir renk belirtildi.

Shader graph and its result on a 3-D model

Bazı şekiller bazı gölgelendiriciler için daha iyi önizlemeler sağlayabilir. Gölgelendirici Tasarım Aracı gölgelendiricileri önizleme hakkında daha fazla bilgi için bkz. Gölgelendirici Tasarım Aracı.

Temel Lambert gölgelendiricileri oluşturma

Ayrıca, klasik Lambert aydınlatma modelini uygulayan bir aydınlatma gölgelendiricisi oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Graf Gölgelendirici Dili'ni (DGSL) de kullanabilirsiniz.

Lambert aydınlatma modeli, bir 3B görünümdeki nesneleri gölgelendirmek için ortam ve yönlü aydınlatma içerir. Ortam bileşenleri, 3B sahnede temel bir aydınlatma düzeyi sağlar. Yön bileşenleri, yönsel (uzak) ışık kaynaklarından ek aydınlatma sağlar. Ortam aydınlatması, yönlerinden bağımsız olarak sahnedeki tüm yüzeyleri eşit şekilde etkiler. Belirli bir yüzey için, yüzeyin ortam renginin ve sahnedeki ortam aydınlatmasının renginin ve yoğunluğunun bir ürünü. Yön aydınlatması, ışık kaynağının yönüne göre yüzeyin yönüne göre sahnedeki her yüzeyi farklı şekilde etkiler. Yüzeyin dağınık renginin ve yönünün, ışık kaynaklarının renginin, yoğunluğunun ve yönünün bir ürünü. Doğrudan ışık kaynağına doğru yüz yüze gelen yüzeyler maksimum katkıyı alır ve doğrudan dışarıda yüz yüze gelen yüzeyler hiçbir katkı almaz. Lambert aydınlatma modeli altında, ortam bileşeni ve bir veya daha fazla yönlü bileşen, nesnedeki her nokta için toplam dağınık renk katkısını belirlemek üzere birleştirilir.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Çalışacağı bir DGSL gölgelendiricisi oluşturun. Projenize DGSL gölgelendiricisi ekleme hakkında bilgi için, Shader Tasarım Aracı'daki Başlarken bölümüne bakın.

  2. Nokta Rengi düğümünü Son Renk düğümünden ayırın. Nokta Rengi düğümünün RGB terminalini seçin ve ardından Bağlantıları Kes'i seçin. Alfa terminalini bağlı bırakın.

  3. Grafiğe bir Lambert düğümü ekleyin. Araç Kutusu'ndaki Yardımcı Program'ın altında Lambert'i seçin ve tasarım yüzeyine taşıyın. Lambert düğümü, ortam ve dağınık aydınlatma parametrelerine göre pikselin toplam dağınık renk katkısını hesaplar.

  4. BağlanRenk düğümünü Lambert düğümüne getirin. Seçim modunda, Nokta Rengi düğümünün RGB terminalini Lambert düğümünün Diffuse Color terminaline taşıyın. Bu bağlantı lambert düğümüne pikselin ilişkilendirilmiş dağınık rengini sağlar.

  5. Hesaplanan renk değerini son renge Bağlan. Lambert düğümünün Çıkış terminalini Son Renk düğümünün RGB terminaline taşıyın.

    Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir çaydanlık modeline uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Dekont

Bu çizimde gölgelendiricinin etkisini daha iyi göstermek için, gölgelendiricinin MaterialDiffuse parametresi kullanılarak turuncu bir renk belirtilmiştir. Bir oyun veya uygulama, her nesne için benzersiz bir renk değeri sağlamak için bu parametreyi kullanabilir. Malzeme parametreleri hakkında bilgi için bkz. Gölgelendirici Tasarım Aracı.

The Lambert shader graph and a preview of its effect.

Aşağıdaki çizimde, bir 3B modele uygulanan bu belgede açıklanan gölgelendirici gösterilmektedir.

Lambert lighting applied to a model.

Temel Phong gölgelendiricileri oluşturma

Ayrıca, klasik Phong aydınlatma modelini uygulayan bir aydınlatma gölgelendiricisi oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Graf Gölgelendirici Dili'ni (DGSL) de kullanabilirsiniz.

Phong aydınlatma modeli Lambert aydınlatma modelini, bir yüzeyin yansıtıcı özelliklerinin benzetimini yapan belirtik vurgulama içerecek şekilde genişletir. Belirtik bileşen, Lambert aydınlatma modelinde kullanılan aynı yönlü ışık kaynaklarından ek aydınlatma sağlar, ancak son renge katkısı farklı şekilde işlenir. Benekli vurgulama, görünüm yönü, ışık kaynaklarının yönü ve yüzeyin yönü arasındaki ilişkiye bağlı olarak sahnedeki her yüzeyi farklı şekilde etkiler. Bu, yüzeyin belirtik renginin, belirtik gücünün ve yönünün, ışık kaynaklarının renginin, yoğunluğunun ve yönünün bir ürünü. Işık kaynağını doğrudan görüntüleyicide yansıtan yüzeyler maksimum belirtik katkıyı alır ve ışık kaynağını görüntüleyiciden uzağa yansıtan yüzeyler katkıda bulunmaz. Phong aydınlatma modeli altında, nesnedeki her nokta için belirtik vurgulamanın rengini ve yoğunluğunu belirlemek için bir veya daha fazla belirtik bileşen birleştirilir ve ardından Lambert aydınlatma modelinin sonucuna eklenir ve pikselin son rengini üretir.

Lambert aydınlatma modeli hakkında daha fazla bilgi için bkz . Nasıl yapılır: Temel Lambert gölgelendiricisi oluşturma.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Nasıl yapılır: Temel lambert gölgelendiricisi oluşturma bölümünde açıklandığı gibi bir Lambert gölgelendiricisi oluşturun.

  2. Lambert düğümünü Son Renk düğümüyle bağlantısını kesin. Lambert düğümünün RGB terminalini ve ardından Bağlantıları Kes'i seçin. Bu, sonraki adımda eklenen düğüm için yer açar.

  3. Grafiğe bir Düğüm ekle'yi ekleyin. Araç Kutusu'ndaki Matematik bölümünde Ekle'yi seçin ve tasarım yüzeyine taşıyın.

  4. Grafiğe Bir Specular düğümü ekleyin. Araç Kutusu'ndaki Yardımcı Program'ın altında Specular'ı seçin ve tasarım yüzeyine taşıyın.

  5. Belirtik katkıyı ekleyin. Specular düğümünün Çıkış terminalini Ekle düğümünün X terminaline taşıyın ve ardından Lambert düğümünün Çıkış terminalini Ekle düğümünün Y terminaline taşıyın. Bu bağlantılar, piksel için toplam fark ve belirtik renk katkılarını birleştirir.

  6. Hesaplanan renk değerini son renge Bağlan. Ekle düğümünün Çıkış terminalini Son Renk düğümünün RGB terminaline taşıyın.

    Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir çaydanlık modeline uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Dekont

Bu çizimde gölgelendiricinin etkisini daha iyi göstermek için, gölgelendiricinin MaterialDiffuse parametresi kullanılarak turuncu bir renk belirtildi ve MaterialSpecular ve MaterialSpecularPower parametreleri kullanılarak metalik görünümlü bir yüzey belirtildi. Malzeme parametreleri hakkında bilgi için bkz. Gölgelendirici Tasarım Aracı.

Phong Shader graph and a preview of its effect.

Bazı şekiller bazı gölgelendiriciler için daha iyi önizlemeler sağlayabilir. Gölgelendiricileri önizleme hakkında daha fazla bilgi için bkz. Gölgelendirici Tasarım Aracı.

Aşağıdaki çizimde, bir 3B modele uygulanan bu belgede açıklanan gölgelendirici gösterilmektedir. MaterialSpecular özelliği (1.00, 0.50, 0.20, 0.00) olarak ayarlanır ve MaterialSpecularPower özelliği 16 olarak ayarlanır.

Dekont

MaterialSpecular özelliği, yüzey malzemesinin görünür bitişini belirler. Cam veya plastik gibi parlak bir yüzey, beyazın parlak bir tonu olan belirtik bir renge sahip olma eğilimindedir. Metalik bir yüzey, dağınık rengine yakın bir belirtim rengine sahip olma eğilimindedir. Saten yüzey, grinin koyu bir tonu olan belirtik bir renge sahip olma eğilimindedir.

MaterialSpecularPower özelliği, belirtik vurguların ne kadar yoğun olduğunu belirler. Yüksek specular powers simüle duller, daha yerelleştirilmiş vurgular. Çok düşük benekli güçler, tüm yüzeyin rengini aşırı doygunluk ve gizleyebilen yoğun, süpürücü vurguların simülasyonunu oluşturur.

Phong lighting applied to a model

Temel doku gölgelendiricileri oluşturma

Tek dokulu bir gölgelendirici oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Grafik GölgelendiriciSi Dili'ni (DGSL) kullanın. Bu gölgelendirici, son rengi doğrudan dokudan örneklenen RGB ve alfa değerlerine ayarlar.

Doku örneğinin renk ve alfa değerlerini doğrudan son çıkış rengine yazarak temel, tek dokulu bir gölgelendirici uygulayabilirsiniz.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Çalışmak için bir DGSL gölgelendiricisi oluşturun. Projenize DGSL gölgelendiricisi ekleme hakkında bilgi için, Shader Tasarım Aracı'daki Başlarken bölümüne bakın.

  2. Nokta Rengi düğümünü silin. Seçim modunda Nokta Rengi düğümünü seçin ve menü çubuğunda Silmeyi Düzenle'yi>seçin. Bu, sonraki adımda eklenen düğüm için yer açar.

  3. Grafiğe doku örneği düğümü ekleyin. Araç Kutusu'ndaki Doku altında Doku Örneği'ni seçin ve tasarım yüzeyine taşıyın.

  4. Grafiğe Doku Koordinatı düğümü ekleyin. Araç Kutusu'ndaki Doku altında Doku Koordinatı'nı seçin ve tasarım yüzeyine taşıyın.

  5. Uygulanacak dokuyu seçin. Seçim modunda Doku Örneği düğümünü seçin ve Özellikler penceresinde Filename özelliğini kullanarak kullanmak istediğiniz dokuyu belirtin.

  6. Dokuyu genel olarak erişilebilir hale getirin. Doku Örneği düğümünü seçin ve Özellikler penceresinde Access özelliğini Genel olarak ayarlayın. Artık dokuyu Model Düzenleyicisi gibi başka bir araçtan ayarlayabilirsiniz.

  7. Doku koordinatlarını doku örneğine Bağlan. Seçim modunda Doku Koordinatı düğümünün Çıkış terminalini Doku Örneği düğümünün UV terminaline taşıyın. Bu bağlantı, dokuyu belirtilen koordinatlarda örneklemektedir.

  8. Doku örneğini son renge Bağlan. Doku Örneği düğümünün RGB terminalini Son Renk düğümünün RGB terminaline taşıyın ve doku örneği düğümünün Alfa terminalini Son Renk düğümünün Alfa terminaline taşıyın.

Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir küpe uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Dekont

Bu çizimde, önizleme şekli olarak bir düzlem kullanılır ve gölgelendiricinin etkisini daha iyi göstermek için bir doku belirtilmiştir.

Texture shader graph and a preview of its effect

Bazı şekiller bazı gölgelendiriciler için daha iyi önizlemeler sağlayabilir. Gölgelendirici Tasarım Aracı gölgelendiricileri önizleme hakkında daha fazla bilgi için bkz. Gölgelendirici Tasarım Aracı

Gri tonlamalı doku gölgelendiricileri oluşturma

Gri tonlamalı doku gölgelendiricisi oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Grafik GölgelendiriciSi Dili'ni (DGSL) kullanın. Bu gölgelendirici doku örneğinin RGB renk değerini değiştirir ve son rengi ayarlamak için değiştirilmemiş alfa değeriyle birlikte kullanır.

Bir doku örneğini son çıkış rengine yazmadan önce renk değerini değiştirerek gri tonlamalı doku gölgelendiricisi uygulayabilirsiniz.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Nasıl yapılır: Temel doku gölgelendiricisi oluşturma bölümünde açıklandığı gibi temel bir doku gölgelendiricisi oluşturun.

  2. Doku Örneği düğümünün RGB terminalini Son Renk düğümünün RGB terminalinden ayırın. Seçim modunda Doku Örneği düğümünün RGB terminalini ve ardından Bağlantıları Kes'i seçin. Bu, sonraki adımda eklenen düğüm için yer açar.

  3. Grafiğe doygunlu bir düğüm ekleyin. Araç Kutusu'ndaki Filtreler'in altında Doygunluyu Kaldır'ı seçin ve tasarım yüzeyine taşıyın.

  4. Doygun kaldırma düğümünü kullanarak gri tonlamalı değeri hesaplayın. Seçim modunda Doku Örneği düğümünün RGB terminalini Doygun kaldırma düğümünün RGB terminaline taşıyın.

    Dekont

    Varsayılan olarak, Doygunluğu Kaldır düğümü giriş rengini tamamen doygunluktan alır ve gri tonlamalı dönüştürme için standart parlaklık ağırlıklarını kullanır. Luminance özelliğinin değerini değiştirerek veya giriş rengini yalnızca kısmen doygunluğu kaldırarak Doygunluğu Kaldır düğümünün davranışını değiştirebilirsiniz. Giriş rengini kısmen doygunlu hale getirmek için, Doygun kaldırma düğümünün Yüzde terminaline [0,1) aralığında bir skaler değer sağlayın.

  5. Gri tonlamalı renk değerini son renge Bağlan. Doygun kaldırma düğümünün Çıkış terminalini Son Renk düğümünün RGB terminaline taşıyın.

Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir küpe uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Bu çizimde, önizleme şekli olarak bir düzlem kullanılır ve gölgelendiricinin etkisini daha iyi göstermek için bir doku belirtilmiştir. Bazı şekiller bazı gölgelendiriciler için daha iyi önizlemeler sağlayabilir. Gölgelendiricileri önizleme hakkında daha fazla bilgi için bkz. Gölgelendirici Tasarım Aracı.

Grayscale texture shader graph and a preview of its effect

Geometri tabanlı gradyan gölgelendiricileri oluşturma

Geometri tabanlı gradyan gölgelendiricisi oluşturmak için Gölgelendirici Tasarım Aracı ve Yönlendirilmiş Grafik GölgelendiriciSi Dili'ni kullanın. Bu gölgelendirici, sabit bir RGB renk değerini dünya uzayında bir nesnenin her noktasının yüksekliğine göre ölçeklendirir.

Pikselin konumunu gölgelendiricinize ekleyerek geometri tabanlı bir gölgelendirici uygulayabilirsiniz. Gölgelendirme dillerinde piksel, 2B ekranda yalnızca renginden ve konumundan daha fazla bilgi içerir. Bazı sistemlerde parça olarak bilinen piksel, bir piksele karşılık gelen yüzeyi tanımlayan bir değer koleksiyonudur. Bu belgede açıklanan gölgelendirici, parçanın son çıkış rengini etkilemek için dünya uzayında bir 3B nesnenin her pikselinin yüksekliğini kullanır.

Başlamadan önce Özellikler penceresinin ve Araç Kutusunun görüntülendiğinden emin olun.

  1. Çalışacağı bir DGSL gölgelendiricisi oluşturun. Projenize DGSL gölgelendiricisi ekleme hakkında bilgi için, Gölgelendirici Tasarım Aracı Hakkında bölümündeki Başlarken bölümüne bakın.

  2. Nokta Rengi düğümünü Son Renk düğümünden ayırın. Nokta Rengi düğümünün RGB terminalini seçin ve ardından Bağlantıları Kes'i seçin. Bu, sonraki adımda eklenen düğüm için yer açar.

  3. Grafiğe Çarpma düğümü ekleyin. Araç Kutusu'ndaki Matematik bölümünde Çarp'ı seçin ve tasarım yüzeyine taşıyın.

  4. Grafiğe maske vektör düğümü ekleyin. Araç Kutusu'ndaki Yardımcı Program'ın altında Maske Vektör'lerini seçin ve tasarım yüzeyine taşıyın.

  5. Maske Vektör düğümü için maske değerlerini belirtin. Seçim modunda Maske Vektör düğümünü seçin ve Özellikler penceresinde Yeşil / Y özelliğini True olarak ayarlayın ve ardından Kırmızı / X, Mavi / Z ve Alfa / W özelliklerini False olarak ayarlayın. Bu örnekte, Kırmızı / X, Yeşil / Y ve Mavi / Z özellikleri, Dünya Konumu düğümünün x, y ve z bileşenlerine karşılık gelir ve Alfa / W kullanılmaz. Yalnızca Yeşil / Y True olarak ayarlandığından, yalnızca giriş vektörünün y bileşeni maskelendikten sonra kalır.

  6. Grafiğe bir Dünya Konumu düğümü ekleyin. Araç Kutusu'ndaki Sabitler'in altında Dünya Konumu'nu seçin ve tasarım yüzeyine taşıyın.

  7. Parçanın dünya uzay konumunu maskele. Seçim modunda, Dünya Konumu düğümünün Çıkış terminalini Maske Vektör düğümünün Vektör terminaline taşıyın. Bu bağlantı, x ve z bileşenlerini yoksaymak için parçanın konumunu maskeler.

  8. RGB renk sabitini maskelenmiş dünya alanı konumuyla çarpın. Nokta Rengi düğümünün RGB terminalini Çarpma düğümünün Y terminaline taşıyın ve ardından Maske Vektör düğümünün Çıkış terminalini Çarpma düğümünün X terminaline taşıyın. Bu bağlantı, renk değerini dünya uzayında pikselin yüksekliğine göre ölçeklendirir.

  9. Ölçeklendirilmiş renk değerini son renge Bağlan. Çarpma düğümünün Çıkış terminalini Son Renk düğümünün RGB terminaline taşıyın.

Aşağıdaki çizimde tamamlanmış gölgelendirici grafiği ve bir küreye uygulanan gölgelendiricinin önizlemesi gösterilmektedir.

Dekont

Bu çizimde, gölgelendiricinin etkisini daha iyi göstermek için turuncu bir renk belirtilir, ancak önizleme şeklinin dünya uzayında konumu olmadığından gölgelendirici, Gölgelendirici Tasarım Aracı tam olarak önizlenemez. Tam efekti göstermek için gölgelendiricinin gerçek bir sahnede önizlemesi yapılmalıdır.

Gradient Shader graph and a preview of its effect

Bazı şekiller bazı gölgelendiriciler için daha iyi önizlemeler sağlayabilir. Gölgelendiricileri önizleme hakkında daha fazla bilgi için bkz. Gölgelendirici Tasarım Aracı.

Aşağıdaki çizimde, nasıl yapılır: Model 3B arazi bölümünde gösterilen 3B görünüme uygulanan bu belgede açıklanan gölgelendirici gösterilmektedir. Rengin yoğunluğu, dünyadaki noktanın yüksekliğiyle artar.

Gradient effect applied to a 3-D terrain model

3B modele gölgelendirici uygulama hakkında daha fazla bilgi için bkz . Nasıl yapılır: 3B modele gölgelendirici uygulama.