Aracılığıyla paylaş


Gölgelendirici Tasarımcısı

Bu belgede, gölgelendirici olarak bilinen özel görsel efektleri oluşturmak, değiştirmek ve dışarı aktarmak için Visual Studio Shader Tasarım Aracı ile nasıl çalışacağınız açıklanır.

Üst düzey gölgelendirici dili (HLSL) programlamasını bilmeseniz bile, oyun veya uygulamanız için özel görsel efektler oluşturmak için Shader Tasarım Aracı kullanabilirsiniz. Gölgelendirici Tasarım Aracı gölgelendirici oluşturmak için bunu grafik olarak yerleştirebilirsiniz. Başka bir ifadeyle, verileri ve işlemleri temsil eden tasarım yüzeyi düğümlerine eklersiniz ve ardından işlemlerin verileri nasıl işlediğini tanımlamak için bunlar arasında bağlantılar oluşturursunuz. Her işlem düğümünde, sonucu görselleştirebilmeniz için bu noktaya kadar olan efektin önizlemesi sağlanır. Veriler, gölgelendiricinin çıkışını temsil eden son düğüme doğru düğümler arasında akar.

Desteklenen biçimler

Gölgelendirici Tasarım Aracı şu gölgelendirici biçimlerini destekler:

Biçim Adı Dosya Uzantısı Desteklenen İşlemler (Görüntüleme, Düzenleme, Dışarı Aktarma)
Yönlendirilmiş Graf GölgelendiriciSi Dili .Dgsl Görüntüle, Düzenle
HLSL Gölgelendiricisi (kaynak kodu) .Hlsl Export
HLSL Gölgelendiricisi (bayt kodu) .Cso Export
C++ üst bilgisi (HLSL bayt kodu dizisi) .H Export

Başlarken

Bu bölümde, Visual Studio C++ projenize nasıl DGSL gölgelendiricisi ekleneceği açıklanır ve başlamanıza yardımcı olacak temel bilgiler sağlanır.

Dekont

Gölgelendirici grafikleri (.dgsl dosyaları) gibi grafik öğelerinin otomatik derleme tümleştirmesi yalnızca C++ projeleri için desteklenir.

Projenize DGSL gölgelendiricisi eklemek için

  1. Grafiklerle çalışmanız için gerekli Visual Studio bileşeninin yüklü olduğundan emin olun. Bileşen, Görüntü ve 3B model düzenleyicileri olarak adlandırılır.

    Yüklemek için, menü çubuğundan Araçlar>Araç ve Özellik Al'ı seçerek Visual Studio Yükleyicisi açın ve ardından Tek tek bileşenler sekmesini seçin. Oyunlar ve Grafikler kategorisinin altındaki Görüntü ve 3B model düzenleyicileri bileşenini seçin ve ardından Değiştir'i seçin.

    Image and 3D model editors component

  2. Çözüm Gezgini'da, gölgelendiriciyi eklemek istediğiniz C++ projesinin kısayol menüsünü açın ve ardından Yeni Öğe Ekle'yi>seçin.

  3. Yeni Öğe Ekle iletişim kutusunda, Yüklü altında Grafikler'i ve ardından Görsel Gölgelendirici Grafı (.dgsl) öğesini seçin.

    Dekont

    Yeni Öğe Ekle iletişim kutusunda Grafik kategorisini görmüyorsanız ve Görüntü ve 3B model düzenleyicileri bileşeni yüklüyse, grafik öğeleri proje türünüz için desteklenmez.

  4. Gölgelendirici dosyasının Adını ve oluşturulmasını istediğiniz Konumu belirtin.

  5. Ekle düğmesini seçin.

Varsayılan gölgelendirici

Her DGSL gölgelendiricisi oluşturduğunuzda, yalnızca Son Renk düğümüne bağlı bir Nokta Rengi düğümüne sahip en düşük gölgelendirici olarak başlar. Bu gölgelendirici eksiksiz ve işlevsel olsa da, fazla bir şey yapmaz. Bu nedenle, çalışan bir gölgelendirici oluşturmanın ilk adımı genellikle Nokta Rengi düğümünü silmek veya diğer düğümlere yer açmak için Son Renk düğümüyle bağlantısını kesmektir.

Gölgelendirici Tasarım Aracı ile çalışma

Aşağıdaki bölümlerde, özel gölgelendiricilerle çalışmak için Gölgelendirici Tasarım Aracı nasıl kullanılacağı açıklanmaktadır.

Gölgelendirici Tasarım Aracı araç çubukları

Gölgelendirici Tasarım Aracı araç çubukları, DGSL gölgelendiricisi grafikleriyle çalışmanıza yardımcı olan komutlar içerir.

