ทรัพยากรที่ดีสำหรับการเรียนรู้ HLSL คืออะไร [ปิด]


28

ครั้งสุดท้ายที่ฉันลองเรียนรู้ HLSL ฉันทำ shader สองสามครั้งและส่วนใหญ่เข้าใจในสิ่งที่ฉันทำ แต่ฉันยังรู้สึกเหมือนกำลังสะดุดในความมืด สิ่งที่ฉันได้เรียนรู้ส่วนใหญ่มาจากการโพสต์บล็อกต่าง ๆ ที่ไม่ได้อธิบายสิ่งที่ดีมาก

นอกจากนี้เอกสารใน MSDN ดูเหมือนจะเป็นการอ้างอิงฟังก์ชั่นมากกว่า

ฉันจะเรียนรู้ที่จะไม่เพียง แต่เขียน HLSL แต่เรียนรู้เทคนิคการเขียนเฉดสีได้ที่ใด

คำตอบ:


14

ทั้งสองข้อสังเกตว่าฉันกลับมาที่บทความต่อไปนี้เกือบทุกครั้งที่ฉันเขียน shader ทั่วไป:


1
และฉันควรระบุด้วย "การอ้างอิง API" ฉันหมายถึงส่วน "คู่มือการเขียนโปรแกรม" มากกว่า
ฌอนเจมส์

6

หากสิ่งที่คุณเป็น "เทคนิค Shader" แทนที่จะเป็นเพียงการอ้างอิงภาษา (อ่านคำถามคน) ฉันขอแนะนำ (จากง่ายไปสู่ขั้นสูง):

และโดยพื้นฐานแล้วก็ลองทำสิ่งต่าง ๆ และฝึกฝนทั้งหมดในขณะที่ซึมซับว่า หรือเลือกและเลือกสิ่งที่คล้ายกับสิ่งที่คุณพยายามจะบรรลุและทำงานจากที่นั่น


3

Cg ไม่ได้เป็น HLSL ในทางเทคนิค แต่ syntactically พวกมันเหมือนกัน

ต้องบอกว่ามันเป็นหนังสือที่เก่ากว่า แต่ NVIDIA ทำ " The Cg Tutorial " ให้อ่านออนไลน์ฟรี มันครอบคลุมพื้นฐานของไปป์ไลน์ที่ตั้งโปรแกรมได้ในแบบที่ครอบคลุมมากและมันควรแปล HLSL ด้วยความพยายามเพียงเล็กน้อย


1
nVidia และ Microsoft ร่วมประพันธ์ Cg / HLSL ในวันนั้น พวกเขาให้ชื่อต่างกันเนื่องจากการสร้างแบรนด์ แต่ภาษาเหมือนกัน ตอนนี้อาจมีความแตกต่างกันเล็กน้อย แต่มีน้อยที่สุดอย่างแท้จริง
jacmoe

นั่นคือหนังสือที่น่าอัศจรรย์ โดยพื้นฐานแล้ว Kilgard ดีมากในแง่ของบทเรียน
bobobobo

3

หากคุณต้องการแก้ไขและดูผลลัพธ์แบบเรียลไทม์คุณสามารถใช้เครื่องมือ Silverlight อย่างง่ายนี้

http://shazzam-tool.com/
Shazamm 1.3 - เครื่องมือแก้ไข & Previwer ของ HSLS Shaders


สำหรับบทเรียน +1 สำหรับ Riemers.net แต่ฉันก็พบชุดบทเรียนของ XNA / HLSL ชุดนี้ดียิ่งขึ้น

นี่คือรายการคุณจะพบพวกเขาได้ที่นี่: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - แนะนำ HSLS แสงโดยรอบ
  • 2 - กระจายแสง
  • 3 - แสงพิเศษ
  • 4 - การทำแผนที่ปกติ
  • 5 - เปลี่ยนรูปร่างยอด Shader
  • 6 - การสาธิต Shader: ทิวทัศน์ของมหาสมุทร / เกาะที่เรียบง่าย
  • 7 - แรเงาตูน
  • 8 - แผนที่เงา
  • 9 - กระบวนการโพสต์กระดิก
  • 10 - กลับกระบวนการโพสต์
  • 11 - เฉดสีเทา
  • 12 - ตัวเปลี่ยนความผิดเพี้ยนของพิกเซล
  • 13 - การทำแผนที่อัลฟ่า
  • 14 - บัฟเฟอร์ส่งผ่าน / ความลึก
  • 15 - การแม็พสภาวะแวดล้อมแบบไดนามิก
  • 16 - การหักเห
  • 17 - จุดไฟ + เงาตัวเอง
  • 18 - ไฟพอยต์หลายจุด
  • 19 - แสงรอบครึ่งซีก
  • 20 - ความชัดลึก
  • 21 - การเปลี่ยนแปลง: จาง
  • 22 - การเปลี่ยนแปลง: ข้าม
  • 23 - เบลอ
  • 24 - บลูม
  • 25 - เสียงเพอร์ลินบน GPU
  • 26 - เสียงเพอร์ลิน Bump Mapping

