下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → 手机上J2ME的3D编程-简单创建3D立方体(1)__教程
手机上J2ME的3D编程-简单创建3D立方体(1)__教程
日期:2007-5-20 1:22:43 人气:68     [ ]
上一页 [1] [2] [3] 下一页
 参考文档:JSR-184

工具:Eclipse3.0+Eclipseme

API:Mobile 3D Graphics API

模拟器:Sony Ericsson

分析:

在现实生活中,我们所看到的是一个3维系统。透过双眼,可以看到的是一个丰富多彩的世界。我们所用的照相机,能够拍出很多漂亮的图片。拍摄每张图片时,可以根据拍摄距离的远近可以调整所拍摄画面上的内容。








在虚拟的世界里,可以模拟真实世界。欲将虚拟世界展示出来,就要利用一个虚拟的照相机,将虚拟的世界拍摄出来。








在JSR-184中,虚拟的世界是由World类构造的。虚拟的照相机是Camera类。通过Camera的位置或视角的改面,将虚拟世界显示到手机屏幕上。Camera默认是朝向Z轴的负方向。在虚拟世界中,各个物体都是由Mesh类创建的。不同的Mesh属性对应不同的物体。








构造物体时,先要构造物体的骨架(即形状),然后用一种材料蒙到骨架上。物体的形状,是由一组点和每个点的法向量决定的。材料则是图片。








下面按照与上面相反的顺序再一个虚拟的世界中构建一个立方体。步骤如下:

1 构造立方体





构造一个立方体需要给出立方体的各个顶点,然后规定各个顶点的法向量,最后将图片帖到由顶点和各点法向量构成的架子上。








各个顶点的给出,是和法向量配合的。由于立方体是由6个矩形组成的,所以就要确定这6个矩形。因为由一个点和一个法向量就能够确定一个面,那么4个顶点和4个法向量就确定了4个面。如果这4个面重叠,4个顶点就构成了一个矩形的区域。用这个方法确定6个矩形,再用这6个举行组成一个立方体。








将图片帖到立方体是,就是将立方体上的顶点和图片上的点进行对应。两者可以用不同的单位。


下面构建一个立方体

给出立方体的顶点们:





short x = 20;

short y = 20;

short z = 20;

short fx = (short) -x;

short fy = (short) -y;

short fz = (short) -z;



short[] vert = {x,y,z, fx,y,z, x,fy,z, fx,fy,z, //D

fx,y,fz, x,y,fz, fx,fy,fz, x,fy,fz, //C

fx,y,z, fx,y,fz, fx,fy,z, fx,fy,fz, //B

x,y,fz, x,y,z, x,fy,fz, x,fy,z, //F

x,y,fz, fx,y,fz, x,y,z, fx,y,z, //A

x,fy,z, fx,fy,z, x,fy,fz, fx,fy,fz}; //E



VertexArray vertArray = new VertexArray(vert.length/3, 3, 2);

vertArray.set(0, vert.length/3, vert);



给出立方体顶点们的法向量:





byte[] norm = { 0,0,127, 0,0,127, 0,0,127, 0,0,127,

0,0,-127, 0,0,-127, 0,0,-127, 0,0,-127,

-127,0,0, -127,0,0, -127,0,0, -127,0,0,

127,0,0, 127,0,0, 127,0,0, 127,0,0,

0,127,0, 0,127,0, 0,127,0, 0,127,0,

0,-127,0, 0,-127,0, 0,-127,0, 0,-127,0};








VertexArray normArray = new VertexArray(norm.length / 3, 3, 1);

normArray.set(0, norm.length / 3, norm);








给出顶点们对应图片上的点(vert和tex数组是一一对应的):





short[] tex = { 1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1,

1, 0, 0, 0, 1, 1, 0, 1 };








VertexArray texArray = new VertexArray(tex.length / 2, 2, 2);

texArray.set(0, tex.length / 2, tex);








根据上面给出的数组,组成立方体:





// create the VertexBuffer for our object

VertexBuffer vb = boxVB = new VertexBuffer();

vb.setPositions(vertArray, 1.0f, null);

vb.setNormals(normArray);

vb.setTexCoords(0, texArray, 1.0f, null);















2 将立方体实例化










出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.