Gölgelendirici Tasarım Aracı durumunu etkileyen komutlar, ana Visual Studio penceresindeki Gölgelendirici Tasarım Aracı Modu araç çubuğunda bulunur. Tasarım araçları ve komutları, Gölgelendirici Tasarım Aracı tasarım yüzeyindeki Gölgelendirici Tasarım Aracı araç çubuğunda bulunur.

Gölgelendirici Tasarım Aracı Modu araç çubuğu aşağıdadır:

The Shader Designer modal toolbar.

Bu tabloda, Gölgelendirici Tasarım Aracı Modu araç çubuğundaki öğeler, soldan sağa göründükleri sırayla listelenir:

Araç Çubuğu Öğesi Açıklama
Seç Grafikteki düğümler ve kenarlarla etkileşimi etkinleştirir. Bu modda düğümleri seçip taşıyabilir veya silebilir, kenarlar oluşturabilir veya bunları kırabilirsiniz.
Pan Gölgelendirici grafiğinin pencere çerçevesine göre hareketini etkinleştirir. Kaydırmak için tasarım yüzeyinde bir nokta seçin ve hareket ettirin.

Seçim modunda, Kaydırma modunu geçici olarak etkinleştirmek için Ctrl tuşunu basılı tutabilirsiniz.
Zoom Pencere çerçevesine göre daha fazla veya daha az gölgelendirici-graf ayrıntısının görüntülenmesini sağlar. Yakınlaştırma modunda, tasarım yüzeyinde bir nokta seçin ve yakınlaştırmak için sağa veya aşağı ya da uzaklaştırmak için sola veya yukarı hareket ettirin.

Seçim modunda, fare tekerleğini kullanarak yakınlaştırmak veya uzaklaştırmak için Ctrl tuşunu basılı tutabilirsiniz.
Sığdırmak için Yakınlaştır Pencere çerçevesinde tam gölgelendirici grafiğini görüntüler.
Gerçek Zamanlı İşleme Modu Gerçek zamanlı işleme etkinleştirildiğinde, hiçbir kullanıcı eylemi gerçekleştirilse bile Visual Studio tasarım yüzeyini yeniden çizer. Bu mod, zamanla değişen gölgelendiriciler ile çalıştığınızda kullanışlıdır.
Sphere ile önizleme Etkinleştirildiğinde, gölgelendiriciyi önizlemek için küre modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Küple önizleme Etkinleştirildiğinde, gölgelendiriciyi önizlemek için bir küp modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Silindirli Önizleme Etkinleştirildiğinde, gölgelendiriciyi önizlemek için bir silindir modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Koni ile önizleme Etkinleştirildiğinde gölgelendiricinin önizlemesini görüntülemek için koni modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Çaydanlık ile önizleme Etkinleştirildiğinde gölgelendiriciyi önizlemek için bir çaydanlık modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Düzlemle önizleme Etkinleştirildiğinde, gölgelendiriciyi önizlemek için bir düzlem modeli kullanılır. Aynı anda yalnızca bir önizleme şekli etkinleştirilebilir.
Araç Kutusu Alternatif olarak Araç Kutusu'nu gösterir veya gizler.
Veri Erişimi Alternatif olarak Özellikler penceresini gösterir veya gizler.
Gelişmiş Gelişmiş komutları ve seçenekleri içerir.

Dışarı Aktarma: Gölgelendiricinin çeşitli biçimlerde dışarı aktarmasını sağlar.

Farklı Dışarı Aktar: Gölgelendiriciyi HLSL kaynak kodu veya derlenmiş gölgelendirici bayt kodu olarak dışarı aktarır. Gölgelendiricileri dışarı aktarma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Gölgelendiriciyi dışarı aktarma.

Grafik Altyapıları: Tasarım yüzeyini görüntülemek için kullanılan işleyicinin seçilmesini sağlar.

D3D11 ile işleme: Gölgelendirici Tasarım Aracı tasarım yüzeyini işlemek için Direct3D 11 kullanır.

D3D11WARP ile işleme: Gölgelendirici Tasarım Aracı tasarım yüzeyini işlemek için Direct3D 11 Windows Gelişmiş Tarama Platformu (WARP) kullanır.

Görünüm: Gölgelendirici Tasarım Aracı hakkında ek bilgi seçimini etkinleştirir.

Kare Hızı: Etkinleştirildiğinde, tasarım yüzeyinin sağ üst köşesinde geçerli kare hızını görüntüler. Kare hızı, saniye başına çizilen çerçeve sayısıdır. Bu seçenek, Gerçek Zamanlı İşleme Modu seçeneğini etkinleştirdiğinizde kullanışlıdır.

