添加纹理:
接上一章,房子的雏形完成了。我们需要给房子添加一个标准材质:
const material = new BABYLON.StandardMaterial("name", scene);
接下来我们让地板变成绿色的草地:
//创建了一个标准材质,由于只有一个场景,我们可以删除该参数并让它默认为当前场景。
const groundMat = new BABYLON.StandardMaterial("groundMat");
//让材质变成绿色
groundMat.diffuseColor = new BABYLON.Color3(0, 1, 0);
//将这个材质赋值给地板
ground.material = groundMat;
对于颜色,Babylon封装了一些颜色,可以直接使用:
new BABYLON.Color3.Red();
new BABYLON.Color3.Green();
new BABYLON.Color3.Blue();
new BABYLON.Color3.Black();
new BABYLON.Color3.White();
new BABYLON.Color3.Purple();
new BABYLON.Color3.Magenta();
new BABYLON.Color3.Yellow();
new BABYLON.Color3.Gray(),
new BABYLON.Color3.Teal();
然后,我们需要设置房子的房顶和房子的墙的纹理:
const roofMat = new BABYLON.StandardMaterial("roofMat");
roofMat.diffuseTexture = new BABYLON.Texture("https://assets.babylonjs.com/environments/roof.jpg", scene);
const boxMat = new BABYLON.StandardMaterial("boxMat");
boxMat.diffuseTexture = new BABYLON.Texture("https://www.babylonjs-playground.com/textures/floor.png");
这里出现的BABYLON.Texture(url ,scene)
参数1 : 纹理的相对或者绝对路径
参数2 : 添加的场景, 默认是当前场景
最后给材质赋值:
roof.material = roofMat;
box.material = boxMat;
房子会呈现如下的样子:
没有门窗的石墙对于房子来说并不是一个有趣的外观。此外,当您仔细观察时,您会发现每一边都使用相同的图像,并且在某些边上进行了旋转。