강의

멘토링

커뮤니티

Game Dev

/

Game Programming

Lập trình DirectX Raytracing

DirectX 12 hỗ trợ Raytracing thời gian thực và có thể triển khai đồ họa chất lượng cao bằng mã nguồn gọn gàng. Tuy nhiên, do rào cản gia nhập cao nên ít lập trình viên trực tiếp tận dụng được nó. Khóa học này dựa trên kinh nghiệm ứng dụng vào game thực tế, giúp các học viên có thể tự phát triển công cụ Raytracing.

(5.0) 3 đánh giá

24 học viên

  • megayuchi
raytracing
DirectX12
게임개발자
DirectX
computer-graphics
d3d

Đánh giá từ những học viên đầu tiên

Bạn sẽ nhận được điều này sau khi học.

  • Học D3D12-DirectX Raytracing API

  • Phát triển engine riêng

  • Áp dụng Raytracing cho Engine riêng

Tìm hiểu lập trình DirectX Raytracing và áp dụng công nghệ raytracing vào công cụ của riêng bạn.

DirectX 12 hỗ trợ công nghệ dò tia thời gian thực dựa trên GPU. Công nghệ Raytracing cho phép triển khai đồ họa trò chơi chất lượng cao với mã đơn giản và ngắn gọn hơn. Tuy nhiên, do rào cản gia nhập cao của API DirectX12 và xu hướng dựa vào các công cụ thương mại nên rất ít lập trình viên có thể sử dụng trực tiếp công nghệ DirectX Raytracing thực tế. Bài giảng này, tiếp nối bài giảng D3D12 của megayuchi, sẽ giúp sinh viên phát triển công cụ Raytracing của riêng mình dựa trên kinh nghiệm áp dụng DirectX Raytracing vào các trò chơi thực tế.

Tìm hiểu về những điều này

Tổng quan về DirectX Raytracing

Giới thiệu các khái niệm cơ bản về dò tia và giải thích cách triển khai công nghệ này trong DirectX API.

Đối tượng trạng thái đường ống dò tia (RTPSO)

DirectX Raytracing có lẽ là một trong ba chủ đề bị hiểu lầm nhiều nhất trong lập trình. Giải thích Ray Tracing Pipeline State Object là gì, nó chứa những gì và cách tạo cũng như sử dụng nó.

Cấu trúc gia tốc

BVH, một cấu trúc tăng tốc không gian cần thiết cho việc dò tia theo thời gian thực, được triển khai như một đối tượng có tên là Cấu trúc tăng tốc trong DirectX Raytracing. Giải thích cách tạo và sử dụng chúng.

Raytracing Shader

DirectX Raytracing hỗ trợ nhiều loại hàm đổ bóng với khái niệm hàm gọi lại tùy thuộc vào tình huống. Tôi sẽ giải thích cách triển khai các thành phần bên trong của mã shader này và thời điểm sử dụng nó.

Liên kết tài nguyên Shader

Đây là phần khó nhất khi lần đầu học lập trình DirectX Raytracing. Lúc đầu, tôi thực sự thấy khó khăn khi phải tìm cách ánh xạ kết cấu vào từng phần của lưới, cách truyền dữ liệu vật liệu và cách đọc tọa độ kết cấu và vectơ pháp tuyến. Tôi sẽ giải thích phần này từng bước một và đảm bảo bạn hiểu rõ.

Tạo một khuôn khổ động cơ đơn giản và áp dụng Raytracing

Có sự khác biệt đáng kể giữa bản demo dựng hình dạng đơn giản được triển khai bằng mã hóa cứng và mã dùng trong trò chơi. Trong hướng dẫn này, chúng ta sẽ triển khai một khuôn khổ trò chơi đơn giản có thể áp dụng công nghệ dò tia. Đây là một đoạn mã đơn giản, nhưng về lâu dài nó sẽ đóng vai trò là bước đệm cho quá trình phát triển động cơ.

Biến đổi cứng

Giải thích cách phản ánh điều này trong mã Raytracing khi Đối tượng trò chơi trải qua các phép biến đổi vật thể cứng (quay/tỷ lệ/tịnh tiến) mà không làm thay đổi hình dạng của chúng.

Biến đổi không cứng nhắc

Giải thích cách thực hiện các phép biến đổi (như thay đổi giao diện) để thay đổi giao diện của các đối tượng trong trò chơi.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Windows 10/11

  • Công cụ sử dụng: Visual Studio 2022, pix

  • Phần cứng bắt buộc: GPU hỗ trợ DirectX Raytracing - nvidia GTX1060 trở lên, AMD RX6400 trở lên

Tài liệu học tập

  • pdf được cung cấp

  • Cung cấp mã nguồn qua github và các tệp đính kèm

Kiến thức và ghi chú của người chơi

  • C/C++

  • Lập trình Windows

  • Kiến thức lập trình D3D12 (

    Chúng tôi khuyên bạn nên tham gia các bài giảng sau trước.)

  • Cơ bản về lập trình D3D12 ( https://inf.run/WYdms )

  • Cơ bản về lập trình D3D12 Plus ( https://inf.run/itHDW )


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên muốn tích hợp công nghệ Raytracing thời gian thực vào công cụ đồ họa tự phát triển

  • Lập trình viên đã học lập trình D3D12 nhưng cảm thấy không có nơi để sử dụng

Cần biết trước khi bắt đầu?

  • D3D12

  • C/C++

  • Lập trình Windows

Xin chào
Đây là

2,944

Học viên

70

Đánh giá

17

Trả lời

5.0

Xếp hạng

10

Các khóa học

프로그래머

C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket

 

인프런 강의

D3D12프로그래밍 기초편 - https://inf.run/7gJhS

D3D12프로그래밍 기초플러스 - https://inf.run/itHDW

DirectX Raytracing 프로그래밍 - https://inf.run/cQqx7

Windows System 프로그래밍 - https://inf.run/AwfCv

Windows Debugging Tips - https://inf.run/zL7E4

 

Blog : https://megayuchi.com

Youtube : https://youtube.com/megayuchi

LinkedIn : https://www.linkedin.com/in/megayuchi/

 

 

Chương trình giảng dạy

Tất cả

17 bài giảng ∙ (11giờ 21phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

3 đánh giá

5.0

3 đánh giá

  • kimwonjin5016님의 프로필 이미지
    kimwonjin5016

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Honestly, I believe this lecture is a must-take at least once, not only for those programming with Direct3D 12, but also for anyone interested in game programming. It wasn't limited to just rendering objects on screen; I gained practical insights into how to manage resources and how to structure a game when building it myself. Like Youngcheon's other Inflearn lectures, this one was also excellent, allowing me to take one more step towards my goal of wanting to build a game from the ground up. Thank you very much!

    • siyeong33102632님의 프로필 이미지
      siyeong33102632

      Đánh giá 4

      Đánh giá trung bình 5.0

      5

      65% đã tham gia

      • kimsemi87876890님의 프로필 이미지
        kimsemi87876890

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        35% đã tham gia

        5.226.529 ₫

        Khóa học khác của megayuchi

        Hãy khám phá các khóa học khác của giảng viên!