Câu trả lời này là rất lâu sau khi thực tế, nhưng vì tôi tìm thấy điều này trên google có lẽ điều này vẫn sẽ giúp được ai đó. Tôi chỉ muốn làm rõ những gì JasonD và Notabene đang nói: Việc thực hiện các phép tính cắt sẽ dễ dàng hơn rất nhiều (tìm ra những gì bạn nên thấy và những gì bạn không nên nhìn vì cách bạn đang nhìn, cách đó bao xa, ect .). Thay vì kiểm tra xem mọi thứ có giao nhau với các mặt phẳng trên đường viền của chế độ xem không, bạn chỉ cần so sánh x, y, z của mọi thứ với xMax, xMin, yMax, ect. , vì bạn chỉ đơn giản là có một khối lập phương. Nó phức tạp hơn một chút nếu bạn muốn chỉ có một phần của một cái gì đó hiển thị, nhưng toán học vẫn tốt hơn với một khối đơn vị hơn là với một sự thất vọng.
Một vài điều tôi thấy sai lệch trong các câu trả lời khác:
-Bạn không cắt các mặt của chế độ xem, bạn sắp xếp nó thành một khối bằng cách sử dụng các phép biến đổi ma trận đồng nhất.
-Chúng tôi không chuyển đổi sang màn hình 2D với bước này. Bước này không cần thiết để làm như vậy. Về mặt lý thuyết, chúng ta có thể thực hiện tất cả công việc của mình mà không cần chuyển đổi sự thất vọng thành khối lập phương, điều này sẽ trực quan hơn nhưng toán học khó hơn - nhưng đồ họa là tất cả về việc tính toán rất nhanh vì có rất nhiều phép tính mỗi giây cho trò chơi trung bình / bất cứ điều gì.
Chi tiết hơn: Nó không nhất thiết phải là một khối đơn vị mà chúng tôi đang chuyển đổi, nó chỉ phải là một hộp hình chữ nhật để các phép tính tối đa của chúng tôi hoạt động. Trong thực tế trong lớp, chúng tôi đã sử dụng một hộp trong đó máy ảnh quay xuống trục z, z đi từ 0 đến 1, x đi từ -1 đến 1 và y đi từ -1 đến 1. Nói chung trong toán 1, 0, và -1 là những con số tốt để thực hiện các phép tính dễ dàng hơn, tôi cho rằng đó là lý do tại sao chúng ta không đi từ -100 đến 100 hoặc một cái gì đó.
TLDR: Nó làm cho việc cắt dễ dàng hơn.
Chỉnh sửa: bobobobo có ý chính của nó. Tất cả mọi thứ là hình tam giác, nói chung: D.
Nguồn: Tham gia lớp học đồ họa đại học