2012-02-29 38 views
7

Tôi có đối tượng 3D trong cảnh của tôi và trình đổ bóng phân đoạn cho đối tượng này nhận được kết cấu có cùng kích thước màn hình. Tôi muốn lấy tọa độ từ đoạn hiện tại và tìm thông tin màu trên ảnh ở cùng vị trí. Điều này có thể không? Ai đó có thể chỉ cho tôi hướng đi đúng không?Tìm màu pixel theo tọa độ cụ thể từ mẫu sampler2D bằng GLSL

Trả lời

12

Trình đổ bóng phân đoạn có giá trị tích hợp được gọi là gl_FragCoord cung cấp tọa độ pixel của đoạn đích. Bạn phải phân chia điều này theo chiều rộng và chiều cao của chế độ xem để có được tọa độ kết cấu cho tra cứu. Dưới đây là một ví dụ nhỏ:

uniform vec2 resolution; 
uniform sampler2D backbuffer; 

void main(void) { 
    vec2 position = (gl_FragCoord.xy/resolution.xy); 
    vec4 color = texture2D(backbuffer, position); 
    // ... do something with it ... 
} 

Đối với một ví dụ làm việc hoàn tất, thử điều này trong một trình duyệt hỗ trợ WebGL:

http://glslsandbox.com/e#375.15

+0

Tôi không thể tin rằng đó là dễ dàng như vậy, cảm ơn rất nhiều @emackey , Tôi đã cố gắng làm điều này trong nhiều ngày. –

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