Tôi đã làm việc trên một hệ thống decal hoãn lại. Cho đến nay tôi đã hoàn thành phần chiếu, nghĩa là tôi có thể nhấp vào một cái gì đó trong cảnh và nó sẽ chiếu một miếng decal lên bề mặt của vật thể.
Có một vài điều khác tôi muốn thêm vào hệ thống này: cắt bình thường và đề can ánh xạ bình thường. Cắt bình thường là khi tôi loại bỏ các mảnh được trải dài trên một góc nhọn. Nhìn thấy ở đây . Một cách để giải quyết vấn đề này là loại bỏ các mảnh có sự khác biệt lớn giữa bình thường trong G-Buffer và decal thông thường. Điều này sẽ yêu cầu đọc kết cấu bình thường của G-buffer.
Để thực hiện ánh xạ bình thường cho decal, tôi cần pha trộn bình thường của decal (từ bản đồ bình thường) với bình thường của G-buffer. Yêu cầu ghi vào kết cấu bình thường của G-buffer.
Tôi hy vọng rõ ràng rằng để hỗ trợ hai tính năng này, tôi cần đọc và ghi vào kết cấu bình thường trong cùng một shader pass. Đáng buồn thay, đây là hành vi không xác định, vì vậy tôi tự hỏi nếu có một số cách khác để thực hiện các tính năng này.