OpenGLES
String_Kun
主攻3D方向的小程序员~
展开
-
对DrawCall的理解
drawcall是CPU对底层图形绘制接口的调用命令GPU执行渲染操作,渲染流程采用流水线实现,CPU和GPU并行工作,它们之间通过命令缓冲区连接,CPU向其中发送渲染命令,GPU接收并执行对应的渲染命令。这里drawcall影响绘制的原因主要是因为每次绘制时,CPU都需要调用drawcall而每个drawcall都需要很多准备工作,检测渲染状态、提交渲染数据、提交渲染状态。而GPU本身具有很原创 2017-06-19 10:25:06 · 16878 阅读 · 0 评论 -
OpenGL ES着色器语言之内建函数
OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。 内建函数基本上可以分为一下三类:(1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。(2)它们展示了一些可以常简单的写入的繁琐操作(clamp, m转载 2017-07-01 10:49:56 · 734 阅读 · 0 评论 -
对着色器代码与纹理图优化的一些体会
在以前的项目中写了这么多着色器,以及最近看一些书籍,对着色器的优化有了一些自己的体会,在这里总结一下。原创 2017-06-30 20:07:47 · 1359 阅读 · 0 评论 -
对OpenGLES中VBO与VAO的理解
在OpenGLES中,VBO与VAO都是一个重要的概念,以前也在书上看到过这些概念,在有了自己的理解之后对其做以总结。 VBO的全称 Vertex Buffer Object顶点缓冲区对象,这是在Opengles2.0以后一个可使用的功能。如果不使用VBO则是将顶点、纹理坐标等数据存放在内存当中,在每次绘制之前通过通IO将其传递到显存当中,这样做的缺点是显而易见的,每次传递相同的原创 2017-07-11 20:53:12 · 2469 阅读 · 0 评论 -
对OpenGLES2.0渲染管线的理解
在学习OpenGLES时,每一本书开始都会向我们介绍渲染管线,当我在开始学习它时,看这些东西完全不明白在说什么,经过一段时间对3D程序的开发和研究现在对渲染管线也有了一些自己的理解。由于WebGL是基于OpenGLES2.0实现的一套JavaScript封装API(其中也有一些特有的部分),那么就先聊聊我对OpenGLES2.0渲染管线的理解吧。原创 2017-07-11 11:03:31 · 1734 阅读 · 0 评论 -
对OpenGLES中的空间变换的理解
今天翻看以前用Cocos2d-x写的VR小游戏的代码,有一个模块功能是判断固定在屏幕中心的一条射线是否触碰到了其他3D物体。这套代码原来是从学长写的游戏中直接扒出来的,没有细细研究,今天正好看到了,就借此总结一下在OpenGLES中空间的转换。 在OpenGLES中,物体会在五个空间中变换,如图所示:(图片来自网络) 1.物体空间:原创 2017-09-13 20:28:16 · 944 阅读 · 0 评论