Tại sao chiều rộng và chiều cao chia cho 2 trong ma trận chiếu phối cảnh?


9

Tôi đang sử dụng OpenGL để học đồ họa máy tính. Tôi đang cố gắng để hiểu ma trận chiếu. Những điều sau đây được hiển thị trong OpenGL 'Sách đỏ':

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Tôi không hiểu tại sao chiều rộng và chiều cao được chia cho 2?

Câu trả lời:


11

Vì không thay đổi từ , nên nó thay đổi từ .xproj0widthwidth2width2

Điều quan trọng không phải là chiều rộng, mà là giá trị tối thiểu và tối đa của . Vì nằm ở trung tâm của chế độ xem, không phải là góc, nên các giá trị tối thiểu và tối đa là cộng và trừ một nửa chiều rộng.xproj(0,0)


BTW, Sách đỏ không phải là một giới thiệu tuyệt vời về đồ họa nói chung. Đó là một tiêu chuẩn kỹ thuật, không phải là một hướng dẫn, vì vậy việc giải thích các khái niệm chỉ đủ để không mơ hồ - nó không cố gắng dạy tài liệu. Đặc biệt, đó cũng là về một thư viện kết xuất đường quét, vì vậy có rất nhiều khái niệm quan trọng mà nó hoàn toàn không mô tả, chẳng hạn như BRDF quan trọng như thế nào, chúng liên quan đến các đặc tính bề mặt trong thế giới thực, hình ảnh thực sự là gì và nhiều kỹ thuật cấp cao hơn.

Và cuối cùng, ngay cả trong khu vực nói về - cách sử dụng GPU để tăng tốc kết xuất - nó hoàn toàn lỗi thời. Kiến trúc GL dựa trên GPU từ 20 năm trước. Mặc dù rất nhiều tính năng đã được thêm vào để theo kịp các thay đổi về phần cứng, các tóm tắt cơ bản không phải là một cách tốt để hiểu các kiến ​​trúc GPU hiện tại.

Nếu bạn muốn tìm hiểu về lý thuyết đồ họa máy tính, hãy bắt đầu với một cuốn sách giáo khoa phù hợp như Kết xuất dựa trên vật lý hoặc Đồ họa máy tính: Nguyên tắc và thực hành hoặc một khóa học trực tuyến. Nếu bạn muốn tìm hiểu cách tạo một ứng dụng 3D, hãy bắt đầu với một hướng dẫn về loại ứng dụng mà bạn quan tâm (ví dụ: nếu đó là một trò chơi, hãy thử hướng dẫn Unity).


Wow, đây chính xác là những gì tôi đang tìm kiếm. Tôi bắt đầu đọc một cuốn sách giáo khoa Đại số tuyến tính ... nhưng tôi cần biết loại toán học nào để biểu diễn dựa trên vật lý?
mikeglaz

2
Đợi đã, ý bạn là "Bởi vì không thay đổi từ "? xproj0width
mikeglaz

Đối với openGL, nó cần chiếu tới tọa độ thiết bị đã chuẩn hóa (-1 đến 1) để tỷ lệ từ -Width / 2 đến Width / 2
PaulHK

Bạn nên hỏi một câu hỏi khác về PBR, nhưng đây là một tài nguyên tốt: learnopengl.com/#!PBR/ Theory
Alan Wolfe

@mikeglaz Tôi đã làm, cảm ơn bạn. Tôi muốn nói nếu bạn biết một số đại số tuyến tính và quang học trung học phổ thông, bạn ổn. Bất kỳ chi tiết nào bạn chưa hiểu, bạn sẽ có cơ sở để hiểu bằng cách đọc trang Wikipedia thích hợp.
Dan Hulme
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.