Özel Kod Düğümü Kullanımı #
Farklı şekillerde for döngüsü oluşturabilirsiniz . Özel Kod düğümü oluşturabilirsiniz. Araçlar’ı seçin.
Gelişmiş moda girmek için Gelişmiş Modu Aç/Kapat’ı seçin, ardından Donanım Gölgelendirici Düğümlerini seçin.
Çeşitli
Özel Kod. Özellikler panelinde, açılan Özel Kod düzenleyici iletişim kutusuna kodunuzu girmek için Düzenle düğmesine tıklayın. DirectX görüntü alanı sürücüsüyle uyumlu işlevler kullanın.
For Döngüsü Düğümünü Kullanma #
For döngüsü düğümü oluşturmak için ayrıca gelişmiş modda olmanız gerekir.
Aşağıdaki örnek, bir dokuyu farklı UV ofsetleriyle üç kez örneklemek için bir for döngüsünün nasıl kullanılacağını göstermektedir . Örneklenen değerler toplanır, toplam üçe bölünür ve ortalama değer TraditionalGameSurfaceShader’ın Diffuse Color kanalına uygulanır .
For döngüsünü kurun:
- ShaderFX çalışma alanında sağ tıklayın ve Araçlar’ı seçin.
Gelişmiş modu etkinleştirmek için Gelişmiş Modu açıp kapatın. - Sağ tıklayın ve Hw Shader Nodes’u seçin.
Akış Kontrolü
ForOp düğümü oluşturmak için For döngüsü .
İpucu: Kare şeklindeki bağlantı noktası, birden fazla giriş kabul edebileceğini gösterir. - Hw Shader Düğümlerini Seçin
Değerler
Bir tamsayı düğümü oluşturmak için `Int` değerini kullanın. Özellikler panelinde değerini 3 olarak ayarlayın . Bunu `For Loop` düğümünün `B` özniteliğine bağlayın.
-
- A özniteliği, döngünün başlangıcını temsil eder.
- B özniteliği döngünün sonunu temsil eder.
- C özniteliği, döngünün aralığını temsil eder.
Varsayılan olarak, A’nın değeri 0 ve C’nin değeri 1’dir. Döngünüz için bu varsayılan değerleri kullanırsanız, bu öznitelikleri birbirine bağlamanıza gerek yoktur.
Bu örnekte, şunu ayarladık:i = 0, i < 3, i++ içinBu nedenle, A ve C değerlerini açıkça belirlememize gerek yoktur.
-
- Hw Shader Düğümlerini Seçin
Çeşitli
Yineleyici olarak kullanacağınız bir dize oluşturmak için String düğümünü kullanın. Özellikler panelinde, Varsayılan Seçenekler açılır listesinden i’yi seçin (bu seçeneği görmek için aşağı kaydırmanız gerekir). String düğümünün Çıkış portunu For Döngüsü düğümünün Yineleyici özniteliğine bağlayın. - Hw Shader Düğümlerini Seçin
Değerler
Float3, döngü içinde hesaplanan değerleri saklamak için bir değişken oluşturur.
İpucu: Değerleri saklamak için Float3 veya Float4 kullanın. Color düğümünü kullanmayın. - Özellikler panelinde, Float3 düğümünü LoopResult olarak yeniden adlandırın ve üç değerin de 1.0 olarak başlatıldığını doğrulayın.
- LoopResult düğümünü For Loop düğümünün Variables özniteliğine bağlayın . Bu, yalnızca bir değişkenin kullanıldığı basit bir döngü olduğundan, LoopResult’ı For Loop’un Output özniteliğine de bağlayın.

