15 Jan 2016
#前言
本文介绍了cocos2d-x中自带的shader代码, 及其在引擎中的使用情况。作者的引擎版本是2.2.3,在这个版本的cocos中有9种自带的shader,详情请见下文。
自带的shaders
cocos2d-x自带的shaders定义在
cocos2dx\shaders\ccShaders.h
和
cocos2dx\shaders\ccShaders.cpp
这对文件中,下面是
ccShaders.h
的内容:
每个自带的shader源代码都被定义成一个字符串: const GLchar*类型的变量, 如下:
...
阅读全文 ...
08 Jan 2016
作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准
前言
本文列举了《OpenGL ES 2.0 Programming Guide》书中的一些术语的含义。
Words |
Meaning |
obscure |
掩盖,“遮挡” |
|
|
|
|
|
|
|
|
参考
在这里也能看到这篇文章:github博客, CSDN博客, 欢迎访问
...
阅读全文 ...
07 Jan 2016
作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准
前言
本文介绍了OpenGL ES 2.0的渲染管线:Graphics Pipeline和作为OpenGL API和本地窗口之间接口的EGL.
渲染管线总览 Graphics Pipeline
...
阅读全文 ...
07 Jan 2016
完美主义之弊
你是否经常碰到这种情况,想做一件事情,但是觉得自己还没考虑清楚,虽然可以开始做,但是做出来的效果肯定很难让自己满意,甚至很有可能被别人笑话,或者说自己很害怕失败,怕自己完成不了这个事情。
“我想开始写作,写博客,但是我的文笔好差,还是先多读点东西,看别人怎么写的然后我再开始吧。”
“我想总结一下网络编程中的某个技术点,但是我可能总结的很不到位,我了解的还不够深入,写出来在行家眼里会被笑话,还是再学习一段时间再说吧。”
“我想加入公司的篮球社团,跟大家一起玩、锻炼身体,可是我的技术好差,带球都会丢,先别去丢人了,自己练练先。”
……
于是你就不开始,你想再酝酿一下,你想再准备一下,这时候其它的事情也在消耗着你的精力,没开始的那件事就被一拖再拖,即使不是最终被你彻底遗忘,你在想起这件事的时候还是会觉得没把握,还是不能开始,因为放了那么久甚至没有刚想做它的时候那么熟悉它,这件事就这样被你无限期的往后放,可能就永远没有了开始的机会。问题的根源在哪里?谁说刚开始做就一定要做好了,你对自己的要求太高了,人和事情不是一开始就是完美的。
...
阅读全文 ...
05 Jan 2016
作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准
前言
本文介绍了OpenGL ES 2.0 中的顶点缓冲对象(VBO: Vertex Buffer Object)和索引缓冲对象(IBO: Indice Buffer Object)的用法,
在之前的文章中图元的绘制没用使用VBO, 要绘制的顶点数据是以顶点数组的形式保存在客户端的内存中的,在每次调用
glDrawArrays
或者
glDrawElements
的时候,顶点数组都会被从客户端内存copy到显卡内存。
VBO的作用,就是把这份每次都要copy的顶点数组缓存在显卡的内存中,VBO使得我可以直接在显卡内存中分配并缓存顶点数据。这样就避免了每次调用draw的时候的copy操作,从而提高了渲染性能同时降低了内存带宽和设备的电量消耗。
IBO跟VBO的原理类似,只不过IBO是缓存了VBO绘制时候的Indices.
根据OpenGL ES 2.0 “Golden Book”的建议,要想获得最好的性能,就要尽可能使用VBO和IBO来完成绘制任务。
下面以一个具体的例子来展示如何使用VBO和IBO完成一个正方体的绘制。
效果图
...
阅读全文 ...