在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理。学校时候不知道OpenGL的重要性,怕晦涩的语法,没有跟老师学习OpenGL的环境配置,如今只能利用cocos2dx 2.2.3 配置好的环境学习OpenGL ES。源代码来自《cocos2d-x高级开发教程》,注释是本人的。

要形成屏幕的像素也是个矩形(或者圆形区域)
所以我们只要记住,MaxS是纹理宽度除以对于的屏幕像素点的宽度,也就是纹理铺放在x轴像素点个数,对应为纹理坐标的x轴
MaxT是纹理高度度除以对于的屏幕像素点高度,也就是<span style="font-family: Arial, Helvetica, sans-serif;">纹理铺放在x轴像素点个数,对应为纹理坐标的y轴

这篇博文的重点再有已有opengl入门的情况下,了解CCTexture2D的参数意思就可以随意绘制纹理了。

void HelloWorld::draw()
{//opengl世界坐标轴的读取和绘制默认是逆时针顺序static GLfloat vertext[] = {0.0f,0.0f,0.0f,480.0f,0.0f,0.0f,0.0f,320.0f,0.0f,480.0f,320.0f,0.0f};//但是纹理的读取也是逆时针,只是EG是用三角形作为基础图形去绘制其他图形,方向先绘制下三角,再绘制上三角!!!之前这里搞错了。希望大家别被我误导了static GLfloat coord[] = {0.0f,1.0f,1.0f,1.0f,0.0f,0.0f,1.0f,0.0f};static GLfloat colors[] = {1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f,};
<span style="white-space:pre"> </span>
假设换成灰度图的话,float gray = r*0.3+g*0.59+b*0.11;将上诉的1.0f全部换成gray,就是相应的灰度图了
 //初始化纹理,即将纹理映射至openGL ES的世界坐标系中static CCTexture2D * texture2d = CCTextureCache::sharedTextureCache()->addImage("HelloWorld.png");coord[2] = coord[6] = texture2d->getMaxS();coord[1] = coord[3] = texture2d->getMaxT();
        //设置着色器//开启着色器,坐标、颜色、纹理ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex);//目前没看懂具体执行了的use()操作,启用可编程管线??texture2d->getShaderProgram()->use();//在2.2.3中setUniformsForBuiltins 替换掉 setUniformForModelViewPorjectionMatrix(),//设置统一属性,即M模型、V视图、P投影,完成从Opengl的世界坐标到屏幕坐标的映射texture2d->getShaderProgram()->setUniformsForBuiltins();//绑定纹理,texture2d->getName() 纹理在内存或显存中存储的下标(应该是下标,我没看纹理加载,还不了解GPU和CPU的通信)glBindTexture(GL_TEXTURE_2D,texture2d->getName());//设置顶点,每个顶点向量维数为3,数据类型为GL_FLOAT,不归一化(真实物理坐标不能归一化),两个个顶点间的偏移量为0,glVertexAttribPointer(kCCVertexAttrib_Position,3,GL_FLOAT,GL_FALSE,0,vertext);glVertexAttribPointer(kCCVertexAttrib_TexCoords,2,GL_FLOAT,GL_FALSE,0,coord);glVertexAttribPointer(kCCVertexAttrib_Color,4,GL_FLOAT,GL_FALSE,0,colors);//绘图,从下标0开始,有4个顶点glDrawArrays(GL_TRIANGLE_STRIP,0,4);}

重载void draw (void) 即可。可能暂时停止更新博客,先主要着手于游戏实现,而不是分享。

下面是贴转载内容:http://blog.csdn.net/wusheng520/article/details/8109284

CCTexture2D的成员变量

m_tContentSize    图片的原始大小

m_uPixelsWide    大于等于原始宽度的最接近原始宽度的2的幂次方

m_uPixelsHeight    大于等于原始高度的最接近原始高度的2的幂次方

m_fMaxS     m_tContentSize .x / m_uPixelsWide

m_fMaxT     m_tContentSize .y / m_uPixelsHeight

2.x终于照着教程,成功使用OpenGL ES 绘制纹理贴图,增加了灰度图相关推荐

  1. 2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图

    在之前成功绘制变色的几何图形之后,今天利用Openg ES的可编程管线绘制出第一张纹理. 学校时候不知道OpenGL的重要性,怕晦涩的语法.没有跟老师学习OpenGL的环境配置,现在仅仅能利用coco ...

  2. 【Qt for Android】OpenGL ES 绘制彩色立方体

    Qt 内置对OpenGL ES的支持.选用Qt进行OpenGL ES的开发是很方便的,很多辅助类都已经具备.从Qt 5.0開始添加了一个QWindow类,该类既能够使用OpenGL绘制3D图形,也能够 ...

  3. OpenGL ES:绘制函数glDrawArrays 和 glDrawElements 的区别

    from:https://www.jianshu.com/p/4d02c2cd21ea 写文章注册登录 首页 下载App OpenGL ES:绘制函数glDrawArrays 和 glDrawElem ...

  4. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  5. 安卓学习笔记37:利用OpenGL ES绘制平面图形

    文章目录 零.学习目标 一.OpenGL概述 二.了解三维直角坐标系 三.案例演示 - 绘制三角形 (一)运行效果 (二)实现步骤 1.创建安卓应用[DrawTriangle] 2.建模:创建三角形类 ...

  6. Android Studio OpenGL ES绘制三棱锥/四面体的多纹理贴图 每个面使用一张图片渲染

    本文参考了王刚的<疯狂Android讲义(第3版)>P554-P559 要求:利用OpenGL ES绘制一个三棱锥,并对每个面进行纹理贴图,每个面使用不同的图片进行渲染. 环境:Andro ...

  7. OpenGL ES 绘制图片

    流程 1.编写着色器(顶点着色器和片元着色器) 2.设置顶点.纹理坐标 3.加载着色器 4.创建纹理 5.渲染图片 OpenGL ES 中的顶点坐标与纹理坐标 绘制四边形 规定:图形环绕方向必须一致 ...

  8. opengl android 纹理贴图 代码,Android 使用opengl es的纹理贴图白屏问题请教。

    各位大侠好: 我在使用open gl es的做显示的时候,发现一个问题,请各位帮助一下,谢谢. 环境:opengl es 1.x,2D的模式显示纹理图片. 在LG-P990,HTC-C510E上显示附 ...

  9. android opengl es 绘制余弦曲线,Android OpenGL ES - 绘制线、面

    前言 之前一篇文章讲了如何绘制点,所谓两点成线,三点成面.一个立体图形就是由很多面组成,在OpenGL ES中,面特指一个三角形. 绘制调用glDrawArrays(int mode, int fir ...

最新文章

  1. 无法进入一个空框_win10电脑开机进入不了系统如何解决?
  2. springwebflux 页面_Spring WebFlux 入门
  3. python入门新手项目-新手零基础入门Python项目实战
  4. VLC-DSS搭建直播系统中链路断开影响测试
  5. Flutter 1.17 | 2020 首个稳定版发布!
  6. 济南计算机机械工程学校,济南电子机械工程学校
  7. java.util接口_函数接口– Java 8中java.util.function包中的函数接口
  8. 2015年创业中遇到的技术问题:141-150
  9. tensor.view(*shape) 函数
  10. 邮件代理发送功能更新和Exchange 6月份补丁更新提示
  11. Tomcat开发技术之与HTTP服务器的集成
  12. 12月22号至27号进度报告
  13. meta分析stata教程
  14. 概念模型与E-R模型
  15. Mac顶部菜单栏(Menubar)卡死
  16. 【贪心】Songs Compression
  17. android8.1 BLE从设备开发MAC地址随机问题
  18. MES系统的应用(中)
  19. RabbitMQ管理界面基本操作
  20. 计算机系统应用的书,基于个性化图书推荐的协同过滤算法

热门文章

  1. Java开发游戏脚本(第五卷)
  2. 关于分类模型评估指标的理解
  3. Linux的公平调度
  4. JMeter 基本身份验证
  5. 论文“Matrix Formulation for Minimum Response of Undamped Structures”参考代码
  6. 剑指offer 专项突破版 74、合并区间
  7. 多线程实例之售卖车票
  8. android 自定义拍照模糊,Android自定义相机拍照模糊处理
  9. 计算机能辅修经济学吗,现在大二本科在读,计算机系,想考西安交大经济学研究生,但不知如何着手…请高人指点指点...
  10. 如何选择合适的电烙铁