opengl 頂點座標和sampler2D紋理座標

在利用非固定管線進行紋理渲染的時候,經常要用到紋理和頂點座標的映射關係,這裏從三維角度介紹下二維的紋理座標映射:

頂點座標:

首先得明確:

sampler2D紋理座標

紋理的生成是由圖片像素來生成的,而圖像的存儲是從左上角開始,對應於上圖,就是圖像左上角像素生成的紋理部分就在紋理左下角處,即 上下顛倒

映射

爲了能夠讓圖像正確的顯示,就必須將生成紋理的對應點再顛倒一次,負負得正,哈哈。

 

最終,在寫頂點座標 和 紋理映射座標的時候,就直接將 頂點座標的矩形 於 上圖 右邊圖 對應位置 對應起來即可。

//    //頂點座標
    public float pos[] = {
            -1.0f,  1.0f,
            -1.0f, -1.0f,
            1.0f, 1.0f,
            1.0f,  -1.0f,
    };


    public float coor[] = {
            0.0f , 0.0f,
            0.0f , 1.0f,
            1.0f , 0.0f,
            1.0f , 1.0f
    };

爲了正確的渲染我們的紋理,因此在映射的時候,將頂點座標的左上角,對應在紋理座標的左下角,即 左上對左下,右上對右下,,這樣紋理就可以 正確的渲染出來。

當然也可以通過,對其後的紋理進行旋轉,如左上對左下,右上對右下 後再將對應好的紋理映射座標旋轉 90 度(下面一節samplerExternalOES的紋理映射會講解到這種方法),就可以實現紋理的旋轉90度了。當然旋轉還可以利用矩陣來實現。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章