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

[Java3D] Java3D探奇(一)——Java 3D眼中的世界

[复制链接]

1026

主题

1

听众

6011

积分

高级设计师

Rank: 6Rank: 6

纳金币
5996
精华
1

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

跳转到指定楼层
楼主
发表于 2011-8-3 15:32:44 |只看该作者 |倒序浏览
本教程是为没有任何 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
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

沙发
发表于 2012-1-21 23:21:02 |只看该作者
鉴于你今年的良好表现,新年将至,别人都在祝福你新年快乐,我觉得换一种新颖的方式祝福你,那就是:天天开心,事事顺利,雷打不动的祝福属于你!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

板凳
发表于 2012-3-24 23:24:27 |只看该作者
谢谢楼主,真是太实用了
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

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

地板
发表于 2012-5-8 23:26:43 |只看该作者
这么后现代
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

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

5#
发表于 2012-6-8 23:21:47 |只看该作者
先垫一块,再说鸟
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

6#
发表于 2012-7-3 23:25:46 |只看该作者
楼主收集的可真全哦
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

7#
发表于 2012-8-13 11:40:04 |只看该作者
你们都躲开,我来顶
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

8#
发表于 2012-8-19 23:47:27 |只看该作者
跑着去顶朋友滴铁
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

9#
发表于 2012-8-24 23:25:34 |只看该作者
先垫一块,再说鸟
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

10#
发表于 2012-9-19 10:02:21 |只看该作者
凡系斑竹滴话要听;凡系朋友滴帖要顶!
回复

使用道具 举报

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

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-21 12:53 , Processed in 0.093255 second(s), 29 queries .

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

© 2008-2019 Narkii Inc.

回顶部