Opengl ES 阴影(shadow)
来源:互联网 发布:网络医生咨询是真的吗 编辑:程序博客网 时间:2024/05/17 22:44
转自:http://blog.csdn.net/mink365/article/details/6303055
Opengl es有多种呈现shadow的方式,具体分以下三种:
1.动态贴图,即是另外打开一个Framebuffer,绘制此块Framebuffer时,把相机移动到光源位置,得到从光源位置看上去的物体剪影,并把此剪影作为贴图贴到真正的Framebuffer上,完成阴影绘制。具体参照3D绘图程序设计中的7.4节。此种阴影真实性较好,而且可以是用柔化技巧生成Soft-shadow(7.6节),缺点是需要多用一个Framebuffer,而且获取Framebuffer Object需要硬件支持,android SDK中的APIDemos下的FrameBufferObjectActivity演示了获取Framebuffer Object和是用它的方法。可以看到,使用了GL11ExtensionPack
2.Stencil Buffer,Stencil Buffer是Opengl系统自带的测试工作区,于Zbuffer(Depth)类似,是一个辅助Buffer,用于确定那些区域需要更新等。用Stencil Buffer也可以生成阴影。具体参照8.4节。http://insanitydesign.com/wp/projects/android-tutorials/,一个android下的例子。
3.Shader,更高级的阴影就只有使用Shader语言了,也就是说,必须用OpenGL ES 2.0的东西。APIDemos中的GLES20Activity,和BasicGLSurfaceView演示了gles2.0的使用。有趣的是,忽略了传入的GL10,直接是用静态的GLES10调用。http://developer.android.com/reference/android/opengl/GLES10.html有完整的函数列表。android有一个自己的android.opengl的packages,而我们使用GL10的东西,默认引入的是javax.microedition.khronos.opengles。
其实还有一个做阴影的方法:自己设计矩阵,并把自己的矩阵是用glMultMatrixf导入Projection矩阵。只是,这个,呵呵,有点变态了。http://www.devmaster.net/articles/shadowprojection/
看WIKI:http://en.wikipedia.org/wiki/OpenGL_ES#OpenGL_ES_1.1_2,可见Opengl ES从android 1.6已经正式支持了,应该可以在项目中放心使用了吧??ES2.0的支持在android 2.2引入。
http://blog.csdn.net/kesalin/archive/2008/01/19/2053692.aspx,很不错的探讨阴影的文章。
http://insanitydesign.com/wp/tag/opengl-es/,NEHE的android移植项目,非常值得一看。
- Opengl ES 阴影(shadow)
- OpenGL ES 2.0 shadow mapping阴影
- OpenGL阴影,Shadow Mapping
- OpenGL阴影,Shadow Mapping
- OpenGL Shadow 阴影基础
- [OpenGL] shadow mapping(实时阴影映射)
- OpenGL阴影,Shadow Mapping(附源程序)
- [OpenGL] shadow mapping(实时阴影映射)
- OpenGL阴影,Shadow Mapping(附源程序)
- OpenGL es 2.0使用shadow mapping方法制作阴影时,阴影穿透实体现象的形成原因及初步应对思路
- Shadow阴影
- OpenGL 4.0 GLSL 用 shadow map 算法 生成阴影
- OpenGL阴影,Shadow Volumes(附源程序,使用 VCGlib )
- OpenGL阴影,Shadow Volumes(附源程序,使用 VCGlib )
- 渲染 shadow(阴影)
- 阴影锥(Shadow Volume)
- Android 阴影制作 -- Shadow
- 阴影制作(Shadow)
- TeX&LaTeX宏包冲突集锦
- 如何消除sharepoint升级到2010后主页上多余的"Home"内容
- sql/plus复合变量之记录复合类型和索引表类型
- (*)使用Boost.Asio编写通信程序
- JDBC开发
- Opengl ES 阴影(shadow)
- Android项目导入出现The type java.lang.Object cannot be resolved.问题解决办法!!
- Android中dip、dp、sp、pt和px的区别
- WebView
- 求python老师一位,周末空闲的
- linux-0.01 boot.s 改编成适合 NASM 语法
- AVSS2012
- 科学计算:Python VS. MATLAB (1)----给我一个理由先
- Cocos2dx create-android-project.bat出现"C:\Program"不是内部命令错误