在WebGL中创建自己的FPS:4掌控灯光和摄像头!

本文详细介绍了在BabylonJS中如何使用不同类型的灯光,包括半球光和定向光,以及如何利用灯光的特性创造各种效果。同时,文章还探讨了两种基本相机类型,并介绍了如何在特定场景中选择合适的相机。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

掌控灯光和摄像头!

好的,既然我们已经在场景中放置了对象并看到了所有基本的变换,那么我们将能够继续进行灯光和摄影机部分! 

像网格一样,相机和灯光可以使用   position 和   rotation,但   scaling 对它们没有影响。

 让它发光!

BabylonJS有很多类型的光源。为了工作他们,我们将留在   Arena.js

首先,非常重要的一点是要注意只有三个灯光可以接触网格。目前,这意味着我们不能定义三个以上的灯光。稍后,我将解释如何解决此问题。

一种光总是有两个值来定义,   diffuse 并且   specular 尽管默认定义。  diffuse 用于定义光的颜色   specular 及其亮度的强度(该值越接近白色,则对象越亮;该值越接近黑色,则它越哑光)。如果未指定这些值,则两者都将设置为(1,1,1),与Color3中的白色相对应。

您也可以使用降低照明强度   intensity

半球光

半球形光是我们当前在场景中拥有的光。它的区别在于照明非常接近天空,柔和的阴影。由无限平面表示,此光沿一个方向照亮。

参数为:

  • 灯的名称;

  • 照明的位置;

  • 当前场景。

定向光

定向光非常接近半球形光。但是,您不能定义定向光的位置,而只能定义其发光方向。

参数为:

  • 灯的名称;

  • 光的方向;

  • 当前场景。

  •  

 

 

 

 

 

 

背景始终为白色。Game.js  用   定义   scene.clearColor

如果您想找点乐子,我可以让您发现的效果  range ,该功能可让您定义灯光生效的最大距离。这是最显着的效果;) 

每盏灯都有其特质和缺点。由您决定要使用哪种灯光,具体取决于您要赋予的效果。尝试不同的组合以查看其影响,不要忘记可以使用的最大灯光数量是3个 ! ;)

引擎,它运行!

BabylonJS上有两个基本相机。但是,已经针对特殊情况创建了许多摄像头(立体摄影机,Occulus,跟随目标的摄像头等)。如果您想了解所有这些小奇迹,请不要犹豫,看一下教程 解释所有相机的官员。  :)

指示文件   Player.js !在那里,我们将可以使用具有此功能的相机进行播放_initCamera

 

 Alpha和Beta是两个值,以弧度表示,指示围绕相关点的旋转。下图显示了这些值对应的内容:

 

使用这两个摄像机,可能有很多用例。如您所知,我们将为FPS使用免费的相机,因为它给我们带来的可能性对于我们所需要的非常有趣。

  

恭喜你!您已经通过了课程的第一部分!既然您已经了解了BabylonJS的可能性,那么您将能够在下一部分中具体应用它们:您将开始在FPS上工作。

但是在此之前,是时候通过测验和练习来评估您在本部分中学到的知识。祝你好运!:p‌‌

转自https://openclassrooms.com/en/courses/3979376-creez-votre-propre-fps-en-webgl/3991561-prenez-en-main-les-lumieres-et-les-cameras

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值