Android中涉及OpenGL坐標(biāo)知識

在使用OpenGL ES2.0渲染圖像到時(shí)候,經(jīng)常需要跟坐標(biāo)系打交道,由于目前主要還是研究二維的坐標(biāo),所有我們就先忽略三圍的z軸。
1、安卓屏幕坐標(biāo)系,如下圖:


image.png

2、OpenGL中頂點(diǎn)坐標(biāo)系,如下圖:


image.png

3、OpenGL中紋理坐標(biāo)系,如下圖:
image.png

利用上面三個(gè)坐標(biāo)系,簡單實(shí)現(xiàn)一張圖片的紋理坐標(biāo)和頂點(diǎn)坐標(biāo)。

因?yàn)镺penGL ES2.0,只能支持繪制點(diǎn)、線、和三角形,所有其余的一些簡單形狀需要利用前面的幾種去拼接。


image.png

如上圖,我們需要拼接成一個(gè)矩形需要使用,abc,bcd連個(gè)三個(gè)形去完成。
所以就能得到頂點(diǎn)坐標(biāo)為:
//頂點(diǎn)數(shù)據(jù)
private float[] vertexData = {
        -1f, 1f,
        -1f, -1f,
        1f, 1f,
        -1f, -1f,
        1f, 1f,
        1f, -1f

};

紋理坐標(biāo)是:

//紋理坐標(biāo)
private final float[] textureData = {

        1f, 0,
        1, 1,
        0f, 0f,
        1, 1,
        0f, 0f,
        0f, 1f

};

總結(jié)下,紋理坐標(biāo)是通過頂點(diǎn)坐標(biāo)的位置,在紋理坐標(biāo)中找到該點(diǎn)斜對角的點(diǎn)坐標(biāo)即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容