假设您还有相机和光源,您的代码看起来基本正确。这是一个游乐场入口。
而且,为了后代,这里是代码:
var scene = new BABYLON.Scene(engine);
//Create a light
var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(-60, 60, 80), scene);
//Create an Arc Rotate Camera - aimed negative z this time
var camera = new BABYLON.ArcRotateCamera("Camera", Math.PI / 2, 1.0, 210, BABYLON.Vector3.Zero(), scene);
camera.attachControl(canvas, true);
//Creation of a repeated textured material
var materialPlane = new BABYLON.StandardMaterial("texturePlane", scene);
materialPlane.diffuseTexture = new BABYLON.Texture("textures/grass.jpg", scene);
materialPlane.specularColor = new BABYLON.Color3(0, 0, 0);
materialPlane.backFaceCulling = false;//Allways show the front and the back of an element
//Creation of a plane
var plane = BABYLON.Mesh.CreatePlane("plane", 120, scene);
plane.rotation.x = Math.PI / 2;
plane.material = materialPlane;
我从他们的一个演示开始,然后删除了大部分内容以获得最小的示例。我离开了backFaceCulling = false
(否则图像只能从一个方向看到),并添加到您的specularColor
设置中。
另一种方法是将 替换diffuseTexture
为emissiveTexture
:
materialPlane.emissiveTexture = new BABYLON.Texture("textures/grass.jpg", scene);
然后你可以注释掉光,它仍然是可见的。(事实上,如果你让光线指向它,它就会曝光过度。)
(我建议为您的键盘控制和碰撞检测问题开始一个新问题。或者通过巴比伦示例和教程视频进行工作。)