OpenGL ES 3. 顶点坐标 纹理坐标_离屏顶点坐标与纹理坐标-程序员宅基地

技术标签: OpenGL 基础  

大家好,接下来将为大家介绍OpenGL ES 3. 顶点坐标 纹理坐标。

上一节我们介绍了OpenGL ES 3. 坐标系及坐标变换。

了解坐标系是渲染绘制图形的基础。在实际OpenGL的开发中,有世界坐标、纹理坐标、屏幕坐标等几种。

1、顶点坐标

首先需要明确的是,OpenGL使用的是笛卡尔右手坐标系,如下图所示。

分X Y Z 3个轴,X轴朝右为正,Y轴朝上为正,Z轴垂直屏幕朝外为正。X Y Z 3个轴的最大与最小值为 1 和 -1,这是经过归一化处理的。

 

2、屏幕坐标

屏幕坐标系,就是应用在设备屏幕上的坐标系,也就是图形最终显示的地方。

X轴朝右为正,Y轴朝下为正。

 

3、纹理坐标

纹理坐标系如下图所示。

 

原点在左下角,X轴朝右为正,Y轴朝上为正,X Y 轴的最大与最小值为 0 和 1,这是经过归一化处理的。

 

4、号外注意

按照如下的顶点坐标,纹理坐标进行纹理映射(下节内容介绍),得到的结果将会是倒立的(上下颠倒)。

//顶点坐标
GLfloat vertices[12] = {
    -1.0f,  1.0f, 0.0f,     // top left
    -1.0f, -1.0f, 0.0f,     // bottom left
    1.0f, -1.0f, 0.0f,      // bottom right
    1.0f,  1.0f, 0.0f       // top right
};

//纹理坐标
GLfloat texCoor[16] = {
    0.0f, 1.0f, 0.0f, 1.0f,
    0.0f, 0.0f, 0.0f, 1.0f,
    1.0f, 0.0f, 0.0f, 1.0f,
    1.0f, 1.0f, 0.0f, 1.0f
};

 

为了得到正立的渲染结果,可以对纹理坐标进行上下翻转,再用于渲染。

也即:Y正立 = 1 - Y倒立

//顶点坐标
GLfloat vertices[12] = {
    -1.0f,  1.0f, 0.0f,     // top left
    -1.0f, -1.0f, 0.0f,     // bottom left
    1.0f, -1.0f, 0.0f,      // bottom right
    1.0f,  1.0f, 0.0f       // top right
};

//纹理坐标
GLfloat texCoor[16] = { 
    0.0f, 0.0f, 0.0f, 1.0f,
    0.0f, 1.0f, 0.0f, 1.0f,
    1.0f, 1.0f, 0.0f, 1.0f,
    1.0f, 0.0f, 0.0f, 1.0f
};

 

最后,欢迎大家一起交流学习:微信:liaosy666 ; QQ:2209115372 。

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010281924/article/details/105305991

智能推荐

简单c语言程序例子与运行结果图,C语言程序第一次作业-程序员宅基地

文章浏览阅读1.1k次。(一)实验总结1. 求圆面积和周长(1)题目输入圆的半径,计算圆的周长和面积。(2)流程图 (3)测试数据及运行结果测试数据1:r=2运行结果: (4)实验分析没有问题2.判断闰年(1)题目输入一个四位年份,判断其是否是闰年。闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。(2)流程图 (3)测试数据及运行结果测试数据1:y=1980运行结果: (4)实验分析没错误3.求..._程序运行结果与执行结果图片

[杂七杂八]Pytorch+tensorboard error:unpack require a string argument of length 4-程序员宅基地

文章浏览阅读128次。error:unpack require a string argument of length 4decodeerror: error parsing message这个错误是环境版本问题,我用:python 2.7pytorch 0.4.0tensorboardx 1.9tensorboard 2.0因此,pip uninstall tensorboardpip install tensorboard==1.9.0搞定PS:这些小框架和cudnn的版本、各个库之间的版本配合往往藏着坑

【基于MATLAB的数字图像处理】大作业·综合图像处理平台_图像综合处理-程序员宅基地

