设置物体表面材料(Material)的反光属性(颜色和材质)的方法如下:
public void glMaterialf(int face,int pname,float param)
public void glMaterialfv(int face,int pname,float[] params,int offset)
public void glMaterialfv(int face,int pname,FloatBuffer params)
- face : 在OpenGL ES中只能使用GL_FRONT_AND_BACK,表示修改物体的前面和后面的材质光线属性。
- pname: 参数类型,可以有GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS。这些参数用在光照方程。
- param: 参数的值。
其中GL_AMBIENT,GL_DIFFUSE,GL_SPECULAR ,GL_EMISSION为颜色RGBA值,GL_SHININESS 值可以从0到128,值越大,光的散射越小:
此外,方法glLightModleXX给出了光照模型的参数
public void glLightModelf(int pname,float param)
public void glLightModelfv(int pname,float[] params,int offset)
public void glLightModelfv(int pname,FloatBuffer params)
- pname: 参数类型,可以为GL_LIGHT_MODEL_AMBIENT和GL_LIGHT_MODEL_TWO_SIDE
- params: 参数的值。
最终顶点的颜色由这些参数(光源,材质光学属性,光照模型)综合决定(光照方程计算出)。
下面例子在场景中设置一个白色光源:
绘制一个球,并使用蓝色材质:
本例下载
分享到:
相关推荐
《OpenGL ES 2 for Android: A Quick-Start Guide》是一本专为Android开发者设计的实用指南,旨在帮助读者快速掌握OpenGL ES 2的核心概念和技术,并应用于Android应用开发中。本书通过丰富的示例代码和清晰易懂的...
在Android系统中,OpenGLES 2.0是用于图形渲染的重要框架,支持3D图形和复杂的视觉效果。本教程旨在帮助开发者从零基础开始掌握OpenGLES 2.0,并通过实例Demo加深理解。 入门篇: 1. **环境配置**:首先,你需要...
总而言之,《Android.3D游戏开发技术宝典:OpenGL.ES.2.0》是一本全面而深入的教程,适合对3D游戏开发感兴趣的初学者,以及寻求提升自己Android游戏开发技能的有经验开发者。通过阅读这本书并实践其中的代码示例,...
本文档将引导开发者逐步了解并掌握Android上的OpenGL ES 开发。 1. **OpenGL ES 功能** OpenGL ES 提供了一套标准接口,允许开发者创建复杂的3D和2D图形。它支持顶点数组、纹理映射、颜色操作、光照效果、多边形...
通常,这可以通过在build.gradle文件中引入`implementation 'androidx.opengles:opengl-es-utils:1.0.0'`来完成。确保你的项目支持JNI(Java Native Interface),因为OpenGL ES是C/C++接口,需要通过JNI桥接。 接...
本教程将聚焦于Android上的OpenGL ES 3D游戏开发,介绍如何设置OpenGL ES视图,这是任何图形应用的基础。 首先,我们要了解的是`GLSurfaceView`。在Android 1.5版本中引入的`GLSurfaceView`是一个API类,它为编写...
在"android-glparticles-master"这个项目中,开发者可能已经实现了一个基于OpenGL ES的粒子系统,包含了火焰效果的示例。项目可能包含以下几个关键部分: 1. **Shader代码**:OpenGL ES 使用着色器语言(GLSL)来...
"OpenGL ES 应用开发实践指南的源码Android卷" 提供了在Android平台上使用OpenGL ES进行3D图形编程的实际示例代码。 这个资源包含了多个项目,每个项目都是一个独立的示例,涵盖了不同的主题和概念,如下所述: 1....
《Android 3D游戏开发技术宝典:OpenGL ES 2.0》第二部分是一本深入探讨Android平台上3D游戏开发的专著,尤其侧重于使用OpenGL ES 2.0进行图形渲染。OpenGL ES 2.0是移动设备上广泛使用的图形库,提供了强大的3D图形...
- 实例代码:`opengles_sample`可能包含了一些实际的示例代码,通过分析和运行这些代码,可以加深对OpenGL ES 2.0的理解。 - 在线教程:网上有许多教程和指南,如LearnOpenGLES.com、OpenGL-Tutorial.org等,它们...
OpenGL ES(Open Graphics Library for Embedded Systems)是一种针对嵌入式设备的图形库,广泛应用于移动设备和...在`opengles6_3`这个文件夹中,可能包含着示例代码或者教程资源,可以帮助你理解和实现这些光照效果。
OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个精简版本,专为嵌入式设备...通过分析和学习这些官方示例,开发者能够掌握如何在Android平台上有效地利用OpenGL ES 2.0进行图形编程,创建出高性能的图形应用。
在本压缩包“OpenglES3.0完整环境.rar”中,你将找到搭建OpenGL ES 3.0开发环境所需的所有资源,包括仿真模拟器、示例代码和CMake构建工具。 首先,让我们详细了解一下OpenGL ES 3.0的新特性: 1. **增强的顶点...
OpenGL ES编程指南是一本针对移动设备和嵌入式系统的图形编程权威书籍,主要聚焦于OpenGL ES 2.0版本。OpenGL ES(Embedded Systems)是OpenGL的轻量级版本,专为资源有限但需要高质量3D图形处理能力的平台设计,如...
### Android OpenGL入门教程知识点解析 #### 一、OpenGL与3D图形编程 OpenGL(Open Graphics Library)是一种跨语言、跨平台的应用程序接口(API),用于渲染2D、3D矢量图形。它是游戏开发和其他需要高性能图形...
本文将深入探讨Android环境下如何利用OpenGL ES实现光照效果。 首先,我们需要理解光照的基本原理。光照模型涉及到光源、物体表面和观察者之间的相互作用。在OpenGL ES中,光源有多种类型,如点光源、方向光和聚光...
Android中的OpenGL ES分为多个版本,包括OpenGL ES 1.x、2.0、3.0及以上。每个版本都增加了新的功能和改进,例如OpenGL ES 2.0引入了着色器模型,允许开发者用GLSL(OpenGL Shading Language)编写更复杂的图形处理...
在Android平台上,OpenGL ES(OpenGL for Embedded Systems)被广泛用于游戏开发、图像处理和增强现实应用等。这个"Android OpenGL的一个简单的例子.zip"文件包含了一个基本的Android OpenGL应用实例,帮助开发者...
本书“OpenGL ES 3.x游戏开发 上卷”由吴亚峰编写,提供了深入的实践指导,旨在帮助开发者充分利用OpenGL ES 3.x的功能进行游戏开发。源码的提供使得读者可以亲手实践书中的示例,加深理解。 OpenGL ES 3.x相比于2....
### OpenGL ES 2.0 for Android 快速入门指南 #### 一、引言 《OpenGL ES 2.0 for Android》是一本针对Android平台上OpenGL ES 2.0技术的全面指南,它不仅包含了深入的技术讲解,还有丰富的实战案例。本书由Kevin ...