`
wo_deqing
  • 浏览: 64161 次
文章分类
社区版块
存档分类
最新评论
文章列表
一、Surface Surface就是“表面”的意思。在SDK的文档中,对Surface的描述是这样的:“Handle onto a raw buffer that is being managed by the screen compositor”,翻译成中文就是“由屏幕显示内容合成器(screen compositor)所管理的原生缓冲器的句柄”,这句话包括下面两个意思: 1.通过Surface(因为Surface是句柄)就可以获得原生缓冲器以及其中的内容。就像在C语言中,可以通过一个文件的句柄,就可以获得文件的内容一样; 2.原生缓冲器(rawbuffer)是用于保存 ...
Android中对View的更新有很多种方式,使用时要区分不同的应用场合。我感觉最要紧的是分清:多线程和双缓冲的使用情况。1.不使用多线程和双缓冲 这种情况最简单了,一般只是希望在View发生改变时对UI进行重绘。你只需在Activity中显式地调用View对象中的invalidate()方法即可。系统会自动调用 View的onDraw()方法。2.使用多线程和不使用双缓冲
glDrawArrays = DrawPrimitive glDrawElements = DrawIndexPrimitive 比如画一个由2个3角形组成的正方形,左上角坐标是l,t,右下角坐标是r,b 使用glDrawArrays绘制时,画2个三角形,需要这样传: (l,t),(r,t),(l,b) (r,t),(r,b),(l,b) 而用glDrawElements画的话可以这样 float coord[4][2]={{l,t},{r,t},{r,b},{l,b}}; 绘制时: 0,1,3 1,2,3 也就是说glDrawArrays传输或指定的数据是最终 ...
继续我们的iPhone OpenGL ES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可以看见东西。 它只是提供一种十分单调的整体光让我们看到物体。但是如果不定义光效,物体看上去都很单调,就像你在第二部分程序中看到的那样。 阴影模型(Shade Model) 在深入讨论OpenGL ES是怎样处理光线之前,重要的是要了解OpenGL ES实际上定义了两种shad
这一节看看混合色的开启,主要是实现立方体半透明的效果,但是今天这篇文章因为内容比较少,所以就增加了点触事件,当触及屏幕的时候,开启半透明效果,再次点击就关闭混合效果,效果图如下: 开启透明混色前 开启半透明混色后 接着上一节的Android高级进阶九 Android OpenGL对立方体进行光照处理代码,我们接着整改,看代码: Java代码 //设置光线,,1.0f为全光线,a=50% gl.glColor4f(1.0f,1.0f,1.0f,0.5f); //基于源象素alpha通道值的半透明混合函数 gl.glBlendFunc(GL10.GL_SRC_AL ...
最迷人的要算灯光了,所以上帝说的第一句话就是 — “要有光”。 OpenGL ES 1.1支持最多同时启用八个灯光,可以是平行光、点光源、聚光灯。 使用灯光前,先要启用灯光总开光,然后再启用 0-7 八个光源中的某(几)盏,通过 glEnable函数可以打开这两种开关 ? 1 2 gl.glEnable(GL10.GL_LIGHTING); // 启用灯光总开关 gl.glEnable(GL10.GL_LIGHTIn);// 启用第n盏灯 ( n = 0...7 ) 然后通过 glLight 系统函数设置灯光属性即可,看下这几个函数 ...
这一章将在你的程序中加入灯光,使场景看起来和真实场景一样。 灯光 opengl中灯光分为好几种,都可以加入到你的场景中。 Ambiend Light 环境光 环境光没有确切的来源方向,当环境光照射到物体时,光被反射到各个方向。 Di ...
继续我们的iPhone OpenGL ES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可以看见东西。 它只是提供一种十分单调的整体光让我们看到物体。但是如果不定义光效,物体看上去都很单调,就像你在第二部分程序中看到的那样。 阴影模型(Shade Model) 在深入讨论OpenGL ES是怎样处理光线之前,重要的是要了解OpenGL ES实际上定义了两种shade model,GL_FLAT和GL_SMOOTH。我们将不会讨论GL_FLAT,因为这只会让你的程序看上去来自九十年代: GL_FL ...
OpenGL ES是OpenGL三维图形API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。 Ophone目前支持OpenGL ES 1.0 ,OpenGL ES 1.0 是以 OpenGL 1.3 规范为基础的,OpenGL ES 1.1 是以 OpenGL 1.5 规范为基础的。本文主要介绍利用OpenGL ES绘制图形方 ...
为了能看出3D效果,给场景中添加光源。如果没有光照,绘出的球看上去和一个二维平面上圆没什么差别,如下图,左边为有光照效果的球体,右边为同一个球体但没有设置光源,看上去就没有立体效果,因此OpenGL 光照效果对显 ...
在Android上使用OpenGL ES开发时,模仿自然界的各种现象是很常见的,比如光照、雾气、飘动等效果,今天我们就来使用OpenGL ES实现自然界的雾气效果,雾气效果很简单,我们今天就使用系统自带的三种雾气渲染算法来实现不同的效果,当然你可以自己设置雾气的颜色和范围程度等。 本节的代码是基于Android OpenGL | ES给立方体进行纹理映射一文的代码上修改的,我会重点提到雾气渲染这一块,当然在文章最后你也可以下载到完整的源码。效果图: 我们在继承Renderer类的GLRenderer的基础上加上一些雾气使用的成员变量: Java代码 //雾气模式 priva ...
看到了Android OpenGL开发四棱锥和立方体之后,我们是不是增加了使用OpenGL开发图形的兴趣啊,呵呵,希望大家保持热情啊,今天我们接着给已经画好的立方体进行文理处理,效果图如下: 可以看到,我们对正方体做了如下处理: 给正方体增加3轴旋转功能; 给正方体添加纹理; 注意点:真机上不显示纹理贴图的解决办法~~ Android OpenGL给立方体进行纹理映射时真机一片空白 具体如何实现,我们接着看~~~ Java代码 //当窗口被创建时我们可以做些初始化工作 @Override publicvoid
一、基础知识: 1..光照介绍: ①环境光: 来自四面八方,所有场景中的对象都处于环境光的照射中。 ②漫射光: 由特定的光源产生,并在场景中的对象表面产生反射。 处于漫射光直接照射下的任何对象表面都变得很亮,而几乎未被照射到的区域就显示得要暗一些。 2.光照使用: ①设定光源参数: //环境光 private float[] lightAmbient; private FloatBuffer AmbientBuffer; //漫射光 private float[] lightDiffuse; private FloatBuffer diffuseBuffer; ...
以前在Delphi下用Canvas用惯了,很少直接使用GDI API,今天转换到VC下了,哪只有重新温习GDI了,首先先简单说说GDI体系结构。 GDI是微软设计的一套API,为应用程序提供设备无关的接口,包括视频显示、打印机、画图仪和传真机。 ...
VC: GDI绘图基本步骤总结 一、获得绘图的窗口句柄 方法(详细参数及其调用可以看考MSDN): 1、 HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName) 2、 HWND Window ...
Global site tag (gtag.js) - Google Analytics