查看: 2741|回复: 5
打印 上一主题 下一主题

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

[复制链接]

130

主题

1

听众

6206

积分

高级设计师

Rank: 6Rank: 6

纳金币
6206
精华
0

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

跳转到指定楼层
楼主
发表于 2012-2-7 07:42:43 |只看该作者 |倒序浏览
场景中的光是由Light 类来管理,Light 类中的所有子类都有一个开/关位,以及一个它所描述场景区域的绑定对象。在 Java 3D 中,可以同时使用多个Light子类来模拟实际的光照效果,以下是几个常用的Light 子类:
AmbientLight
无处不在的光,不发自某个特定点,也不指向某个特定方向。
PointLight
点光源,一个典型的例子就是灯泡
SpotLight
聚焦型点光源,例子是手电筒。
DirectionalLight
射向某一个特定方向,却不发自任何特定位置的光源,使用 DirectionalLight 可准确地模拟太阳光。
所有运用Light类的节点都是场景图中的叶节点,创建它们时需要指定 Bounds 对象,这里要使用 BoundingSphere,Light 类将只影响

BoundingSphere 所定义的空间,最后别忘了将创建的Light 节点附加到场景图的顶部

BranchGroup中。
场景中的对象如何反射光线是通过它的材质特性来描述的。如果场景中的对象(Primitive 或 Shape3D)在它的 Appearance中没有相应的 Material描述,那即使有光源,它也不会被照亮。所以程序员必须创建一个 Material 对象,然后将其添加到 Appearance 中。为了方便理解,请设想一颗红宝石和一条红地毯,虽然都是红色的,但它们对光的反射却不同。在Java 3D 中要实现这一差异,则可以在 Material 中为红宝石指定一个高 shininess 值而给地毯一个低的 shininess 值。
表面法线是与该点所在平面垂直的矢量,它会影响该点反射光的方式,Java 3D中的Primitive 类会自动生成表面法线,并且使用它来计算光照效果。因为每一顶点都会计算光照效果,所以顶点越多的对象看起来会越逼真。



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

使用道具 举报

73

主题

1

听众

4778

积分

中级设计师

Rank: 5Rank: 5

纳金币
4778
精华
0

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

沙发
发表于 2012-2-7 13:00:58 |只看该作者
路过,学习了
回复

使用道具 举报

22

主题

1

听众

1465

积分

助理设计师

Rank: 4

纳金币
1465
精华
0
板凳
发表于 2012-2-7 22:44:11 |只看该作者
看了
回复

使用道具 举报

797

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
5568
精华
0

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

地板
发表于 2012-2-9 08:49:26 |只看该作者
顶楼猪
回复

使用道具 举报

22

主题

1

听众

1465

积分

助理设计师

Rank: 4

纳金币
1465
精华
0
5#
发表于 2012-2-9 14:48:31 |只看该作者
haha
回复

使用道具 举报

337

主题

1

听众

7332

积分

高级设计师

Rank: 6Rank: 6

纳金币
7331
精华
0

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

6#
发表于 2012-3-21 21:05:44 |只看该作者
java
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2024-11-15 21:34 , Processed in 0.395171 second(s), 32 queries .

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

© 2008-2019 Narkii Inc.

回顶部