Bahşiş

Son komutu yeniden çalıştırmak için Gelişmiş düğmesini seçebilirsiniz.

Düğümler ve bağlantılarla çalışma

Düğümleri eklemek, kaldırmak, yeniden konumlandırmak, bağlamak ve yapılandırmak için Seçme modunu kullanın. Bu temel işlemleri şu şekilde gerçekleştirebilirsiniz:

Seçme modunda temel işlemleri gerçekleştirmek için

  • Şunu yapabilirsiniz:

    • Grafiğe düğüm eklemek için Araç Kutusu'nda bu düğümü seçin ve ardından tasarım yüzeyine taşıyın.

    • Grafikten bir düğümü kaldırmak için düğümü seçin ve delete tuşuna basın.

    • Düğümü yeniden konumlandırmak için düğümü seçin ve yeni bir konuma taşıyın.

    • İki düğümü bağlamak için, bir düğümün çıkış terminalini diğer düğümün giriş terminaline taşıyın. Yalnızca uyumlu türlere sahip terminaller bağlanabilir. Terminaller arasındaki bir çizgi bağlantıyı gösterir.

    • Bağlantıyı kaldırmak için, bağlı terminallerden birinin kısayol menüsünde Bağlantıları Kes'i seçin.

    • Düğümün özelliklerini yapılandırmak için düğümü seçin ve özellikler penceresinde özellikler için yeni değerler belirtin.

Gölgelendiricileri önizleme

Bir gölgelendiricinin uygulamanızda nasıl görüneceğini anlamanıza yardımcı olmak için, efektinizin önizlemesini yapılandırabilirsiniz. Uygulamanızı yaklaşık olarak belirlemek için çeşitli şekillerden birini seçebilir, dokuları ve diğer malzeme parametrelerini yapılandırabilir, zamana dayalı efektlerin animasyonunu etkinleştirebilir ve önizlemeyi farklı açılardan inceleyebilirsiniz.

Şekiller

Gölgelendirici Tasarım Aracı, gölgelendiricinizin önizlemesini görüntülemek için kullanabileceğiniz altı şekil (küre, küp, silindir, koni, çaydanlık ve düzlem) içerir. Gölgelendiriciye bağlı olarak, belirli şekiller size daha iyi bir önizleme verebilir.

Önizleme şekli seçmek için Gölgelendirici Tasarım Aracı Modları araç çubuğunda istediğiniz şekli seçin.

Dokular ve malzeme parametreleri

Birçok gölgelendirici, uygulamanızdaki her nesne türü için benzersiz bir görünüm oluşturmak için dokulara ve malzeme özelliklerine güvenir. Gölgelendiricinizin uygulamanızda nasıl görüneceğini görmek için, önizlemeyi işlemek için kullanılan dokuları ve malzeme özelliklerini uygulamanızda kullanabileceğiniz dokularla ve parametrelerle eşleşecek şekilde ayarlayabilirsiniz.

Doku yazmaçlarına farklı bir doku bağlamak veya diğer malzeme parametrelerini değiştirmek için:

  1. Seçme modunda tasarım yüzeyinin boş bir alanını seçin. Bu, Özellikler penceresinin genel gölgelendirici özelliklerini görüntülemesine neden olur.

  2. Özellikler penceresinde, değiştirmek istediğiniz doku ve parametre özellikleri için yeni değerler belirtin.

Aşağıdaki tabloda değiştirebileceğiniz gölgelendirici parametreleri gösterilmektedir:

Parametre Özellikler
Doku 1 - Doku 8 Erişim: Özelliğin Model Düzenleyicisi'nden ayarlanmasına izin vermek için Genel; aksi takdirde Özel.

Dosya adı: Bu doku kaydıyla ilişkili doku dosyasının tam yolu.
Malzeme Ortam Erişim: Özelliğin Model Düzenleyicisi'nden ayarlanmasına izin vermek için Genel; aksi takdirde Özel.

Değer: Dolaylı veya ortam aydınlatması nedeniyle geçerli pikselin yayma rengi.
Malzeme Dağılımı 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 yaydığını açıklayan bir renk.
Malzeme İzinli Erişim: Özelliğin Model Düzenleyicisi'nden ayarlanmasına izin vermek için Genel; aksi takdirde Özel.

Değer: Kendi kendine sağlanan aydınlatma nedeniyle geçerli pikselin renk katkısı.
Malzeme Belirtimi 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 renk.
Malzeme Belirtik Gücü Erişim: Özelliğin Model Düzenleyicisi'nden ayarlanmasına izin vermek için Genel; aksi takdirde Özel.

