Posts

OpenGL ES 2.0 Programming Guide 术语

08 Jan 2016

作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准

前言

本文列举了《OpenGL ES 2.0 Programming Guide》书中的一些术语的含义。

Rendering Related

Words Meaning
obscure 掩盖,“遮挡”
   
   
   
   
  • mitigate

参考


在这里也能看到这篇文章:github博客, CSDN博客, 欢迎访问 ...

阅读全文 ...


【C++ OpenGL ES 2.0编程笔记】1: OpenGL ES 2.0 渲染管线和EGL

07 Jan 2016

作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准

前言

本文介绍了OpenGL ES 2.0的渲染管线:Graphics Pipeline和作为OpenGL API和本地窗口之间接口的EGL.

渲染管线总览 Graphics Pipeline

es2_pipeline.png ...

阅读全文 ...


【个人吐槽慎入】:如果现在不开始那就很可能永远都不会开始

07 Jan 2016

完美主义之弊

你是否经常碰到这种情况,想做一件事情,但是觉得自己还没考虑清楚,虽然可以开始做,但是做出来的效果肯定很难让自己满意,甚至很有可能被别人笑话,或者说自己很害怕失败,怕自己完成不了这个事情。 “我想开始写作,写博客,但是我的文笔好差,还是先多读点东西,看别人怎么写的然后我再开始吧。” “我想总结一下网络编程中的某个技术点,但是我可能总结的很不到位,我了解的还不够深入,写出来在行家眼里会被笑话,还是再学习一段时间再说吧。” “我想加入公司的篮球社团,跟大家一起玩、锻炼身体,可是我的技术好差,带球都会丢,先别去丢人了,自己练练先。” …… 于是你就不开始,你想再酝酿一下,你想再准备一下,这时候其它的事情也在消耗着你的精力,没开始的那件事就被一拖再拖,即使不是最终被你彻底遗忘,你在想起这件事的时候还是会觉得没把握,还是不能开始,因为放了那么久甚至没有刚想做它的时候那么熟悉它,这件事就这样被你无限期的往后放,可能就永远没有了开始的机会。问题的根源在哪里?谁说刚开始做就一定要做好了,你对自己的要求太高了,人和事情不是一开始就是完美的。 ...

阅读全文 ...


【C++ OpenGL ES 2.0编程笔记】8: 使用VBO和IBO绘制立方体

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完成一个正方体的绘制。

效果图

...

阅读全文 ...


【C++ OpenGL ES 2.0编程笔记】7: alpha测试和混合

04 Jan 2016

作者是现在对相关知识理解还不是很深入,后续会不断完善。因此文中内容仅供参考,具体的知识点请以OpenGL的官方文档为准

前言

混合发生在片段着色之后。 本文介绍了OpenGL ES 2.0 中常用的多级纹理贴图技术,mipmap, 给出了一个使用mipmap的3D场景示例。
在三维计算机图形的贴图渲染中有一个常用的技术被称为Mipmapping。为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map 或者 mipmap。这个技术在三维游戏中被非常广泛的使用。“MIP”来自于拉丁语 multum in parvo 的首字母,意思是“放置很多东西的小空间”。Mipmap 需要占用一定的内存空间,同时也遵循小波压缩规则 (wavelet compression)
mipmap的常见使用场景是,在一个采用透视投影的三维场景中,我们看到的东西是近大远小的,对于同一种东西,比如地板,近处使用像素尺寸较大的纹理,远处的使用像素较小的纹理,这样就节省了渲染的工作量。通过使用OpenGL的glTexImage2D函数可以实现多级纹理的加载,它的第二个参数就是纹理的级别。

效果图

...

阅读全文 ...