OpenGL ES方向解惑

顶点坐标如图3-2定义

计算机图像、android屏幕坐标如图7-4所示

二维纹理坐标方向如图7-3定义

1、2D纹理贴图坐标

//顶点的坐标系

private static float TEXTURE_COORDS[] = {

//Order of coordinates: X, Y,S,T

-1.0f, 1.0f, 0.0f, 0.0f, //原点

-1.0f, -1.0f, 0.0f, 1.0f, //bottom left

1.0f, 1.0f, 1.0f, 0.0f, // top right

1.0f, -1.0f, 1.0f, 1.0f, // bottom right

};

这里将顶点坐标和纹理坐标写到了一个一维数组里面,其中X、Y表示顶点坐标,S、T表示纹理坐标。

也可以分开表示

//顶点坐标

float[] vertex = new float[]{

-1.0f, 1.0f,

-1.0f, -1.0f,

1.0f, 1.0f,

1.0f, -1.0f

};

//纹理坐标数据

float[] text = {

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

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

};

为什么这么匹配呢,根据图3-2和图7-4可以得出openGL顶点的坐标方向如下图1-1所示

对比图1-1和图7-3,只要按箭头方向将原点、y轴加1,x轴加1,x和y轴同时加1四个点对应起来就行。

2、android相机摄像头坐标

顶点坐标不变

float[] vertex = new float[]{

-1.0f, 1.0f,

-1.0f, -1.0f,

1.0f, 1.0f,

1.0f, -1.0f

};

 

// 后置摄像头使用的纹理坐标(顺时针旋转90度)

float[] text_back = {

0.0f, 1.0f,

1.0f, 1.0f,

0.0f, 0.0f,

1.0f, 0.0f,

};

// 前置摄像头使用的纹理坐标(顺时针旋转270度然后纵坐标取反)

float[] text_front = {

1f,1f ,

0f,1f ,

1f,0f ,

0f,0f ,

};

参考:

android平台下OpenGL ES 3.0使用GLSurfaceView对相机Camera预览实时处理

OpenGL ES

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值