Değer: Geçerli pikseldeki belirtik vurguların yoğunluğunu tanımlayan üs.

Zamana bağlı efektler

Bazı gölgelendiriciler, efekte animasyon uygulayan zamana dayalı bir bileşene sahiptir. Efektin nasıl çalıştığını göstermek için önizlemenin saniyede birkaç kez güncelleştirilmiş olması gerekir. Varsayılan olarak, önizleme yalnızca gölgelendirici değiştirildiğinde güncelleştirilir; zaman tabanlı efektleri görüntüleyebilmek için bu davranışı değiştirmek için gerçek zamanlı işlemeyi etkinleştirmeniz gerekir.

Gerçek zamanlı işlemeyi etkinleştirmek için Gölgelendirici Tasarım Aracı araç çubuğunda Gerçek zamanlı İşleme'yi seçin.

Etkisini inceleme

Birçok gölgelendirici, görüntüleme açısı veya yön aydınlatması gibi değişkenlerden etkilenir. Bu değişkenler değiştikçe efektin nasıl yanıt verdiğini incelemek için önizleme şeklini serbestçe döndürebilir ve gölgelendiricinin nasıl davrandığını gözlemleyebilirsiniz.

Şekli döndürmek için Alt tuşunu basılı tutun ve tasarım yüzeyinde herhangi bir noktayı seçip hareket ettirin.

Gölgelendiricileri dışarı aktarma

Uygulamanızda gölgelendirici kullanabilmeniz için önce, bunu DirectX'in anladığı biçimde dışarı aktarmanız gerekir.

Gölgelendiricileri HLSL kaynak kodu veya derlenmiş gölgelendirici bayt kodu olarak dışarı aktarabilirsiniz. HLSL kaynak kodu, .hlsl dosya adı uzantısına sahip bir metin dosyasına aktarılır. Gölgelendirici bayt kodu, .cso dosya adı uzantısına sahip bir ham ikili dosyaya veya gölgelendirici bayt kodunu bir diziye kodlayan bir C++ üst bilgi (.h) dosyasına aktarılabilir.

Gölgelendiricileri dışarı aktarma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Gölgelendiriciyi dışarı aktarma.

Klavye kısayolları

Command Klavye kısayolları
Seçim moduna geçme Ctrl+G, Ctrl Q+

S
Yakınlaştırma moduna geçme Ctrl+G, Ctrl Z+

Z
Kaydırma moduna geçme Ctrl+G, Ctrl P+

Kahraman
Tümünü seç Ctrl+A
Geçerli seçimi sil Sil
Geçerli seçimi iptal et Escape (Esc)
Yakınlaştırma Ctrl+Fare tekerleği ileri

Artı İşareti (+)
Uzaklaştırma Ctrl+Fare tekerleği geri

Eksi İşareti (-)
Tasarım yüzeyini yukarı kaydırma Fare tekerleği geri

Pagedown
Tasarım yüzeyini aşağı kaydırma Fare tekerleği ileri

Pageup
Tasarım yüzeyini sola kaydırma Shift+Fare tekerleği geri

Fare tekerleği sola

Shift+PageDown
Tasarım yüzeyini sağa kaydırma Shift+Fare tekerleği ileri

Fare tekerleği sağ

Shift+PageUp
Klavye odağını başka bir düğüme taşıma Ok tuşları
Klavye odağı olan düğümü seçin (düğümü seçim grubuna ekler) Shift+Ara Çubuğu
Klavye odağı olan düğümün seçimini değiştirme Ctrl+Ara Çubuğu
Geçerli seçimi açma/kapatma (düğüm seçilmediyse, klavye odağı olan düğümü seçin) Ara çubuğu
Geçerli seçimi yukarı taşıma Yukarı Shift+Yukarı Ok
Geçerli seçimi aşağı taşıma Shift+Aşağı Ok
Geçerli seçimi sola taşıma Shift+Sol Ok
Geçerli seçimi sağa taşı Shift+Sağ Ok.
Başlık Açıklama
Oyunlar ve uygulamalar için 3B varlıklarla çalışma Dokular ve görüntüler, 3B modeller ve gölgelendirici efektleriyle çalışmak için kullanabileceğiniz Visual Studio araçlarına genel bir bakış sağlar.
Görüntü Düzenleyicisi Dokular ve görüntülerle çalışmak için Visual Studio Görüntü Düzenleyicisi'nin nasıl kullanılacağını açıklar.
Model Düzenleyicisi 3B modellerle çalışmak için Visual Studio Model Düzenleyicisi'nin nasıl kullanılacağını açıklar.