HLSL öğrenmek için iyi kaynaklar nelerdir? [kapalı]


28

En son HLSL'yi öğrenmeye çalıştığımda, birkaç gölgelendirici yaptım ve çoğunlukla ne yaptığımı anladım, ama yine de karanlıkta tökezlemiş gibi hissettim. Öğrendiklerimin çoğu, işleri pek iyi açıklamayan çeşitli blog yazılarından aldım.

Ayrıca, MSDN'deki belgeler, işlev referansından daha fazlası gibi görünmektedir.

Sadece HLSL yazmayı değil, gölgelendirici yazma tekniklerini nereden öğrenebilirim?

Yanıtlar:


14

Bu iki not, her zaman genel bir gölgelendirici yazdığımda sürekli aşağıdaki makaleye dönüyorum:


1
Ve "API referansı" ile daha çok "Programlama Kılavuzu" bölümünü kastediyorum.
Sean James

6

Peşinde olduğunuz şey, yalnızca dil referansı yerine (soruyu oku, insanlar) değil, "gölgelendirici tekniği" ise, öneririm (kolaydan ileri düzeye):

  • Shader bölüm XNA örneklerinde (besbelli gerektirir Eğer XNA kullanılmalıdır)
  • Petri Wilhelmsen'in öğretici dizisi, buradan başlar (daha sonra daha da gelişir; ayrıca XNA merkezlidir)
  • Nvidia FX Besteci 'paketlenmiş örnekleri s

Ve temel olarak ikisi de: "Artıların" ne yaptığını emerken her şeyi deneyin ve pratik yapın. Veya elde etmeye çalıştığınız şeye benzer şeyler seçin ve oradan çalışın.


3

Cg teknik olarak HLSL değildir, fakat sözdizimsel olarak neredeyse özdeştirler.

Bunu söyledikten sonra, bu eski bir kitap, ancak NVIDIA çevrimiçi olarak okumak için " The Cg Tutorial " ı ücretsiz yaptı. Programlanabilir boru hattının temellerini çok kapsamlı bir biçimde kapsar ve hepsi en az çabayla HLSL'ye çevrilmelidir.


1
nVidia ve Microsoft, Cg / HLSL'yi eski günlerde birlikte yazdılar. Markalaşma nedeniyle farklı isimler verdiler, ancak dil aynı. Şimdi, muhtemelen küçük bir fark var, ama gerçekten çok az.
jacmoe,

Bu olağanüstü bir kitap. Temel olarak Kilgard tarafından herhangi bir şey öğreticiler açısından gerçekten iyiydi.
bobobobo

3

Sonuçları gerçek zamanlı olarak düzenlemek ve görmek istiyorsanız bu basit Silverlight aracını kullanabilirsiniz.

http://shazzam-tool.com/
Shazamm 1.3 - HSLS Gölgelendiricileri Editör ve Öncesi


Öğreticilere gelince, Riemers.net için +1 ama bu XNA / HLSL öğreticiler serisini daha iyi buldum.

İşte liste, hepsini burada bulacaksınız: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - HSLS'ye giriş, ortam ışığı
  • 2 - dağınık ışık
  • 3 - Speküler ışık
  • 4 - Normal haritalama
  • 5 - Köşe gölgelendiricisini deforme edin
  • 6 - Shader demosu: Basit okyanus / ada manzarası
  • 7 - Çizgi üzerine gölgeleme
  • 8 - Parlak harita
  • 9 - Wiggle post işlemi
  • 10 - Ters çevirme işlemi
  • 11 - Gri tonlamalı gölgelendirici
  • 12 - Piksel bozulma gölgelendiricisi
  • 13 - Alfa eşlemesi
  • 14 - Geçirgenlik / derinlik tamponları
  • 15 - Dinamik Çevre eşlemesi
  • 16 - Kırılma
  • 17 - Nokta ışık + Kendinden Gölgeli
  • 18 - Çok Noktalı Işıklar
  • 19 - Yarım küre ortam ışığı
  • 20 - Alan Derinliği
  • 21 - Geçiş: Solmaya
  • 22 - Geçiş: Çapraz
  • 23 - Bulanıklaştırma
  • 24 - Çiçeklenme
  • 25 - GPU'da Perlin Gürültüsü
  • 26 - Kabartma Eşleştirme Perlin Gürültüsü






0

Hangi gölgelendirici modelini ve DirectX sürümünü hedeflediğinizden emin değilim, ancak Direct3D11 ile Pratik İşleme ve Hesaplama'yı şiddetle tavsiye ederim . Kitap, DirectX11'in tüm nitritli kumbara ayrıntılarını, kaynaklarını, tüm farklı boru hattı gölgelendiricileri, HLSL'i (buna adanmış bütün bir bölüm) ve parçacık sistemi simülasyonları, mozaikleme, görüntü işleme, ertelenmiş görüntü oluşturma gibi şeyleri uygulamaya nasıl başlayacağınızı gösterir ve DirectCompute!



-1

benim için öncelikle GLSL'yi öğrenmek daha kolay, ve HLSL ve GLSL benzer olduğundan. kavramı, boru hattını, donanımı ve iç gölgelendirici dilin nasıl çalıştığını anladığınızda, HLSL veya hatta Cg gibi başka bir dili kullanmanız kolaylaşır.

GLSL'yi öneriyorum çünkü openGL'nin turuncu ve kırmızı kitapları gibi çok iyi bir kitabı var ve yeni başlayanlar için öğrenmesi kolay.


1
Bu soruya cevap vermiyor.
PhillC

Yine de kötü bir cevap değil - GLSL’nin altında yatanların çoğu HLSL’ye çok benziyor ve eğer OP GLSL için kaynak bulabilirse, onlardan faydalanmak geçerli. Gölgelendirici kodunun kendisi arasındaki büyük farklılıkların çoğu, neye baktığınızı bildiğiniz zaman, sadece zihinsel bir dönüşüm meselesidir. GLSL öğrenme fikri ilk önce başarısız olur çünkü birinin OpenGL'yi (kendi başına fena değil; ikisini de bilmek faydalıdır) öğrenmek ve birinin programını yeniden yazmak zorunda kalması gerekir (kötü), ancak birinin HLSL öğrenmesini desteklemek için GLSL materyalini kullanmakta kesinlikle yanlış bir şey yoktur (ve tersi, uygunsa).
Maximus Minimus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.