Tôi đang học đường dẫn kết xuất lập trình bằng cách triển khai một trình kết xuất phần mềm nhỏ. Tôi cố gắng thực hiện nó theo kiểu 'phần cứng'. Tuy nhiên, tôi không quen với đường ống GPU và gặp một số vấn đề về việc cắt đồng nhất.
Không gian cắt đồng nhất chứa một biến w khác nhau ở mỗi đỉnh. Là tọa độ đồng nhất của mỗi đối tượng đỉnh (giữa ma trận chiếu và phân chia đồng nhất theo w) tại không gian cắt riêng của nó? Nếu vậy, làm thế nào để cắt các đường và hình tam giác gần hơn Frustum hoặc thậm chí kéo dài phía sau máy ảnh (tức là w <= achum_zgần)?
Cập nhật : chủ đề này nói rằng việc cắt trong không gian đồng nhất trực tiếp là một vấn đề giao nhau trong không gian đồng nhất 4D. Có nghĩa là điểm giao nhau là p_vec4 = t * point1_vec4 + (1 - t) * point2_vec4
. Nói rằng tôi có P0(-70, -70, 118, 120)
và P1(-32, -99, -13, -11)
trong không gian đồng nhất 4D, và điểm giao nhau với plane w = -z
(mà trong NDC là z = -1) (-35, -96, -1, 0.9) t = 0.99
, làm thế nào để có được đối tượng đỉnh tương ứng trong không gian NDC?
Và một khi tôi có được điểm giao nhau chính xác, tôi có nên thực hiện phép nội suy giữa các đối tượng đỉnh được tạo bởi shader đỉnh để có được đối tượng đỉnh mới không?