在WebGL中创建自己的FPS:3建模简单对象

建模简单对象

在这里,我们有一个场景,中间有一个地板和一个球体。太好了!但是我们并不真正了解我们所开发的全部功能。我们将在这里进行剖析并逐步了解对象的工作方式。您还将探索一些转换功能。最后,我们将前往基础材料的神奇世界。来吧,是时候开始了!

基本网格

在开始任何操作之前,删除两个对象  sphere 和  ground :我们将一起重做舞台。最后,您的文件   Arena.js 应如下所示:

在WebGL中创建自己的FPS:3建模简单对象

可以在BabylonJS中用一行代码创建许多基本的网格。我们将研究最重要的:地面,正方形,球形,圆柱体。其他对象的结构极为相似。 

如果对网格的实现方式有疑问,可以转到BabylonJS的文档

对象参数

所有对象都有共同的属性,在此处总结如下:

  •  name 对应于将是对象ID的字符串

  •  size 对应于对象的大小。

  •  scene 是将在其中创建对象的场景。

  •  updatable 指示是否在创建网格后对其进行修改(更改网格的大小或属性)。其值为true或false

  •  orientation 对应于将显示面的方向。

  •  subdivision 表示对象的详细程度(此值越大,对象越详细。

对象的脸仅向外渲染(BABYLON.Mesh.DEFAULTSIDE)。如果您查看一个对象内部,则该对象似乎消失了,好像它不再存在。要扭转这种情况,请BABYLON.Mesh.BACKSIDE 在  指示   subdivision

理由

要创建计划,以下是相应的代码:

在WebGL中创建自己的FPS:3建模简单对象

  •  width 允许指示平面的宽度。

  •  depth 允许指示平面的深度。

立方体

添加多维数据集的行如下:

在WebGL中创建自己的FPS:3建模简单对象

球体

使用以下几行创建球体:

在WebGL中创建自己的FPS:3建模简单对象

segments例如   subdivision,如果数量很多,则可以提高对象的质量。该数字对应于圆的段数。

油缸

圆柱的创建是此处四个对象中最复杂的。这是代码:

在WebGL中创建自己的FPS:3建模简单对象

  •  height 调整圆柱体的高度。

  •  diamTop 更改列顶部的圆的宽度。

  •  diamBottom 更改列底部圆的宽度。

  •  tesselation与一样   subdivision,调整渲染对象的质量。

通过这四个目标,我们将实现以下目标:

在WebGL中创建自己的FPS:3建模简单对象

 

我看到了如何创建对象,但是我们还没有看到如何放置它们或向它们添加材料!

我们来了!首先创建对象,放置它们,然后我们将为它们添加材料。

第一个竞技场!

首先创造土壤。取回上面创建的内容,您将影响20宽深的土壤。

注意将要创建的网格物体放在文件中我们上面定义的灯光下方   Arena.js

在WebGL中创建自己的FPS:3建模简单对象

 

最后,让我们添加圆柱体。它的高度将为20,顶部和底部的直径将为5,细分中的镶嵌将为20,细分为5。

这些数字不是固定的。尝试不同的组合以了解它们对网格的影响!

在WebGL中创建自己的FPS:3建模简单对象

 刷新您的网页,结果应如下所示:

在WebGL中创建自己的FPS:3建模简单对象

 

由于它们都在同一位置,因此通常只看到平面和圆柱体。现在,您将它们放置在场景中。

场景中网格的定位

使用Vector3修改网格的三种类型(我想提醒您,Vector3是X,Y,Z中的坐标):

  •  position :谁将移动网格

  •  rotation :将旋转网格以弧度定义的角度

  •  scaling :将乘以网格的大小

为了观察每个修改器对我们的网格的影响,我们将分别使用它们。

地线

在WebGL中创建自己的FPS:3建模简单对象

 在WebGL中创建自己的FPS:3建模简单对象

 

 在WebGL中创建自己的FPS:3建模简单对象

 在WebGL中创建自己的FPS:3建模简单对象

在WebGL中创建自己的FPS:3建模简单对象 

在WebGL中创建自己的FPS:3建模简单对象

在WebGL中创建自己的FPS:3建模简单对象 Arena.js 本节的最终代码  应如下所示:

 在WebGL中创建自己的FPS:3建模简单对象

 在WebGL中创建自己的FPS:3建模简单对象

再次,您可以看到该函数   clone() 通过material 与克隆对象共享声音而节省了我们的代码行   。这样,您只需为所有Box定义一次材质即可。

  

你去!我们的对象被创建并放置在具有非常漂亮纹理的平面上!乐于修改我们在这里的内容!您必须很好地理解这些转换,因为它们会出现在我们游戏的每个角落。

快来看灯和摄像机,现在该看看我们可以用它做什么!在WebGL中创建自己的FPS:3建模简单对象 ‌

转自https://openclassrooms.com/en/courses/3979376-creez-votre-propre-fps-en-webgl/3990221-modelisez-des-objets-simples