在JSR184中我们为被用于物体外型上的每一个点输入一条法线,下面的代码告诉我们它能实现一个棱锥,必须要记住输入法线的取值范围在-127~127的角度之间。
// 棱锥的最高点. x, y, z
short []POINTS = new short[] {
-1, -1, 1,1, -1, 1, 0, 1, 0, // 前
1, -1, 1, 1, -1, -1, 0, 1, 0, // 右
1, -1, -1, -1, -1, -1, 0, 1, 0, // 后
-1, -1, -1, -1, -1, 1, 0, 1, 0, // 左
-1, -1, 1, 1, -1, 1, 1, -1, -1, // 下右
-1, -1, 1, 1, -1, -1, -1, -1, -1}; // 下左
// 棱锥的底角为70度
short []NORMALS = new short[] {
0, 56,113,0, 56, 113, 0, 56, 113,
113,56,0, 113,56,0, 113,56,0, 0,56,-113, 0,56,-113, 0,56,-113, -113,56,0, -113,56,0, -113,56,0,0,-127,0, 0,-127,0, 0,-127,0, 0, -127,0, 0, -127,0, 0, -127,0};
我们还可以设置网眼的材质。
Material material = new Material();
material.setVertexColorTrackingEnable(true);
appearance.setMaterial(material);
mesh.setAppearance(0, appearance);
光线在物体外型上的反射受材质颜色的影响。一个红色的材质(0XFF0000)只会出反射红色的光,即使这个光源是纯白色的。同样蓝色的材质只会反射出蓝色的光。
在法线设置和材质添加后,你只需要把光本身添加到场景中。
light = new Light(); // 创建一个新的light对象
light.translate(<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F" w:st="on">0.0f</chmetcnv>, <chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="F" w:st="on">0.0f</chmetcnv>, <chmetcnv tcsc="0" numbertype="1" negative="True" hasspace="False" sourcevalue="1" unitname="F" w:st="on">-1.0f</chmetcnv>); // Light的位置
light.setMode(Light.AMBIENT); // Light模式
light.setColor(0xFFFFFF); // Light的颜色 白色
world.addChild(light); // 把光线添加到场景
这就是本文介绍的内容,难点在于使得你的应用程序运行的和你期望的一样,通常这比你最初认为的要难很多。你可以在下面下载一个小的关于JSR184光线的MIDLET程序。
从这里下载JSR814Light
相关推荐
用jsr184编写的手机3d编程实例,用户可以任意旋转箭头,放大缩小等等。包含如何使用数据定义mesh,如何操作camera如何旋转等等,程序功能较繁杂,但是界面较粗糙(数据定义的模型当然是越简单越好啦),学习意义大于...
此外,博客中可能还介绍了如何结合JSR-184来实现复杂的3D场景。这可能包括创建3D对象,如立方体、球体等,以及将它们组织成层次结构的场景图。场景图允许开发者通过父子关系来管理物体的变换,使得复杂场景的管理变...
在提供的压缩包"jsr_184_midlet.rar_DEMO_jsr184_jsr184-m3g.jar_m3g"中,我们可以看到与JSR 184相关的几个关键元素: 1. **DEMO**:这是一个演示程序,用于展示JSR 184技术的实际应用。通过这个DEMO,开发者或用户...
学习JSR 184和M3G API时,建议从基础概念入手,了解3D图形的基本原理,然后逐步深入到各个类和方法的使用。通过创建简单的3D场景,比如旋转的立方体或动态的纹理贴图,来熟悉API的运作方式。随着技能的提升,可以...
在提供的压缩包中,`jsr184 M3G API`很可能是包含了JSR 184的实现库或者相关文档,对于想要在J2ME平台上进行3D图形开发的开发者来说,这是一个宝贵的资源。通过深入学习和实践,可以掌握如何利用这些API创建引人入胜...
【标题】"jsr184+M3G+API.rar" 涉及到的主要技术是Java Mobile 3D Graphics API(JSR 184)和M3G(Mobile 3D Graphics)标准,以及相关的API接口。JSR 184是Java Community Process发布的一个规范,目的是为Java ME...
【标题】"Himi"所涉及的是一种基于J2ME平台的3D游戏开发API,主要利用了JSR184规范。这个标题暗示我们将会探讨如何使用Java技术在移动设备上创建三维游戏。 【描述】"j2me3D游戏开发api ,jsr184"表明该资源是关于...
**J2ME JSR 184:移动3D图形API技术规范** J2ME(Java 2 Micro Edition)是Java平台的一个子集,专为嵌入式设备和移动设备设计,如手机和平板电脑。JSR(Java Specification Requests)是Java社区进程中的一个关键...
JSR 184(Java Specification Request 184)定义了这个API,旨在为小型设备提供高效且易于使用的3D图形接口。 **M3G API** 是J2ME中的一个重要组成部分,它提供了一组类和接口,使得开发人员能够利用有限的移动设备...
【JSR-184】是Java Micro Edition (Java ME)平台中的一项规范,全称为“Mobile 3D Graphics API”。这个规范旨在为移动设备提供3D图形编程接口,使得开发者能够在小型设备上构建丰富的三维应用程序,如游戏、虚拟...
【JSR-184】是Java Micro Edition (Java ME) 中的一项标准,全称为“Mobile 3D Graphics API”,它定义了一套用于在移动设备上进行3D图形编程的接口。JSR-184的目标是让开发者能够在资源有限的移动设备上创建高质量...
1. **基础概念**:介绍3D图形的基本概念,如坐标系统、视点、摄像机、物体渲染等,以及如何在J2ME环境中设置这些元素。 2. **几何对象与场景图**:讲解如何创建和操作基本几何形状,并通过场景图组织3D世界中的元素...
【JSR-184】是Java Micro Edition (Java ME) 中的一个标准,全称为"Mobile 3D Graphics API",旨在为移动设备提供3D图形编程接口。这个标准允许开发者在小型设备上创建复杂的3D图形应用,比如游戏或者可视化工具。本...
JSR168的核心概念包括: 1. Portlet容器:提供portlet运行环境,负责portlet的初始化、渲染、事件处理等。 2. Portlet生命周期:包括初始化、加载、渲染、销毁等阶段。 3. Render请求和Action请求:portlet接收两种...
本资料集是针对索爱(Sony Ericsson)手机平台的3D开发入门教程,主要围绕JSR184(Mobile 3D Graphics API)和Micro3D两个核心概念展开,旨在帮助开发者快速掌握移动设备上的3D图形编程。 JSR184,全称为Java ...
【JSR-184】是Java Micro Edition (Java ME) 中的一项标准,它定义了Mobile 3D Graphics API,也称为M3G。M3G是为了在移动设备上实现高性能的3D图形渲染而设计的,使得开发者可以创建丰富的3D游戏和应用。这篇【3D...
在实际编码过程中,你需要定义每个3D形状的顶点坐标,然后利用JSR184提供的渲染功能将它们绘制到屏幕上。此外,可能还需要考虑光照、纹理映射等高级3D效果,以增强视觉表现。 文件名“BQYT”可能是指宝箧印塔的具体...
JSR286引入了共享呈现参数的概念,使得portlet能够访问并共享其他portlet的呈现参数。这一特性增加了portlet之间的交互性和灵活性。 - **portlet私有呈现参数**:每个portlet都有自己的呈现参数。 - **共享呈现参数...
JSR 184全称为Java Specification Request 184,是Java Micro Edition中的一项标准,旨在为移动设备提供一种轻量级的3D图形库。这个API提供了创建、操作3D物体和场景的工具,包括几何形状的构建、光照处理、纹理映射...