2012-07-26 36 views
6

Tôi có trình đổ bóng OpenGL sử dụng gl_TexCoord như sau như thế nào. Nhưng trong OpenGL ES, gl_TexCoord không được hỗ trợ. Tôi tự hỏi tôi có thể làm gì để cấu trúc lại mã để làm cho nó hoạt động trên OpenGL ES.đối tác của gl_TexCoord trong OpenGL ES 2.0

void main() 
{ 
    //scene depth calculation 
    float depth = linearize(texture2D(inputImageTexture2,gl_TexCoord[0].xy).x); 
    if (depthblur) 
    { 
     depth = linearize(bdepth(gl_TexCoord[0].xy)); 
    } 

    ... 
} 

Trả lời

6

Không có. Bạn làm điều đó theo cách thủ công với một người dùng định nghĩa varying được chuyển từ trình đổ bóng đỉnh của bạn. Đó là tất cả nó đã bao giờ được anyway; một đầu ra trên mỗi đỉnh mà trình đổ bóng phân đoạn của bạn đã chụp.

+0

. hơn nữa, sự khác biệt giữa gl_TexCoord [0] và gl_TexCoord [3] là gì? bất kỳ bài báo/tài liệu nào có thể được tham chiếu để hiểu điều đó? – tom

+0

@tom: Đó là một * mảng *. Đó là ý nghĩa của cú pháp '[]' trong hầu hết các ngôn ngữ. –

+0

Điều đó chắc chắn. Tôi đã cố gắng để hiểu những gì gl_TexCoord [0] và gl_TexCoord [3] được cho. Trong mã mà tôi thừa hưởng, nó tham chiếu gl_TexCoord [0] và gl_TexCoord [3], nhưng không có gl_TexCoord [1] và gl_TexCoord [2], vì vậy tôi đã tự hỏi tại sao. Bất kỳ đề xuất? – tom

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