
OpenGLES
Android OpenGLES开发笔记
vonchenchen1
长期负责代码拷贝
展开
-
OpenGLES入门笔记 :OpenGLES光照基础总结1
背景最近开始入门OpenGLES,学习光照相关的知识。其中遇到不少问题,走了不少弯路,下面简要总结一下最近的问题以及自己的一些认识,有不正确的地方希望大家指正。光照的原理首先说明的一点是这里我们主要讨论OpenGLES2.0下的光照。学习光照之前,我们已经做过一些场景,虽然这其中并没有涉及到光的概念,但是我们依然能看到带颜色物体,以及各种图片纹理。所以可以确定的是,没有光照我们依然能看到东西,而不是原创 2016-07-10 00:09:35 · 2137 阅读 · 1 评论 -
OpenGLES入门笔记 :OpenGLES光照基础总结2 获取法向量
背景上一篇我们谈了光照的基本知识,其中漫反射和镜面反射都涉及到了光照面的法线。如果对于天空盒等简单的物体,我们手工指定了法向量,但是如果对于一个复杂的物体,我们没办法为每个面指定法向量了。下面我们就来总结如何找到每个面的法向量。原理 如图,此时我们把ABCD当做一个平面,此时向量AC和向量BD可以确定一个平面。蓝色箭头就代表ABCD平面的法线,也就是我们要求的法向量。 通过点ABCD的坐标,我们原创 2016-07-10 23:26:15 · 2013 阅读 · 0 评论 -
OpenGLES入门笔记 :OpenGLES光照基础总结3 点光源的实现
背景前两篇文章谈了光照的原理,本文记录了在了解了原理后调试代码的过程及遇到的一些问题和想法,实现主要参考了红宝书上点光源着色器的代码。需求是这样的,我们现在要实现一个点光源,让这个点光源照亮天空盒的表面。实现效果如下图。图中红色的小灯笼代表光源的位置,它可以照亮近处的天空盒,由于天空盒的是中间凸起的,所以近处天空盒的边缘是无法被照亮的。而远处天空盒的其他面也被照亮了。我们可以在天空盒空间中任意移动红原创 2016-07-15 19:33:53 · 1890 阅读 · 1 评论 -
OpenGLES入门笔记 :OpenGLES光照基础总结4 光照的顶点计算与片元计算
背景随着对光照相关shader的学习,发现前面很多知识理解的并不正确。下面记录一下前段时间关于光照颜色插值的计算发现的问题。片元中计算光照先看一张效果图 这是我们使用片元着色器进行光照计算得出的效果。在这里我们对每个片元进行光照计算,也就是说每个点与光源的距离和角度我们都会计算,并为之赋一个准确值。于是就形成了上图的光照效果,这种方式可以比较精准地反应光照,但是计算量巨大,如果不对多光源进行特原创 2016-07-30 18:58:11 · 1565 阅读 · 0 评论 -
OpenGLES入门笔记:Rajawali学习(2)场景绘制基本流程
背景上一篇文章中我们简单体验了一下Rajawali的基本功能,现在我们来具体看一下这些物体是如何封装,最终调用GLES 绘制的。上一篇中通过阅读代码我们发现Rajawali的绘制也是类似于Surface和Renderer的机制,Surface用于最终的呈现,Renderer用于渲染图形。实现SurfaceISurface这个接口定义了Surface中的基本功能,实现了它才算是一个基本的Surface原创 2016-08-15 23:38:55 · 2819 阅读 · 0 评论 -
OpenGLES入门笔记:Rajawali学习(3)模型绘制的基本流程
背景我们在前面讨论了Scane相关的内容,这一篇文章中我们会讨论一下场景中物体的绘制,其中主要涉及了ATransformable3D,Object3D,Material三个对象,现在让我们来看看它们是怎么把物体绘制到Opengl中的。实现IGraphNodeMember视图中的物体必须实现这个接口/** * Sets the node that this member is contained i原创 2016-08-17 01:13:51 · 4043 阅读 · 2 评论 -
OpenGLES入门笔记:Rajawali学习(3.1)球体的绘制
背景上一篇文章我们了解了Object3D类绘制3D模型的基本流程,现在我们使用一个实例来说明如何自定义一个基本的几何体模型。此处我们分析一下Rajawali中球体的实现,作为上一篇文章的补充说明。实现球型物体Sphere继承了Object3D。 下面我们看一下如何在Object3D的基础上扩展出来一个球型物体。先看一下我们如何在场景中创建并添加一个SphereSphere sphere = new原创 2016-08-18 23:33:50 · 2474 阅读 · 0 评论 -
OpenGLES入门笔记:Rajawali学习(4)物体点击事件的实现
背景前面我们分别分析了Rajawali中场景的创建与物体的绘制,这篇文章我们将梳理一下点击事件的实现。这里我们参照general中的拖动例程,看看物体如何实现点击事件的捕获与响应。原创 2016-08-21 00:13:52 · 2414 阅读 · 0 评论 -
OpenGLES入门笔记:Rajawali学习(1)基本功能初探
背景最近开始学习rajawali,rajawali是一个Android下封装了OpenGLES API的引擎,可以方便地建立自己的场景,目前还集成了CardBoard相关,可以进行VR相关的开发,同时也可以进行AR相关的开发。rajawali为我们提供了比较丰富的例程,很多东西可以参照例程快速上手。本文记录了rajawali的集成,以及制作一个简单的音乐频谱变化的小demo,其中遇到不少问题,还需要原创 2016-08-15 03:22:58 · 5661 阅读 · 0 评论