返回列表 发新帖

babylonjs教程(24)-更多关于光源的

[复制链接]

138

主题

171

帖子

2564

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2564
发表于 2016-6-22 10:53:30 | 显示全部楼层 | 阅读模式
在前面的文章,我发现了如何使用材料来定义网格的外观。现在我们准备讨论光源。光源用来产生由每个像素接收的漫反射和镜面反射的颜色。然后该颜色用于决定材料每一像素的最终颜色。

Babylon.js允许你创建注册和你想要的一样多的光源,但要注意,StandardMaterial最多可以同时处理4个光源(光源列表中前4个可用的光源)
在这个文章中间,我会像你展示如何使用babylon.js提供的各种光源。

激活/停用光源

每个光源可以通过将isEnabled属性设置为false来停用。

但是你可以通过intensity属性控制光源整体的强度。

点光源(The point light)

点光源由唯一的一个点定义。灯光从这个点的每一个方向向外发射。

你可以控制光源的颜色通过 diffuse和specular属性:
  1. var light0 = new BABYLON.PointLight("Omni0", new BABYLON.Vector3(1, 10, 1), scene);
  2. light0.diffuse = new BABYLON.Color3(1, 0, 0);
  3. light0.specular = new BABYLON.Color3(1, 1, 1);
复制代码

8484.image_thumb_53D78E00.png

红色的diffuse和白色的specular颜色的点光源

方向光(The directional light)

方向光由一个方向定义(多么令人惊讶!)。光从四面八方发射到一个特定的方向,并具有无限的范围。

和点光源一样,你可以控制光源的颜色通过 diffuse和specular属性:
  1. var light0 = new BABYLON.DirectionalLight("Dir0", new BABYLON.Vector3(0, -1, 0), scene);
  2. light0.diffuse = new BABYLON.Color3(1, 0, 0);
  3. light0.specular = new BABYLON.Color3(1, 1, 1);
复制代码

4643.image_thumb_553E4183.png

红色的diffuse和白色的specular颜色的方向光

聚光光源(The spot light)

聚光光源由一个位置,一个方向,一个角度和一个指数来定义。这些值定义了一个圆锥光源从位置开始朝向方向。角度定义了聚光光束的尺寸,指数定义了光源沿着距离的衰减速度:

7723.image_thumb_11F5CA14.png

  1. var light0 = new BABYLON.SpotLight("Spot0", new BABYLON.Vector3(0, 30, -10), new BABYLON.Vector3(0, -1, 0), 0.8, 2, scene);
  2. light0.diffuse = new BABYLON.Color3(1, 0, 0);
  3. light0.specular = new BABYLON.Color3(1, 1, 1);
复制代码

1738.image_thumb_18AB6448.png

红色的diffuse和白色的specular颜色,0.8的弧度的圆锥以及指数是2。

半球光源(The hemispheric light)

半球光源是模拟真实周围环境光的一种简单方式。半球光源由一个指向天空的方向和三个颜色定义,这三个颜色是:一个是diffuse(天空颜色),一个用于地面(像素不朝向天空的颜色),一个是specular。
  1. var light0 = new BABYLON.HemisphericLight("Hemi0", new BABYLON.Vector3(0, 1, 0), scene);
  2. light0.diffuse = new BABYLON.Color3(1, 1, 1);
  3. light0.specular = new BABYLON.Color3(1, 1, 1);
  4. light0.groundColor = new BABYLON.Color3(0, 0, 0);
复制代码

4760.image_thumb_058CC84D.png

白色/黑色 hemispheric light

回复

使用道具 举报

发表回复

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

本版积分规则

快速回复 返回顶部 返回列表