`

Android OpenGL ES 开发教程(27):材质及光照示例

 
阅读更多

设置物体表面材料(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

    《OpenGL ES 2 for Android: A Quick-Start Guide》是一本专为Android开发者设计的实用指南,旨在帮助读者快速掌握OpenGL ES 2的核心概念和技术,并应用于Android应用开发中。本书通过丰富的示例代码和清晰易懂的...

    OpenGLES 2.0 for android 开发教程 从入门到精通和Demo

    在Android系统中,OpenGLES 2.0是用于图形渲染的重要框架,支持3D图形和复杂的视觉效果。本教程旨在帮助开发者从零基础开始掌握OpenGLES 2.0,并通过实例Demo加深理解。 入门篇: 1. **环境配置**:首先,你需要...

    [Android.3D游戏开发技术宝典:OpenGL.ES.2.0].吴亚峰.扫描版[ED2000.COM].rar

    总而言之,《Android.3D游戏开发技术宝典:OpenGL.ES.2.0》是一本全面而深入的教程,适合对3D游戏开发感兴趣的初学者,以及寻求提升自己Android游戏开发技能的有经验开发者。通过阅读这本书并实践其中的代码示例,...

    Android Opengles 开发入门技术文档

    本文档将引导开发者逐步了解并掌握Android上的OpenGL ES 开发。 1. **OpenGL ES 功能** OpenGL ES 提供了一套标准接口,允许开发者创建复杂的3D和2D图形。它支持顶点数组、纹理映射、颜色操作、光照效果、多边形...

    Android OpenGL入门示例:绘制三角形和正方形

    通常,这可以通过在build.gradle文件中引入`implementation 'androidx.opengles:opengl-es-utils:1.0.0'`来完成。确保你的项目支持JNI(Java Native Interface),因为OpenGL ES是C/C++接口,需要通过JNI桥接。 接...

    android开发之OpenGL ES教程

    本教程将聚焦于Android上的OpenGL ES 3D游戏开发,介绍如何设置OpenGL ES视图,这是任何图形应用的基础。 首先,我们要了解的是`GLSurfaceView`。在Android 1.5版本中引入的`GLSurfaceView`是一个API类,它为编写...

    android opengl es 粒子,火焰

    在"android-glparticles-master"这个项目中,开发者可能已经实现了一个基于OpenGL ES的粒子系统,包含了火焰效果的示例。项目可能包含以下几个关键部分: 1. **Shader代码**:OpenGL ES 使用着色器语言(GLSL)来...

    OpenGL ES 应用开发实践指南的源码Android卷

    "OpenGL ES 应用开发实践指南的源码Android卷" 提供了在Android平台上使用OpenGL ES进行3D图形编程的实际示例代码。 这个资源包含了多个项目,每个项目都是一个独立的示例,涵盖了不同的主题和概念,如下所述: 1....

    Android.3D游戏开发技术宝典:OpenGL.ES.2.0【part2】

    《Android 3D游戏开发技术宝典:OpenGL ES 2.0》第二部分是一本深入探讨Android平台上3D游戏开发的专著,尤其侧重于使用OpenGL ES 2.0进行图形渲染。OpenGL ES 2.0是移动设备上广泛使用的图形库,提供了强大的3D图形...

    opengles 2.0教程

    - 实例代码:`opengles_sample`可能包含了一些实际的示例代码,通过分析和运行这些代码,可以加深对OpenGL ES 2.0的理解。 - 在线教程:网上有许多教程和指南,如LearnOpenGLES.com、OpenGL-Tutorial.org等,它们...

    opengles绘制球体增加光照效果

    OpenGL ES(Open Graphics Library for Embedded Systems)是一种针对嵌入式设备的图形库,广泛应用于移动设备和...在`opengles6_3`这个文件夹中,可能包含着示例代码或者教程资源,可以帮助你理解和实现这些光照效果。

    android opengl es 2.0官方demo

    OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个精简版本,专为嵌入式设备...通过分析和学习这些官方示例,开发者能够掌握如何在Android平台上有效地利用OpenGL ES 2.0进行图形编程,创建出高性能的图形应用。

    OpenglES3.0完整环境.rar

    在本压缩包“OpenglES3.0完整环境.rar”中,你将找到搭建OpenGL ES 3.0开发环境所需的所有资源,包括仿真模拟器、示例代码和CMake构建工具。 首先,让我们详细了解一下OpenGL ES 3.0的新特性: 1. **增强的顶点...

    OpenGL ES编程指南

    OpenGL ES编程指南是一本针对移动设备和嵌入式系统的图形编程权威书籍,主要聚焦于OpenGL ES 2.0版本。OpenGL ES(Embedded Systems)是OpenGL的轻量级版本,专为资源有限但需要高质量3D图形处理能力的平台设计,如...

    Android OpenGL入门教程

    ### Android OpenGL入门教程知识点解析 #### 一、OpenGL与3D图形编程 OpenGL(Open Graphics Library)是一种跨语言、跨平台的应用程序接口(API),用于渲染2D、3D矢量图形。它是游戏开发和其他需要高性能图形...

    android 光照

    本文将深入探讨Android环境下如何利用OpenGL ES实现光照效果。 首先,我们需要理解光照的基本原理。光照模型涉及到光源、物体表面和观察者之间的相互作用。在OpenGL ES中,光源有多种类型,如点光源、方向光和聚光...

    andriod的opengles

    Android中的OpenGL ES分为多个版本,包括OpenGL ES 1.x、2.0、3.0及以上。每个版本都增加了新的功能和改进,例如OpenGL ES 2.0引入了着色器模型,允许开发者用GLSL(OpenGL Shading Language)编写更复杂的图形处理...

    Android OpenGL的一个简单的例子.zip

    在Android平台上,OpenGL ES(OpenGL for Embedded Systems)被广泛用于游戏开发、图像处理和增强现实应用等。这个"Android OpenGL的一个简单的例子.zip"文件包含了一个基本的Android OpenGL应用实例,帮助开发者...

    OpenGL ES 3.x游戏开发 上卷 吴亚峰 源码

    本书“OpenGL ES 3.x游戏开发 上卷”由吴亚峰编写,提供了深入的实践指导,旨在帮助开发者充分利用OpenGL ES 3.x的功能进行游戏开发。源码的提供使得读者可以亲手实践书中的示例,加深理解。 OpenGL ES 3.x相比于2....

    OpenGL ES 2 for Android A Quick

    ### OpenGL ES 2.0 for Android 快速入门指南 #### 一、引言 《OpenGL ES 2.0 for Android》是一本针对Android平台上OpenGL ES 2.0技术的全面指南,它不仅包含了深入的技术讲解,还有丰富的实战案例。本书由Kevin ...

Global site tag (gtag.js) - Google Analytics