Chà, bản đồ bóng tối là gì? Bản đồ bóng tối là một kết cấu mà texels trả lời một câu hỏi đơn giản: ở khoảng cách nào với ánh sáng, dọc theo hướng được biểu thị bởi texel, ánh sáng có bị che khuất không? Các tọa độ kết cấu được tạo bằng các phương tiện kết cấu chiếu khác nhau, tùy thuộc vào thuật toán ánh xạ bóng cụ thể.
Hoạ tiết chiếu chỉ đơn giản là một cách biến đổi một vật thể vào không gian của kết cấu (và vâng, tôi biết rằng âm thanh ngược. Nhưng đó là cách nó hoạt động). Các thuật toán ánh xạ bóng sử dụng một số loại biến đổi khác nhau. Nhưng cuối cùng, đây chỉ là những biến đổi từ không gian này sang không gian khác.
Khi hiển thị bản đồ bóng, bạn lấy các đỉnh của hình học của mình và biến đổi chúng qua đường ống kết xuất chuẩn. Nhưng máy ảnh và ma trận chiếu được thiết kế cho vị trí và hướng ánh sáng của bạn, không phải cho vị trí và hướng nhìn.
Khi thực hiện kết xuất chuyển tiếp với bản đồ bóng, bạn kết xuất đối tượng như bình thường, biến đổi các đỉnh thành không gian camera xem và thông qua ma trận chiếu xem. Tuy nhiên, bạn cũng biến đổi các đỉnh thông qua máy ảnh ánh sáng và ma trận chiếu của mình, chuyển chúng dưới dạng dữ liệu theo đỉnh cho bộ đổ bóng mảnh. Nó sử dụng chúng thông qua kết cấu chiếu để truy cập vào kết cấu bóng.
Đây là điểm quan trọng. Quyền truy cập kết cấu chiếu được thiết kế sao cho vị trí mà nó truy cập trên kết cấu thể hiện hướng giữa điểm đó trên bề mặt (điểm mà bạn đang hiển thị trong trình tạo bóng mảnh) và ánh sáng. Do đó, nó tìm nạp texel đại diện cho độ sâu mà tại đó sự tắc nghẽn xảy ra đối với đoạn được hiển thị.
Nhưng không có gì đặc biệt về đường ống này. Bạn không phải chuyển đổi các vị trí đỉnh thành kết cấu bóng và chuyển chúng sang bộ đổ bóng mảnh. Bạn có thể chuyển các vị trí đỉnh của không gian thế giới cho trình đổ bóng mảnh, và sau đó trình tạo bóng mảnh biến đổi chúng thành không gian chiếu của kết cấu bóng. Cấp, bạn sẽ bỏ đi rất nhiều hiệu suất, vì bạn sẽ đưa ra các tọa độ kết cấu chính xác giống nhau. Nhưng nó là khả thi về mặt toán học.
Thật vậy, bạn có thể chuyển các vị trí đỉnh của không gian camera cho trình đổ bóng mảnh. Sau đó, nó có thể biến chúng thành thế giới, sau đó thành không gian máy ảnh ánh sáng, sau đó thành không gian kết cấu bóng chiếu. Bạn có thể đặt tất cả các phép biến đổi đó thành một ma trận (tùy thuộc vào thuật toán chiếu bóng của bạn). Một lần nữa, điều này cung cấp cho bạn chính xác những gì bạn đã có trước đây, vì vậy khi kết xuất chuyển tiếp, không có lý do gì để làm điều đó.
Nhưng trong kết xuất hoãn lại , bạn đã có các vị trí đỉnh của không gian camera. Bạn phải, nếu không bạn không thể làm ánh sáng. Bạn có thể lãng phí rất nhiều bộ nhớ và băng thông bằng cách ghi chúng vào bộ đệm, hoặc bạn thông minh và tính toán lại chúng bằng cách sử dụng bộ đệm sâu và toán học khác nhau (mà tôi sẽ không đi sâu vào đây, nhưng được đề cập trực tuyến).
Dù bằng cách nào, bạn đã xem vị trí không gian camera. Và, như đã nêu ở trên, chúng ta có thể áp dụng một ma trận để biến đổi chúng từ không gian máy ảnh thành không gian kết cấu chiếu bóng. Vì vậy, ... làm điều đó. Sau đó truy cập bản đồ bóng của bạn.
Vấn đề được giải quyết.