Một số tài nguyên tốt để học HLSL là gì? [đóng cửa]


28

Lần cuối cùng tôi thử học HLSL, tôi đã tạo ra một vài shader và hầu như hiểu những gì tôi đang làm, nhưng tôi vẫn cảm thấy như mình đang loạng choạng trong bóng tối. Hầu hết những gì tôi học được tôi nhận được từ các bài đăng trên blog khác nhau mà không giải thích mọi thứ rất tốt.

Ngoài ra, tài liệu về MSDN dường như là một tài liệu tham khảo chức năng.

Tôi có thể học ở đâu để không chỉ viết HLSL mà còn học các kỹ thuật viết shader?

Câu trả lời:


14

Hai người lưu ý, tôi liên tục quay lại bài viết sau hầu như mỗi khi tôi viết một shader chung:


1
Và tôi nên xác định rằng bằng "Tham chiếu API", ý tôi là phần "Hướng dẫn lập trình" nhiều hơn.
Sean James

6

Nếu những gì bạn đang theo là "kỹ thuật đổ bóng", thay vì chỉ tham khảo ngôn ngữ (đọc câu hỏi, mọi người), tôi khuyên bạn nên (từ dễ đến nâng cao):

Và về cơ bản là: Hãy thử mọi thứ và thực hành, tất cả trong khi tiếp thu cách "ưu" làm mọi việc. Hoặc chọn và chọn những thứ tương tự với những gì bạn đang cố gắng đạt được và làm việc từ đó.


3

Cg không phải là kỹ thuật HLSL, nhưng về mặt cú pháp thì chúng gần như giống hệt nhau.

Phải nói rằng, đó là một cuốn sách cũ hơn, nhưng NVIDIA đã cho phép " Hướng dẫn Cg " miễn phí để đọc trực tuyến. Nó bao gồm những điều cơ bản của đường ống lập trình theo một cách rất toàn diện, và tất cả nên dịch sang HLSL với nỗ lực tối thiểu.


1
nVidia và Microsoft đồng tác giả Cg / HLSL trở lại trong ngày. Họ đặt cho nó những cái tên khác nhau do thương hiệu, nhưng ngôn ngữ thì giống nhau. Bây giờ, có lẽ có một chút khác biệt, nhưng nó thực sự tối thiểu.
jacmoe

Đó là một cuốn sách phi thường. Về cơ bản mọi thứ của Kilgard đều thực sự tốt về mặt hướng dẫn.
bobobobo

3

Nếu bạn muốn chỉnh sửa và xem kết quả theo thời gian thực, bạn có thể sử dụng công cụ Silverlight đơn giản này

http://shazzam-tool.com/
Shazamm 1.3 - Trình chỉnh sửa & Previwer của Trình tạo bóng HSLS


Đối với hướng dẫn +1 cho Riemers.net nhưng tôi cũng thấy loạt bài hướng dẫn XNA / HLSL này thậm chí còn tốt hơn.

Đây là danh sách, bạn sẽ tìm thấy tất cả chúng ở đây: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Giới thiệu về HSLS, ánh sáng xung quanh
  • 2 - Ánh sáng khuếch tán
  • 3 - Ánh sáng đặc biệt
  • 4 - Ánh xạ bình thường
  • 5 - Làm biến dạng shader đỉnh
  • 6 - Shader demo: Phong cảnh biển / đảo đơn giản
  • 7 - Bóng toon
  • 8 - Bản đồ bóng
  • 9 - Quá trình bài lắc
  • 10 - Đảo ngược quá trình bài
  • 11 - Shadercale shader
  • 12 - Shader biến dạng pixel
  • 13 - Ánh xạ Alpha
  • 14 - Bộ đệm truyền / độ sâu
  • 15 - Ánh xạ môi trường động
  • 16 - Khúc xạ
  • 17 - Điểm sáng + Tự tạo bóng
  • 18 - Đèn nhiều điểm
  • 19 - Ánh sáng xung quanh bán cầu
  • 20 - Độ sâu của trường
  • 21 - Chuyển tiếp: Mất dần
  • 22 - Chuyển tiếp: Chữ thập
  • 23 - Làm mờ
  • 24 - Nở
  • 25 - Tiếng ồn Perlin trên GPU
  • 26 - Bump Mapping Perlin noise





0

Tôi tìm thấy một loạt các hướng dẫn đi từ một shader ánh sáng xung quanh cơ bản cho đến các phản xạ và các shader toon. Mỗi người đi qua và giải thích mọi dòng và thậm chí giải thích một số phép toán một chút:

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


0

Không chắc chắn mô hình shader và phiên bản DirectX nào bạn đang nhắm mục tiêu nhưng tôi rất khuyến nghị Kết xuất và tính toán thực tế với Direct3D11 . Cuốn sách hướng dẫn bạn qua tất cả các chi tiết khó hiểu của DirectX11, đó là tài nguyên, tất cả các trình đổ bóng đường ống khác nhau, HLSL (toàn bộ chương dành cho việc này) và cách bắt đầu thực hiện những thứ như mô phỏng hệ thống hạt, xử lý hình ảnh, xử lý hình ảnh, kết xuất hoãn và DirectCompute!



-1

đối với tôi, việc học GLSL trước tiên dễ dàng hơn và vì HLSL và GLSL tương tự nhau. một khi bạn hiểu toàn bộ khái niệm, đường ống, phần cứng và cách thức hoạt động của ngôn ngữ đổ bóng bên trong, bạn có thể dễ dàng sử dụng ngôn ngữ khác như HLSL hoặc thậm chí Cg.

Tôi đề xuất GLSL vì nó có một cuốn sách rất hay như cuốn sách openGL màu cam và đỏ và nó dễ học cho người mới bắt đầu.


1
Điều này không trả lời câu hỏi.
PhillC

Mặc dù đó không phải là một phản hồi xấu - phần lớn những gì làm cơ sở cho GLSL rất giống với HLSL và nếu OP có thể tìm thấy tài nguyên cho GLSL thì việc sử dụng chúng là hợp lệ. Nhiều sự khác biệt lớn giữa chính mã shader chỉ là vấn đề chuyển đổi tinh thần một khi bạn biết bạn đang nhìn gì. Ý tưởng học GLSL trước tiên thất bại bởi vì người ta cũng sẽ phải học OpenGL (bản thân nó không tệ; biết cả hai) và viết lại chương trình của một người (xấu), nhưng hoàn toàn không có gì sai khi sử dụng tài liệu GLSL để bổ sung cho việc học HLSL của một người (và ngược lại, nếu có liên quan).
Maximus Minimus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.