Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
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) 2 đánh giá

17 học viên

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

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

Dịch cái này sang tiếng Việt

  • 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,713

Học viên

57

Đánh giá

12

Trả lời

5.0

Xếp hạng

9

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ả

2 đánh giá

5.0

2 đánh giá

  • kim_wonjin님의 프로필 이미지
    kim_wonjin

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    솔직히 이 강의는 Direct3D 12로 프로그래밍하는 분들뿐만 아니라, 게임 프로그래밍을 해보고 싶은 분들이라면 꼭 한 번쯤 들어봐야 할 강의라고 생각합니다. 단순히 화면에 물체를 렌더링하는 데 그치지 않고, 리소스를 어떻게 관리할지, 직접 게임을 만들 때 어떤 식으로 구조를 잡아가야 할지에 대한 실질적인 인사이트를 얻을 수 있었습니다. 영천님의 다른 인프런 강의들처럼 이 강의 역시 매우 훌륭했고, 덕분에 바닥부터 게임을 만들어보고 싶다는 제 목표에 한 걸음 더 다가갈 수 있었습니다. 정말 감사합니다!

    • Semi Kim님의 프로필 이미지
      Semi Kim

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      35% đã tham gia

      5.223.555 ₫

      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!