2

บางสิ่งที่อยู่ในใจ

  1. รู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรมเกม 3D ด้วย DirectX 9.0 (ยอดเยี่ยม)
  2. NVIDIA FX Composer (เหมาะสำหรับตัวอย่าง)
  3. มีกระดาษแนะนำ Shader X2 บนเว็บไซต์ของ ATI แต่ถูกลบออก ... Ah! พบที่นี่!

1

ฉันพบRiemers.netมีบทช่วยสอนเบื้องต้นที่ดีมากใน HLSL ซึ่งเป็นส่วนหนึ่งของบทเรียน XNA ผู้เขียน Riemer Grootjans ยังเขียนหนังสือแนะนำXNA 3.0 สูตรการเขียนโปรแกรมเกม - ถ้าคุณชอบวิธีการทำอาหาร




0

ฉันพบชุดบทเรียนที่เปลี่ยนจากแสงพื้นฐานรอบด้านไปจนถึงการสะท้อนแสงและเงาฉูดฉาด แต่ละคนต้องผ่านและอธิบายทุกบรรทัดและอธิบายคณิตศาสตร์บางส่วน:

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


0

ไม่แน่ใจว่ารูปแบบและ Shader รุ่น DirectX คุณกำหนดเป้าหมาย แต่ผมขอแนะนำให้แสดงผลในทางปฏิบัติและการคำนวณด้วย Direct3D11 หนังสือเล่มนี้จะนำคุณไปสู่รายละเอียดทั้งหมดของ DirectX11 ซึ่งเป็นแหล่งทรัพยากรไปป์ไลน์ที่แตกต่างกันทั้งหมด HLSL (ทั้งบทที่ทุ่มเทให้กับเรื่องนี้) และวิธีการเริ่มต้นใช้งานสิ่งต่าง ๆ เช่นการจำลองระบบอนุภาคการสอนการประมวลผลภาพ และ DirectCompute!


0

ฉันขอแนะนำลิงก์นี้สำหรับตัวอย่าง: http://www.codesampler.com/dx9src/dx9src_8.htm#dx9_hlsl_fx_simple

สำหรับผู้ที่สงสัยว่าทำไมโค้ดของพวกเขาถึงใช้งานไม่ได้หรือถ้าคุณสับสนว่าจะรวม shader เข้ากับไพพ์ไลน์ของคุณได้อย่างไรนี่เป็นสถานที่ที่ดีที่จะไป


-1

สำหรับฉันมันง่ายกว่าที่จะเรียนรู้ GLSL ก่อนและเนื่องจาก HLSL และ GLSL นั้นคล้ายกัน เมื่อคุณเข้าใจแนวคิดทั้งหมดไปป์ไลน์ฮาร์ดแวร์และวิธีการทำงานของภาษา shader ด้านในมันเป็นเรื่องง่ายสำหรับคุณที่จะใช้ภาษาอื่นเช่น HLSL หรือ Cg

ฉันเสนอ GLSL เพราะมันมีหนังสือที่ดีมากเช่นหนังสือสีส้มและสีแดงของ openGL และง่ายต่อการเรียนรู้สำหรับผู้เริ่มต้น


1
สิ่งนี้ไม่ตอบคำถาม
PhillC

มันไม่ได้เป็นคำตอบที่ไม่ดีแต่ GLSL นั้นมีลักษณะคล้ายกับ HLSL มากและถ้า OP สามารถค้นหาทรัพยากรสำหรับ GLSL ได้แล้วมันก็ใช้ได้แล้วที่จะใช้มัน ความแตกต่างที่สำคัญหลายประการระหว่างโค้ด shader นั้นเป็นเพียงเรื่องของการแปลงจิตเมื่อคุณรู้ว่าคุณกำลังดูอะไรอยู่ ความคิดในการเรียนรู้ GLSL ครั้งแรกล้มเหลวเพราะเราจะต้องเรียนรู้ OpenGL (ไม่เลวในตัวเองมีประโยชน์ที่จะรู้ทั้งสองอย่าง) และเขียนโปรแกรมใหม่ (ไม่ดี) แต่ไม่มีอะไรผิดปกติในการใช้เนื้อหา GLSL เพื่อเสริมการเรียนรู้ HLSL ในทางกลับกันหากเกี่ยวข้อง)
Maximus Minimus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.