Java 类反射机制分析
摘要:一、反射的概念及在Java中的类反射 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 在Java...
阅读全文
posted @
2013-05-21 19:53
人间奇迹
阅读(21185)
推荐(2) 编辑
OpenGL ES Processing Pipeline
摘要:很多文档包括红宝书中对OpenGL ES 中pipeline 的介绍都采用如下的流程来描述,其描述了vertex shader 和 fragment shapder在整个流水线中的的位置,但是对操作细节很有描述。经过阅读相关的文档和所有opengl essl等相关资料,发现图2能够将各种细节更精细的呈现在图中,并细化到了代码层图 2
阅读全文
posted @
2013-05-18 22:41
人间奇迹
阅读(391)
推荐(0) 编辑
Vertex Texture Fetch(VTF) && Fragment Texture Fetch ( FTF )
摘要:在vertex shader里也可以检索纹理。我本来觉得这没什么好奇怪的,因为我一直也觉得这很当然可以啊~当初橙书(OpenGL Shading Language Edtion2)也说过texture2D这类函数不是fragment shader专用的,倒还有texture2DLod这种在vertex shader里专用的(后面一句是马后炮~),只是我不知道怎么用,在哪里用,以及更重要的:为什么要用。为什么要在vertex shader里检索纹理。都知道,纹理里的一般是一幅图像,无论是外部导入的还是通过FBO等手段渲染到的。既然如此,有意义的当然是图像里的每一个像素啦,通过纹理坐标检索纹理中的
阅读全文
posted @
2013-05-18 21:14
人间奇迹
阅读(1401)
推荐(0) 编辑
FBO
摘要:上面这幅图显示了帧缓冲区对象与纹理对象、渲染缓冲区对象的关系。 多个纹理对象或多个渲染缓冲区对象,可通过连接点(attachment points)连接到帧缓冲区对象上, FBO有多个颜色关联:(GL_COLOR_ATTACHMENT0_EXT,..., GL_COLOR_ATTACHMENTn_EXT), 一个深度关联(GL_DEPTH_ATTACHMENT_EXT) 一个模板关联 (GL_STENCIL_ATTACHMENT_EXT) 颜色关联的数目最少有一个,最大数目是与实体的显卡相关的,可以GL_MAX_COLOR_ATTACHMENTS_EX...
阅读全文
posted @
2013-05-17 01:53
人间奇迹
阅读(785)
推荐(0) 编辑
索引顶点的VBO与多重纹理下的VBO
摘要:1. 索引顶点的VBO 在VA(顶点数组)下,索引数据被放入一个名为索引数组的“容器”里,在绘制的时候跟其他顶点属性一样,要先用glEnableClientState (GL_INDEX_ARRAY),再用glIndexPointer指定该容器…… 这一切在VBO中都是不需要的。因为它与glDrawElements函数必定一起出现,所以VBO通过同一标志位GL_ELEMENT_ARRAY_BUFFER把它们的关系“确定”下来。只需要创建一个储存索引数据索引的VBO,渲染时绑定,调用glDrawElements时,第二参数是索引数据的大小,足矣。//初始化部分glGenBuffers(1,&am
阅读全文
posted @
2013-05-16 18:04
人间奇迹
阅读(688)
推荐(0) 编辑
openGL ES 常用接口剖析
摘要:void glDrawArrays(GLenum mode, GLint first, GLsizei count); 在OpenGL中图形都是通过分解成三角形的方式进行绘制。绘制图形通过GL10类中的glDrawArrays方法实现, 参数1:mode 有三种取值 1. GL_TRIANGLES:每三个顶之间绘制三角形,之间不连接 2. GL_TRIANGLE_FAN:以V0V1V2,V0V2V3,V0V3V4,……的形式绘制三角形 3. GL_TRIANGLE_STRIP:顺序在每三个顶点之间均绘制三角形。这个方法可以保证从相同的方向上所有三角形均被绘制。 以V0V1V2,V1...
阅读全文
posted @
2013-05-16 16:35
人间奇迹
阅读(4270)
推荐(3) 编辑
VAO与VBO
摘要:如果你也逐渐步进GL3.0开始的新标准,你大概会留意到传统的绘图方式(glVertex)已经要被废掉了,不仅如此,以最高绘制速度为标记的显示列表方式也已经被印上deprecated了,这样,在以前的文章([学一学,VBO] )中的讨论,在新标准的面前都显得没什么必要了。我想说的是,OpenGL对GPU的入口“顶点传送”——或者说,绘制方式,尽量不要再选择传统方式(glVertex)或显示列表(glCallList)甚至VA(vertex array)了。哪怕你是用的一个compatable的GL-context,哪怕顶点数据部分持续变化或者恒定不变,也得注意要尽量尽量使用VBO来组织你的数..
阅读全文
posted @
2013-05-16 13:05
人间奇迹
阅读(850)
推荐(0) 编辑
OpenGL Vertex Buffer Objects(VBOs) 之 一
摘要:VBO,全称Vertex Buffer Object,与FBO,PBO并称,但它实际上老不少。就某种意义来说,它就是VA(Vertex Array)的升级版。1. "客户端状态" 和 "服务端状态" 从VBO的作用说起吧。VBO出现的背景是人们发现VA还有不让人满足的地方。一般,在OpenGL里,提高顶点绘制速度的手法,一是把常规的glBegin() - glEnd()类代码段放入一个显示列表中(通常在初始化阶段完成),然后每遍渲染都调用这个显示列表;二是使用顶点数组,把顶点以及顶点属性数据作为数组,渲染的时候直接用一个或几个函数调动这些数组里的数据进行
阅读全文
posted @
2013-05-15 23:08
人间奇迹
阅读(1457)
推荐(0) 编辑
OpenGL/GLSL Client + Shaderprogram 数据传递
摘要:一 、shader 程式的装载 shader程序的装载包括如下步骤:创建Shader对象(glCreateShader——成功时返回非0的无符号Handle值,指向Shader对象);把shader代码传入shader对象(glShaderSource——注意此函数的参数,字符流地址参量是GLchar*,不支持宽字符。shader代码可以用文本文件保存,可以在程序中用字符串保存,但最终还是必须在程序中以字符串的形式传入Shader对象中,执行后可删除内存上保存的shader代码字符串副本);编译Shader对象——正如我们编译任何代码一样(glCompileShader——应该以GL_COM.
阅读全文
posted @
2013-05-15 20:51
人间奇迹
阅读(1135)
推荐(0) 编辑
android 资源管理之 Asset/raw 2
摘要:Android 中对资源的管理基本会涉及到 asset 、 raw 、私有目录(/data/data/package) 以及 /sdcard,对于后2种,一般都可以采用基本的文件操作来管理,对于asset 、raw 的管理有很多人会讨论到,基本上有如下两种rawResources res = getResources();InputStream myfile = res.openRawResource(R.raw.文件名);//文件名不加后缀assets1 AssetManager assetManager = getAssets();2 InputStream inputStream =..
阅读全文
posted @
2013-05-03 19:48
人间奇迹
阅读(2064)
推荐(0) 编辑
android的消息处理机制 Looper,Handler,Message
摘要:线程的魔法师 LooperLooper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程。使用Looper类创建Looper线程很简单:View Codepublicclass LooperThread extends Thread { @Override publicvoid run() { // 将当前线程初始化为Looper线程 Looper.prepa...
阅读全文
posted @
2013-05-02 22:59
人间奇迹
阅读(242)
推荐(0) 编辑
ClassLoader
摘要:java应用环境中不同的class分别由不同的ClassLoader负责加载。一个jvm中默认的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分别各司其职:Bootstrap ClassLoader负责加载java基础类,主要是 %JRE_HOME/lib/ 目录下的rt.jar、resources.jar、charsets.jar和class等Extension ClassLoader 负责加载java扩展类,主要是 %JRE_HOME/lib/ext 目录下的jar和classApp Clas
阅读全文
posted @
2013-05-01 13:14
人间奇迹
阅读(669)
推荐(0) 编辑