Tôi hiện đang lập trình một công cụ 3D nhỏ, và tôi đã tự hỏi tại sao tôi nên đi vào các tọa độ không gian mắt trong bộ đổ bóng. Để làm được điều đó, tôi phải đặt ma trận máy ảnh của mình trong bộ đồng phục để chuyển đổi các vị trí ánh sáng trong tọa độ mắt và một ma trận không có camera để đặt các hướng ánh sáng trong tọa độ mắt. Tại sao mọi người sử dụng các tọa độ này? Tôi không thực sự thấy bất kỳ lợi thế nào, vì vậy nếu bạn có thể giúp tôi hiểu lựa chọn này, tôi sẽ biết ơn. Cảm ơn :)tại sao chúng ta nên đi vào các tọa độ không gian mắt trong giai đoạn phân đoạn trong đường ống OpenGL?
Trả lời
Có nhiều lý do mắt không gian được sử dụng:
- Đó là thuận tiện. Đó là một không gian được xác định rõ ràng, và một cái mà bạn tính toán trên con đường chuyển đổi vị trí.
- Nó có quy mô tương tự như không gian thế giới, nhưng không có vấn đề về không gian thế giới. Không gian mắt luôn luôn (tương đối) gần bằng không (vì mắt là 0), do đó, nó là một không gian hợp lý để có ma trận biến đổi rõ ràng. Quy mô là quan trọng, bởi vì bạn có thể cung cấp khoảng cách (như các thuật ngữ giảm ánh sáng) được tính toán trong không gian thế giới. Khoảng cách không thay đổi trong không gian mắt.
- Tuy nhiên, bạn cần chuyển đổi nó thành không gian tuyến tính. Làm ánh sáng, đặc biệt là với sự chú ý, trong một không gian phi tuyến tính như không gian sau chiếu là ... khó khăn. Vì vậy, bạn sẽ phải cung cấp các tiêu chuẩn và vị trí trong một số loại không gian tuyến tính, vì vậy nó cũng có thể là không gian mắt.
- Nó yêu cầu các biến đổi ít nhất. Không gian mắt là không gian ngay trước khi phép chiếu chuyển đổi. Nếu bạn phải đảo ngược chuyển đổi thành không gian tuyến tính (ví dụ như hiển thị trả chậm), không gian mắt là không gian con mắt yêu cầu hoạt động ít nhất.
Bạn không phải cung cấp ma trận máy ảnh cho trình đổ bóng và thực hiện chuyển đổi vị trí và hướng ánh sáng tại đó. Trên thực tế nó là khá kém hiệu quả để làm điều đó theo cách đó, kể từ khi bạn đang làm các hoạt động rất giống nhau trên cùng một con số một lần nữa và một lần nữa cho mỗi đỉnh.
Chỉ cần chuyển đổi vị trí ánh sáng và hướng bên CPU và cung cấp các thông số ánh sáng được chuyển đổi dễ dàng cho trình đổ bóng. Tuy nhiên tính toán ánh sáng vẫn còn ngắn gọn hơn trong không gian mắt, đặc biệt là nếu ánh xạ bình thường có liên quan. Nhưng bạn đã biến đổi mọi thứ thành không gian mắt, vì các chuẩn không được biến đổi bởi biến đổi phối cảnh (mặc dù các vị trí đỉnh có thể được chuyển đổi thành không gian clip trực tiếp).
- 1. Intel Core i7 có bao nhiêu giai đoạn đường ống?
- 2. lỗi phân đoạn haskell với giai thừa
- 3. tại sao chúng ta không nên sử dụng ++ trong javascript?
- 4. Làm cách nào để thiết lập đường ống thử nghiệm nhiều giai đoạn trong sbt?
- 5. Tại sao onResume() được gọi trong các phân đoạn ẩn?
- 6. hệ thống tọa độ chiếu sáng theo từng đoạn
- 7. Tại sao chúng ta nên tránh sử dụng các biến lớp @@ trong đường ray?
- 8. API giai đoạn âm lịch
- 9. tại sao parse_url trở lại phân đoạn?
- 10. Cách nạp đoạn mới vào cùng một không gian như đoạn hiện tại
- 11. Làm cách nào để đóng tất cả các giai đoạn khi giai đoạn chính bị đóng?
- 12. Sao chép ảnh vào giai đoạn S3 (sử dụng đường ray và kẹp giấy)
- 13. Chúng ta có nên đi theo cách của Corona không?
- 14. Tự động thêm phân đoạn vào đoạn
- 15. Phân đoạn URI hiện tại trong CodeIgniter
- 16. Đường ống trong lắp ráp
- 17. Embedded Linux - Các giai đoạn khởi động
- 18. Tại sao chúng ta sử dụng Response.ClearHeaders()?
- 19. MySql - chậm gửi dữ liệu giai đoạn
- 20. Tại sao chúng ta nên sử dụng mã hóa ui khi chúng ta có Specflow?
- 21. Phân đoạn động trong Android
- 22. Sử dụng chế độ xem hoặc phân đoạn trong ViewPager
- 23. Porter Liferay và JSF: Chuyển hướng trong giai đoạn Render
- 24. Có thể vẽ độ dày đường kẻ trong một trình đổ bóng phân đoạn không?
- 25. Đường cắt đoạn đường và đoạn
- 26. Lỗi phân đoạn trong PHP?
- 27. giai đoạn Perl vs dấu phẩy hành
- 28. Hoạt ảnh hai giai đoạn và Hoạt ảnh hai giai đoạn cho ứng dụng iPhone?
- 29. kích thước của giai đoạn swf nạp
- 30. textbox phân đoạn trong WPF