Apa sajakah sumber yang bagus untuk mempelajari HLSL? [Tutup]

28

Terakhir kali saya mencoba belajar HLSL, saya membuat beberapa bayangan dan kebanyakan mengerti apa yang saya lakukan, tetapi saya masih merasa seperti tersandung dalam kegelapan. Sebagian besar yang saya pelajari saya dapatkan dari berbagai posting blog yang tidak menjelaskan dengan baik.

Juga, dokumentasi pada MSDN tampaknya lebih merupakan referensi fungsi.

Di mana saya bisa belajar untuk tidak hanya menulis HLSL, tetapi belajar teknik untuk menulis shader?

Brian Ortiz
sumber

Jawaban:

14

Keduanya mencatat, saya secara konsisten kembali ke artikel berikut hampir setiap kali saya menulis shader generik:

Sean James
sumber
1
Dan saya harus menentukan bahwa dengan "referensi API", maksud saya lebih banyak bagian "Panduan Pemrograman".
Sean James
6

Jika apa yang Anda kejar adalah "teknik shader", alih-alih hanya referensi bahasa (baca pertanyaannya, orang-orang), saya sarankan (dari mudah ke lanjutan):

  • Bagian Shader dari sampel XNA (jelas mengharuskan Anda menggunakan XNA)
  • Seri tutorial oleh Petri Wilhelmsen, mulai dari sini (semakin canggih nanti; juga berbasis XNA)
  • The Nvidia FX Composer 's sampel dibundel

Dan pada dasarnya baik: Cobalah hal-hal dan berlatih, sambil menyerap bagaimana "pro" melakukan sesuatu. Atau pilih dan pilih hal-hal yang mirip dengan apa yang ingin Anda capai dan hasilkan dari sana.

Andrew Russell
sumber
3

Cg secara teknis bukan HLSL, tetapi secara sintaksis keduanya hampir identik.

Karena itu, ini adalah buku yang lebih tua, tetapi NVIDIA telah membuat " The Cg Tutorial " gratis untuk dibaca secara online. Ini mencakup dasar-dasar pipa yang dapat diprogram dengan cara yang sangat komprehensif, dan semuanya harus diterjemahkan ke HLSL dengan upaya minimal.

Neverender
sumber
1
nVidia dan Microsoft turut menulis Cg / HLSL pada hari itu. Mereka memberinya nama berbeda karena branding, tetapi bahasanya sama. Sekarang, mungkin ada sedikit perbedaan, tetapi ini benar-benar minimal.
jacmoe
Itu adalah buku yang fenomenal. Pada dasarnya apa pun menurut Kilgard sangat bagus dalam hal tutorial.
bobobobo
3

Jika Anda ingin mengedit dan melihat hasilnya secara langsung, Anda dapat menggunakan alat Silverlight sederhana ini

http://shazzam-tool.com/
Shazamm 1.3 - Editor & Previwer HSLS Shaders


Adapun tutorial +1 untuk Riemers.net tetapi saya juga menemukan seri tutorial XNA / HLSL ini lebih baik.

Inilah daftarnya, Anda akan menemukan semuanya di sini: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Pengenalan HSLS, cahaya sekitar
  • 2 - Cahaya difus
  • 3 - Lampu specular
  • 4 - Pemetaan normal
  • 5 - Merusak vertex shader
  • 6 - Demo Shader: Pemandangan laut / pulau sederhana
  • 7 - Naungan toon
  • 8 - Gloss peta
  • 9 - Goyangkan proses posting
  • 10 - Balikkan proses posting
  • 11 - Shader abu-abu
  • 12 - Shader distorsi piksel
  • 13 - Pemetaan alfa
  • 14 - Buffer transmitansi / kedalaman
  • 15 - Pemetaan Lingkungan Dinamis
  • 16 - Pembiasan
  • 17 - Titik cahaya + Bayangan-Diri
  • 18 - Beberapa Titik Lampu
  • 19 - Lampu ambient hemispheric
  • 20 - Kedalaman Lapangan
  • 21 - Transisi: Pudar
  • 22 - Transisi: Salib
  • 23 - Blur
  • 24 - Mekar
  • 25 - Perlin Noise pada GPU
  • 26 - Bump Mapping Perlin Noise
Makanlah di Joes
sumber
1

Saya menemukan Riemers.net memiliki tutorial pengantar yang sangat bagus tentang HLSL sebagai bagian dari tutorial XNA-nya. Penulis, Riemer Grootjans, juga menulis buku yang direkomendasikan XNA 3.0 Game Programming Recipes - jika Anda menyukai pendekatan resep.

Dave O.
sumber
0

Saya menemukan serangkaian tutorial yang beralih dari shader cahaya ambient dasar sampai ke bayangan dan toon shader. Masing-masing melewati dan menjelaskan setiap baris dan bahkan menjelaskan beberapa matematika sedikit:

http://rbwhitaker.wikidot.com/hlsl-tutorials

Brian Ortiz
sumber
0

Tidak yakin apa model shader dan versi DirectX yang Anda targetkan, tetapi saya sangat merekomendasikan Rendering Praktis dan Komputasi dengan Direct3D11 . Buku ini memandu Anda melalui semua rincian penting DirectX11, sumber dayanya, semua shader pipa yang berbeda, HLSL (seluruh bab yang didedikasikan untuk ini), dan bagaimana memulai mengimplementasikan hal-hal seperti simulasi sistem partikel, tessellation, pemrosesan gambar, rendering yang ditangguhkan , dan DirectCompute!

KlashnikovKid
sumber
-1

bagi saya lebih mudah untuk mempelajari GLSL terlebih dahulu, dan karena HLSL dan GLSL serupa. setelah Anda memahami keseluruhan konsep, saluran pipa, perangkat keras, dan cara kerja bahasa shader dalam, mudah bagi Anda untuk menggunakan bahasa lain seperti HLSL atau bahkan Cg.

Saya mengusulkan GLSL karena memiliki buku yang sangat bagus seperti buku openGL oranye dan merah dan mudah dipelajari untuk pemula.

uray
sumber
1
Ini tidak menjawab pertanyaan.
PhillC
Ini bukan respons yang buruk - banyak yang mendasari GLSL sangat mirip dengan HLSL dan jika OP dapat menemukan sumber daya untuk GLSL maka itu sah untuk memanfaatkannya. Banyak perbedaan utama antara kode shader itu sendiri hanya masalah konversi mental setelah Anda tahu apa yang Anda lihat. Gagasan belajar GLSL pertama gagal karena kita juga harus belajar OpenGL (tidak buruk dalam dirinya sendiri; berguna untuk mengetahui keduanya) dan menulis ulang program seseorang (buruk), tetapi sama sekali tidak ada yang salah dengan menggunakan bahan GLSL untuk melengkapi pembelajaran HLSL seseorang (dan sebaliknya, jika relevan).
Maximus Minimus