12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 4400|回复: 13
打印 上一主题 下一主题

[电商] Java 3D眼中的世界

[复制链接]

1096

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
17782
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-12-26 14:35:18 |只看该作者 |倒序浏览
本教程是为没有任何 3D 编程经验的 Java 程序员而编写的。我们将从一些基本的 3D 概念入手,探索如何构建一副场景图 — 用于描述我们想要渲染的场景的基本对象。然后,我们将接触 Java 3D 的一些更强大的功能。我们的重点将放在使用一些 Java 3D 实用类来开始您的编程。

预备知识

对 3D 编程没有任何经验的程序员都可以是本教程的读者。

系统需求

浏览器:Netscape 4.x 或更高版本, 或者 Internet Explorer 4.x 或更高版本,支持 Javas cript 。




思想

  Java 3D API 的设计是对以前流行的诸如 OpenGL 和 Direct3D 的 3D 图形 API 的重大革新(以前的 API 是同 3D 硬件设计紧密结合的低级过程性 API)。Java 3D 是一种功能强大的、面向对象的 API,它提供了许多超出我们认为作为“3D 图形 API”所能有的功能。Java 程序员可能会发现 Java 3D 编程环境非常熟悉而且易用。Java 3D 做了许多事情来为您管理图形数据,这样就使得您可以把精力集中在其它编程工作上。

  使用 Java 3D,首先要在场景图中设置所有的图形对象(也称为几何对象),场景图是一个层次模型,它包含有关场景中的对象以及如何渲染它们的全部信息。然后,将该场景图交由 Java 3D 渲染。您无须为显示数据而编写任何代码 ― Java 3D 为您完成了这项工作。通过使用内置的强大工具,您可以在一个更高的级别上进行编程。

对速度的需要

3D 程序员十分在意性能,这是有其原因的 ― 他们的应用程序往往对性能非常敏感。如果旋转的 CAD 模型没有平滑地旋转,或者 3D 应用程序用户不能够交互地抓取一个对象并移动它,用户将会立即注意到这一点。

令人欣慰的是,Java 3D 能够利用图形适配器所提供的任何 3D 加速性能。Java 3D 最终会在 JNI 层生成可以由图形卡加速的 OpenGL 调用。新工作站通常装有 OpenGL 加速适配器,因此您的 Java 3D 程序应该可以由硬件加速。



那么意义何在呢?




3D 图形将向您生活添加一个全新的维:z 维。在三维坐标(x,y,z)中,Z 指定该坐标离观察者的距离。Java 3D 使用 z 值除去远处遮住对象的不可见的表面。因为下图中的红色圆环离观察者的距离近,所以它的 z 值很小。当在渲染期间同时比较这两个圆环的 Z 值时,它将遮住蓝色圆环的一部分。



3D 对象包含在一起渲染的坐标集合(请参阅 Primitive 类)。您可以将它们渲染为点、线和多边形。游戏程序员可能想使用点来模仿怪物冲向玩家时射出的一串子弹。CAD 设计者为了看清她所设计的相当精确对象的更多细节,可能希望以线渲染。而当汽车设计者完成汽车对象的大部分设计的时候,他可以不是使用线框而是使用实心多边形的形式来渲染坐标。尽管实心多边形看起来更接近现实,但却不允许设计者方便地使用描述对象表面的基本数据。

在本教程中,我们将始终绘制多边形,因为这其中乐趣无穷。

移动对象



在创建完想显示的对象之后,我们可以使用 3D 变换来移动或缩放它们, 实际上就是让对象动起来。例如,当您玩 Quake 时,该游戏程序通过控制坏家伙的 3D 变换来表现他向您冲过来的效果。您视线的位置、方向和走向(在您被打成碎片之前!)被称为视点(viewpoint)。当您偷偷地四处寻找更多弹药的时候,变换更改您的视点。



变换在功能强大的 Transform3D 类中作为矩阵指定。Transform3D 提供许多助手函数以指定常见的变换,诸如平移、旋转和缩放。

光照和其它效果

除了指定在场景中显示什么对象之外,我们还可以通过指定光照效果来控制它们的显示方式(有关光照的更详细信息,请参阅 Light 类 )。您可以指定光照的效果类型,例如聚光灯,以及光的颜色。您还可以给您的场景指定雾化效果并且设置对象的自动行为。

材质贴图(通常称为粘贴墙纸)通常用于使场景更真实。例如,您可以使用木纹(wood grain)图像作为对象的表面来模仿橡木桌面。

几何对象不一定非得是非透明的;它们可以是透明的或半透明的。下图中的灯使用了透明和光照效果,陶器使用了材质贴图。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

沙发
发表于 2012-1-24 23:19:58 |只看该作者
2012不需誓言,只要相守无言;不需烛光晚餐,只要一桌淡饭;不需别墅,只要小屋一间;不需玫瑰,只要一个肩。爱平淡幸福,简单快乐。新年开心哦!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-1-25 23:27:54 |只看该作者
空调冷却不了青春的火焰,彩电演绎不了年轻的色彩,MP3播放不了岁月的音色,电影远比不上生命的出色,短信却能寄托我真诚的祝福:春节快乐!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-3-6 23:24:31 |只看该作者
加精、加亮滴铁子,尤其要多丁页丁页
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-4-3 13:06:43 |只看该作者
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-4-9 23:31:08 |只看该作者
呵呵,很好,方便罗。
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-5-18 23:26:22 |只看该作者
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-6-14 23:24:40 |只看该作者
既来之,则看之!
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-7-13 23:24:36 |只看该作者
凡系斑竹滴话要听;凡系朋友滴帖要顶!
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

10#
发表于 2012-9-21 23:29:20 |只看该作者
好`我顶``顶顶
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-20 22:36 , Processed in 0.585700 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部