![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cocos2dx_openglES
文章平均质量分 78
大宅小涛
这个作者很懒,什么都没留下…
展开
-
矩阵的存储优先顺序
计算机存储空间是先后有序的,如何存储A[m*n]的m*n个元素是个问题,一般有两种:1、按行优先存储 :存成a11,a12,...,amn的顺序。 PASCAL, C/C++,, Python语言中,数组按行优先顺序存储。 行优先顺序推广到多维数组,可规定为先排最右的下标。2、按列优先存储存成a11,a21,...,amn的顺序。 FORT原创 2015-03-25 11:48:54 · 3419 阅读 · 0 评论 -
OpenGL超级宝典笔记五 - 基础Shader
1、基本着色器的架构顶点着色器:接收客户端输入的Attribute属性数据,有些计算后自己用于顶点变换,有些传给片段着色器。除此之外,顶点着色器还接受uniform数据,一般是变换矩阵。最后输出顶点的位置变换值。片段着色器:接收来自顶点着色器输出的纹理坐标和纹理等属性,另外也接收用于计算光照的光照颜色的uniform值,最后输出像素的颜色值。2、Shader的变量和数据原创 2015-05-18 14:37:56 · 2044 阅读 · 0 评论 -
OpenGL超级宝典笔记三 - 基础纹理1
纹理对象的使用:纹理图像数据的类型,图像数据的导入导出方式,纹理的使用过程:图像数据的加载,纹理参数的设置,纹理的绑定。一、图像数据的分类:位图图像和像素图像二、像素图像数据的包装:在OpenGL中:使用4字节的行对齐方式,每一行补全到4的倍数,使用glPixelStorei(pname,param)可以改变或者恢复像素的存储方式介绍常用的两组:内存缓冲区的压缩和解原创 2015-05-07 15:56:21 · 1287 阅读 · 0 评论 -
OpenGL超级宝典笔记二 - 基础变换
1、向量:点乘:float m3dDotProduce3(u,v):返回两个单位向量的余弦值叉乘:float m3dCrossProduct3(result,u,v):返回垂直于两个向量定义的平面的向量2、矩阵:OpenGL使用的是列优先排序的矩阵单位矩阵(对角线为1,其他为0):任何向量乘以一个单位矩阵都不会发生任何改变3、变换:最终获得的变换矩阵会应原创 2015-05-05 17:56:36 · 951 阅读 · 0 评论 -
OpenGL超级宝典笔记一 - 基础渲染
1、渲染中的双缓冲:使用但缓冲的时候,在渲染每一帧的绘图时,会对画板进行擦除然后在慢慢填充绘制,如果绘制时间过长的时候,就会出现闪烁的现象。为解决这个问题,所以引入双缓冲双缓冲相当于,在显示的画板中重新创建另外一个画板,绘制的过程在另外的画板进行,绘制完成之后,将显示的画板的内容直接替换成另外一个画板的内容。这样呈现的过程中就不会出现闪烁的问题,即使是绘制的过程比较慢,最多就是出现顿的现象原创 2015-05-04 12:22:35 · 1327 阅读 · 0 评论 -
Cocos2d-x3.2与OpenGL渲染总结Cocos2d-x3.2的渲染流程
最近几天,我都在学习如何在Cocos2d-x3.2中使用OpenGL来实现对图形的渲染。在网上也看到了很多好的文章,我在它们的基础上做了这次的我个人认为比较完整的总结。当你了解了Cocos2d-x3.2中对图形渲染的流程,你就会觉得要学会写自己的shader才是最重要的。 第一,渲染流程从2.x到3.x的变化。 在2.x中,渲染过程是通过递归渲染树(Rendering tr转载 2015-04-28 16:58:15 · 460 阅读 · 0 评论 -
双缓冲绘图以及OpenGL中的双缓冲支持
双缓冲绘图技术:双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。当数据量很大时,绘图可能需要几秒钟甚至更长的时间,而且有时还会出现闪烁现象,为了解决这些问题,可采用双缓冲技术来绘图。双缓冲实现过程如下:1、在内存中创建与画布一致的缓冲区2、在缓冲区画图3、将缓冲区位原创 2015-05-03 12:15:22 · 2522 阅读 · 0 评论 -
OpenGL超级宝典笔记四 - 基础纹理2
一、使用MipMap贴图(主要是应用在纹理缩小过滤中)优点:防止当纹理缩小太大的时候,出现闪烁的问题提高性能,需要缩小的时候就不加载大内存的纹理缺点:需要额外的内存作为代价组成:由一系列缩小的纹理图像组成,子层是父层的1/4过滤类型:NEAREST快速,LINEAR效果好GL_NEAREST_MINMAP_NEAREST选择最邻近Mip层并执行邻近过滤GL_原创 2015-05-08 15:25:56 · 912 阅读 · 0 评论 -
HTML5触摸事件(touchstart、touchmove和touchend)
HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。 一开始触摸事件touchstart、touchmove和touchend是iOs版Safari浏览器为了向开发人员转载 2015-04-08 11:39:22 · 778 阅读 · 0 评论 -
cocos2dx 3.x中的OpenGL(三)-BATCH_COMMAND
转载请注明原文地址http://blog.csdn.net/bill_man上一篇介绍了QUAD_COMMAND渲染命令,顺带介绍了VAO和VBO,这一篇介绍批处理渲染命令BatchCommand,批处理命令的处理在Render中比较简单[cpp] view plaincopyelse if(commandType == Render转载 2015-03-16 10:08:39 · 647 阅读 · 0 评论 -
cocos2dx 3.x中的OpenGL(二)-解析QUAD_COMMAND
上一篇文章介绍了cocos2d-x的基本渲染结构,这篇顺着之前的渲染结构介绍渲染命令QUAD_COMMAND命令的部分,通过这部分的函数,学习opengl处理图片渲染的方法,首先介绍这节需要涉及到的基本概念VAO和VBO。VAO和VBO: 顶点数组对象(Vertex Array Object 即VAO)是一个包含一个或数个顶点缓冲区对象(Vertex Buffer Obje转载 2015-03-16 10:07:08 · 1121 阅读 · 0 评论 -
cocos2dx 3.x中的OpenGL(一)-Cocos2d-x渲染结构
1111转载 2015-03-16 09:59:38 · 1152 阅读 · 0 评论 -
Cocos2Dx之渲染流程
渲染时一个游戏引擎最重要的部分。渲染的效率决定了游戏的流畅度清晰度,跟前面的介绍的内容相比,渲染是最具技术含量的事情,也是一个需要很多专业知识的事情。这里我们有这个机会,来学习下一个游戏引擎的渲染是怎么做的。Cocos2Dx是一个2D框架,可以简单地看做z轴在一个平面上,Cocos2Dx采用的OpenGL技术决定了往3D渲染上面走也不是不行的。最新3.2版本已经支持3D骨骼动画的CCSprite。转载 2015-03-16 13:17:21 · 1026 阅读 · 1 评论 -
Cocos2d-x v3.0 渲染流水线 路线图
为什么(愿景)现在Cocos2d渲染机制不错,但慢慢开始显得有点跟不上潮流了。而且,它对于现代平板和手机上流行的多核CPU,不能很好地利用它们的优势。所以我们想要设计Cocos渲染器,使它性能更好、更优雅、更具有扩展性,更灵活,但保持易用性。我们也想要保留Cocos2d原有或是和原有类似的API,那么使用Cocos2d的开发者会感到很舒服,不需要因为底层的改动而烦恼。转载 2015-03-16 10:11:34 · 1068 阅读 · 0 评论 -
OpenGLES着色器和编程
【着色器和项目】 使用着色器渲染有两个基本的对象类型你需要去创建:着色器对象和项目对象。着色器对象是包含单个着色器的物体。源码输入着色器对象,着色器对象被编辑为目标格式(.obj文件)。完成后着色器对象能链接到项目对象上,一个项目可有多个着色器。opengles一个项目中有一个顶点着色器和一个片段着色器(不能多不能少),然后链接成可执行文件,最后能用来渲染。 为转载 2015-05-25 18:02:33 · 1124 阅读 · 0 评论