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

[红蓝3D] Java 3D基础(三)

[复制链接]

130

主题

1

听众

6206

积分

高级设计师

Rank: 6Rank: 6

纳金币
6206
精华
0

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

跳转到指定楼层
楼主
发表于 2011-12-21 08:45:21 |只看该作者 |倒序浏览

Java 3D 的场景图是由两个分支组成的树状图,分别是:内容(content)和视图(view)。
视图分支中含有复杂的 Java 3D 所要描述视图模型的所有细节,还包括定义视点,幸好在大多数简单应用下可以用Java 3D中提供的统一实用类来处理这些视图管理方面的工作。
内容分支描述了在场景中你将看到什么,它包含所有图形对象的几何形状(球体、立方体等)、移动它们所用的转换、光亮度、它的行为、组节点和烟雾等,大多数需要程序员做的工作集中在内容分支。

组(Group)节点和能力位(Capability bits)
程序员可以使用 Group 节点来把场景图组织成相互关联的部分,每个 Group 节点还可包含一些子节点,在处理这些节点时将同时渲染这些子节点。
其中,Switch 节点和 TransformGroup 节点比较特殊,程序员可以通过它们对场景图实施进一步的控制。编译器在处理TransformGroup 节点时会同时对其子节点应用 3D 变换(如平移、缩放或旋转),这使得程序员可以移动、旋转或缩放整个场景图。而Switch 节点会限制在渲染期间访问的子节点,使程序员可以控制渲染场景图某个具体部分。(纳金网注:以3D游戏 Quake 为例,如果将不同武器分组到一个 Switch 节点下,就可以实现只渲染当前的武器)

Java 3D 会尽可能地通过预先计算来优化渲染过程,如果想在渲染时更改场景,则必须先用能力位指定想更改的数据。例如,如果使一个对象动起来时要更改影响该对象的变换,则要先在 TransformGroup 中开启 ALLOW_TRANSFORM_WRITE 位,代码如下(纳金网注:能力位允许访问场景图节点中的数据):

suzySpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

场景图在附加到空间(universe)之前,可以对它做任意更改。然而,在 Java 3D 开始渲染后,就只能对适当设置了能力位的对象进行更改。

请看下面这段代码,它只显示一个立方体:
Canvas3D c = new Canvas3D(
SimpleUniverse.getPreferredConfiguration());
setLayout(new BorderLayout());
add(“Center”, canvas);
BranchGroup scene = new BranchGroup();
scene.addChild(new ColorCube(0.4));
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);

范例中首先创建一个 Canvas3D 以在其上绘图,同时创建一个 SimpleUniverse 分支来处理所有的与视图管理工作相关的参数。注意内容分支的顶部总是 BranchGroup,将 ClolrCube 作为子对象添加给 BranchGroup 渲染。当将 BranchGroup 添加到 SimpleUniverse 之后,Java 3D 将不断循环地进行渲染。
Java, 3D
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

22

主题

1

听众

1465

积分

助理设计师

Rank: 4

纳金币
1465
精华
0
沙发
发表于 2011-12-21 14:21:06 |只看该作者
看样子还要学点java才行哈
回复

使用道具 举报

73

主题

1

听众

4778

积分

中级设计师

Rank: 5Rank: 5

纳金币
4778
精华
0

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

板凳
发表于 2011-12-21 14:38:34 |只看该作者
学点java还是有用的
回复

使用道具 举报

130

主题

1

听众

6206

积分

高级设计师

Rank: 6Rank: 6

纳金币
6206
精华
0

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

地板
发表于 2012-3-29 13:05:48 |只看该作者
hk
回复

使用道具 举报

337

主题

1

听众

7332

积分

高级设计师

Rank: 6Rank: 6

纳金币
7331
精华
0

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

5#
发表于 2012-3-29 19:17:14 |只看该作者
回复

使用道具 举报

330

主题

1

听众

1450

积分

助理设计师

Rank: 4

纳金币
1448
精华
0
6#
发表于 2012-3-29 19:58:50 |只看该作者
  
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

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

7#
发表于 2012-6-21 23:25:43 |只看该作者
先顶上去,偶要高亮加精鸟!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

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

8#
发表于 2012-7-10 23:22:55 |只看该作者
“再次路过……”我造一个-----特别路过
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

9#
发表于 2012-7-28 23:24:36 |只看该作者
有意思!学习了!
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

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

10#
发表于 2012-9-21 23:28:57 |只看该作者
“再次路过……”我造一个-----特别路过
回复

使用道具 举报

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

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

GMT+8, 2024-11-14 17:00 , Processed in 0.103588 second(s), 30 queries .

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

© 2008-2019 Narkii Inc.

回顶部