Doku örneklemesini ayarlayın:
- Hw Shader Düğümlerini Seçin
Dokular
TextureMap düğümü oluşturmak için TextureMap seçeneğini kullanın. Özellikler panelinde, MyTexture / Path kontrollerini kullanarak bu düğüme bir doku dosyası atayın.
Ayrıca Özellikler panelinde, Örnekleyici / U Koordinatı ve Örnekleyici / V Koordinatı özniteliklerinin WRAP olarak ayarlandığından emin olun.
Doku, bir ofset ile örnekleneceği için, örnekleme 0-1 UV aralığını aşabilir. Bu öznitelikleri WRAP olarak ayarlamak, UV aralığı 1.0’ı aştığında piksellerin dokunun başından itibaren örneklenmesini sağlar.
- Hw Shader Düğümlerini Seçin
Değerler
Dizi düğümü oluşturmak için kullanılan dizi. Üç farklı ofset değeri kümesi bu dizide saklanır. - Hw Shader Düğümlerini Seçin
Değerler
Üç farklı ofset değeri kümesini depolamak için üç adet Float2 düğümü oluşturmak üzere Float2’yi üç kez kullanın. Özellikler panelini kullanarak üç Float2 özelliğini aşağıdaki gibi ayarlayın:
- Adı: Offset1 , X: 0.1 , Y: 0.3
- Adı: Offset2 , X: 0.2 , Y: -0.4
- Adı: Offset3 , X: 0.3 , Y: 0.2
- Üç Float2 düğümünün tamamını Array düğümünün Values özniteliğine bağlayın.
- Hw Shader Düğümlerini Seçin
Ortak Girişler
UV Seti ve Donanım Gölgelendirici Düğümleri
Matematik
UV Set düğümü ve Add düğümü oluşturmak için ekleyin. - Düğümleri aşağıdaki gibi bağlayın:
- Array’in Value özniteliğini Add’in Value özniteliğine bağlayın.
- UV Set’in UV özniteliğini Add’in diğer Value özniteliğine bağlayın.
- Add öğesinin Result özniteliğini TextureMap öğesinin UV özniteliğine bağlayın.
- Yineleyicinin (Dize düğümü) Çıkış özniteliğini Dizinin İndeks özniteliğine bağlayın. Bu, For Döngüsünün ofset değerlerini elde etmesini sağlar.
- Doku haritasının Renk özelliğini For Döngüsünün Hesaplamalar özelliğine bağlayın. Bu, doku haritasını üç kez örnekleyen For döngüsündeki hesaplamaları ayarlar.

Örneklenen sonuçların ortalamasını hesaplayın:
- Hw Shader Düğümlerini Seçin
Çeşitli
Dize düğümü oluşturmak için Dize seçeneğini kullanın. Özellikler panelinde, Varsayılan Seçenekler açılır listesinden += seçeneğini seçin. - Yeni String düğümünün Output değerini For Loop düğümünün Operators özniteliğine bağlayın.
For döngüsü, doku örneklemesinin sonuçlarını Loop Result değişkenine ekler.
- Hw Shader Düğümlerini Seçin
Matematik
Bir Bölme düğümü oluşturmak için Bölme işlemini gerçekleştirin. For Döngüsünün Çıktı özniteliğini Bölme düğümünün ilk Değer özniteliğine bağlayın.
Döngü Sonucu üç örneklenmiş değerin toplamı olduğundan, ortalamasını elde etmek için üçe bölünmesi gerekir.
- Hw Shader Düğümlerini Seçin
Değerler
Float düğümü oluşturmak için Float’ı kullanın. Özellikler panelinde, Değerini 3.0 olarak ayarlayın . Örneklenen sonuçların toplamını üçe bölmek için Float özniteliğini Divide düğümünün diğer Değer özniteliğine bağlayın. - Divide sınıfının Result özniteliğini TraditionalGamesSurfaceShader sınıfının Diffuse Color özniteliğine bağlayın .

Satranç tahtası deseninin yinelemeli olarak oluşturulmasının sonucu (Quicksilver render motoru ile oluşturulmuştur)
ShaderFX materyalinizi bir shader dosyasına aktarabilir ve oluşturduğunuz for döngüsünü görmek için shader kodunu inceleyebilirsiniz:
float3 LoopResult = float3(1.0, 1.0, 1.0); for(int i=0; i<3; i+=1) { float2 AddOp = (Array_bphdfiwhhj[i] + IN.map1.xy); float4 Sampler = chessboard_woodjpg.Sample(MMMLWWWSampler, AddOp); LoopReult += Sampler.xyz; }
