2012-01-14 38 views
8

Tôi rất quan tâm đến việc hiểu cách hoạt động của tính năng ghép kênh. Tôi đã tìm thấy một tài liệu lớn về cách cho phép hoặc sử dụng nó, nhưng rất ít thông tin liên quan đến những gì nó thực sự làm để đạt được một kết xuất chống răng cưa. Những gì tôi đã tìm thấy, ở nhiều nơi, là thông tin mâu thuẫn mà chỉ làm tôi bối rối hơn. Vui lòng lưu ý rằng Tôi biết cách bật và sử dụng multisampling (Tôi thực sự đã sử dụng nó), những gì tôi không biết là loại dữ liệu nào thực sự được đưa vào các kết xuất/kết cấu đa kết nối và cách dữ liệu này được sử dụng trong đường dẫn hiển thị.Multisample thực sự hoạt động như thế nào?

Tôi có thể hiểu rất rõ cách siêu kết nối hoạt động, nhưng ghép đa điểm vẫn có một số khu vực tối nghĩa mà tôi muốn hiểu.

đây là những gì các thông số kỹ thuật nói: (OpenGL 4,2)

giá trị mẫu Pixel, bao gồm cả màu sắc, độ sâu, và các giá trị stencil, được lưu trữ trong đệm này (bộ đệm multisample). Các mẫu chứa các giá trị màu riêng biệt cho từng màu phân đoạn.

...

Trong multisample render nội dung của một đoạn điểm ảnh được thay đổi theo hai cách. Đầu tiên, mỗi mảnh bao gồm một giá trị bảo hiểm với các bit mẫu.

...

Thứ hai, mỗi mảnh bao gồm giá trị MẪU chiều sâu và bộ liên quan dữ liệu, thay vì giá trị sâu duy nhất và tập hợp các dữ liệu liên quan được duy trì trong chế độ dựng hình đơn mẫu.

Vì vậy, mỗi mẫu chứa một màu, độ che phủ và độ sâu riêng biệt. Sự khác biệt so với siêu mẫu bình thường là gì? Có vẻ như một "siêu nặng" thay thế cho tôi, trong đó mỗi giá trị pixel cuối cùng được xác định bởi giá trị bảo hiểm của các mẫu của nó thay vì một mức trung bình đơn giản, nhưng tôi rất không chắc chắn về điều này. Và điều gì về tọa độ kết cấu ở cấp mẫu?

Nếu tôi lưu trữ, nói, các chuẩn mực trong kết cấu đa nhân rộng RGBF, tôi có đọc lại chúng "antialiased" (nghĩa là, tiếp cận 0) trên các cạnh của đa giác không?

Trình đổ bóng phân đoạn được gọi một lần cho mỗi đoạn, trừ khi nó sử dụng gl_SampleID, glSampleIn hoặc có bộ định mức lưu trữ 'mẫu'. Làm thế nào một trình đổ bóng phân đoạn có thể được gọi một lần trên mỗi đoạn và nhận được một kết xuất không được phản đối?

+0

Giải thích bởi NVIDIA: http://www.nvidia.com/object/feature_hraa.html –

+0

xin lỗi nhưng liên kết này cung cấp hoàn toàn không có thông tin về cách hoạt động của MS, bạn có thể thậm chí có được thông tin tốt hơn từ wikipedia – user815129

+0

Bài viết này sau đó, một bài giảng CS năm 2007 của Stanford: http://graphics.stanford.edu/courses/cs248-07/lectures/2007.10.11%20CS248-06%20Multisample%20Antialiasing/2007.10.11 % 20CS248-06% 20Multisample% 20Antialiasing.ppt, quá tệ đến mức nó không tham chiếu bất kỳ nguồn nào. –

Trả lời

5

OpenGL trên hệ thống đồ họa Silicon:

http://www-f9.ijs.si/~matevz/docs/007-2392-003/sgi_html/ch09.html#LE68984-PARENT

đề cập: Khi bạn sử dụng cách liền lạc và đọc lại màu sắc, bạn sẽ có được giá trị màu được giải quyết (có nghĩa là, với mức trung bình của các mẫu). Khi bạn đọc lại stencil hoặc chiều sâu, bạn thường lấy lại một giá trị mẫu duy nhất thay vì giá trị trung bình. Giá trị mẫu này thường là giá trị gần nhất với tâm của pixel.

Và có thông số kỹ thuật này (1994) từ trang web OpenGL.Nó giải thích đầy đủ chi tiết những gì được thực hiện Nếu MULTISAMPLE_SGIS được kích hoạt: http://opengl.org/registry/specs/SGIS/multisample.txt

Xem thêm những câu hỏi có liên quan này: How are depth values resolved in OpenGL textures when multisampling?

Và câu trả lời cho câu hỏi này, nơi GL_MULTISAMPLE_ARB được đề nghị: where is GL_MULTISAMPLE defined?. Các thông số kỹ thuật cho GL_MULTISAMPLE_ARB (2002) có tại đây: http://www.opengl.org/registry/specs/ARB/multisample.txt

+0

tuyệt vời, và cảm ơn bạn đã tham khảo câu hỏi multisampling – user815129

Các vấn đề liên quan