文章浏览阅读1.1w次,点赞23次,收藏272次。我们获得的图像难免会伴随着很多的噪声,有时会使图像质量下降;有时会干扰我们的视觉,使拍摄出的图像效果不满意;有时甚至会出现一些特殊情况,遮挡住人脸或重要物体。这时我们需要对获得的图像进行一些图像处理,以使我们的图像观感更好,图像质量更优质。本平台致力于将多种图像处理功能集成于一体,方便用户直观快捷的对图像进行操作处理,快速地获得一幅较为优质的图像;另外,本平台亦可作为教育教学软件使用,教师可以直观的为学生展示各种图像操作的变换的效果,也可进一步延伸,展示一些偏向于应用和中级图像处理的图像操作。_图像综合处理

C/C++ 回调函数 callback 异步编程_c++异步回调-程序员宅基地

文章浏览阅读785次,点赞5次,收藏12次。C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)-程序员宅基地。动态函数指针free报错_编程语言-CSDN问答。_c++异步回调

CTFshow web入门web171-sql1_ctfshowweb171-程序员宅基地

文章浏览阅读102次。说明到3就没有了,直接进行union查询 (此时将1改为-1)本题考察sql注入联合查询union select。继续到1‘ order by 4--+首先我们试着注入1‘ and 1=1’继续到1‘ order by 3--+回显异常,说明存在注入。_ctfshowweb171

软件测试工程师面试基础题(应届生和测试小菜必备)最基础的面试题_软件测试基础知识面试题-程序员宅基地

文章浏览阅读6.7k次,点赞18次,收藏214次。​ 答:(美国电器和电子工程师协会)IEEE提出的软件工程标准术语,使用人工和自动手段来运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或是弄清预期结果与实 际结果之间的差别。简单定义:找出软件中的BUG答:在软件开发过程中容易出现缺乏有效沟通,软件复杂,编程错误,需求不断变更,时间的压力,缺乏文档的代码,软件开发工具和人员的自大等原因引发的错误,通过测试能够找出其中的错误,解决错误,从而提高软件的质量答:计划工作内容需求分析工作内容 对开发的软件进行详细的定义,由需求分析人员和用户共同讨_软件测试基础知识面试题

随便推点

git上代码整体拉到vscode上步骤__git项目更新到本地__vscode更新项目至git_vscodegit拉取最新代码到本地-程序员宅基地

文章浏览阅读5.3k次,点赞3次,收藏18次。git上代码整体拉到vscode上步骤1.将代码克隆到本地2.终端cd到项目的根目录(在其他分支写项目)git项目更新到本地步骤方法一:方法二(好用)vscode 上传本地更改文件至git上方法一:使用命令提交方法二:直接在vscode界面提交(推荐,简单方便)_vscodegit拉取最新代码到本地

Ubuntu20.04安装gtsm_toolbox_gstam anzhuang-程序员宅基地

文章浏览阅读779次。本文详细介绍了在ubuntu20.04系统中安装gtsam-4.0.3 realsease版本的matlab gtsam_toobox库的流程,希望能够帮助更多读者减少安装过程遇到的问题。_gstam anzhuang

Dev-C++5.16安装包下载_devc++5.16下载-程序员宅基地

文章浏览阅读1.5k次。喜欢英文来英文的~_devc++5.16下载

【linux指南--命令大全】-程序员宅基地

文章浏览阅读1.1k次。系统的学习linux常用的命令,命令很全所以篇幅很长,可以作为你查阅命令的手册

【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期_servlet层-程序员宅基地

文章浏览阅读1.4w次,点赞39次,收藏226次。一、Servlet简介1、Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。2、Servlet定义: A servlet is a small Java program that runs within a Web server_servlet层

Mybatis generator 1.4.x 入门教程--转载_sqlprovideradapter-程序员宅基地

文章浏览阅读1.2k次。Mybatis generator 1.4.x 入门教程一、前言​ 最近因为公司开了新的项目,所以在构建骨架的时候发现mybatis最新的版本已经更新到了1.4.0了,尝试了一下,比起之前的mybatis版本,有了更好的优化,用上了lamada表达式,还支持动态sql查询,所以在这里安利一波,因为之前我用的Laravel ORM,所以比较习惯使用这种lamada表达式来查询,可能之前用习惯了以前的查询方式的二、官方文档地址官方文档地址三、集成 mybatis Generator 1.4._sqlprovideradapter

推荐文章

热门文章

相关标签