利用three.js画一个3D立体的正方体示例代码(2)

  • 这个唯美的场景就是scene,我们用相机camera拍摄下来形成照片
  • 为了能看清楚这个照片,我们把这个照片放置在一个画布canvas上
  • 最后,我们再用renderer修饰渲染一下

这样,我们就能成功展现这个3D世界了。

【程序还是很贴近生活哒😊】

通过现实世界的理解,我们接下来开始代码啦o( ̄▽ ̄)ブ

准备好canvas、scene、camera、renderer,给一个初始化的方法

<script>
var camera, scene, renderer, canvas;
init();
function init () {
 canvas = document.getElementById('canvas');
}

接下来我们要做的就是完善这个init()方法啦。

创建一个3D场景scene

场景最简单了,只需要用Scene声明一个scene对象。

scene = new THREE.Scene();

准备好camera

我们这里设置的相机是一个透视的相机PerspectiveCamera

camera有四个参数

  • 第一个参数是视线辐射的角度,这个参数越大,我们能看到的视觉越广,这个物体看上去会更小。
  • 第二个参数是图像内容展示的比例:width/height。我们一般把这个比例设置为和画布的比例一样,这样看到的图片才不会变形。
  • 第三四个参数分别是相机离展示内容(正方体)最近的距离和最远的距离。
camera = new THREE.PerspectiveCamera(45, 400/300, 1, 10);

接下来给camera设置摆放的位置,并把camera放到场景scene中

由于我们的世界是3D的,camera的摆放位置也是三维的,涉及三个参数:X轴、Y轴、Z轴。(0, 0, 0)是相机的原点,(1, 1, 5)就是把我们的相机往右和往上移动了1个单位,往后移动了5个单位。

ps: 这个时候画布canvas的大小正好是正方体的5倍。

camera.position.set(1, 1, 5);
scene.add(camera);

在场景中添加一个立方体

每个形状都是一个mesh,geometry可以理解为物体的骨骼, material可以理解为物体的皮囊

再创建一个可填充的形状cube

这样就构成了完整的实物

我们再将这个形状放入场景scene中

CubeGeometry参数设置为1:1:1表示这是一个正方体,当然可以自行修改比例,变成不一样的立方体

var geometry = new THREE.CubeGeometry(1, 1, 1);
// 添加three自带的最简单的一种材质
var material = new THREE.MeshBasicMaterial({
 color: 0xff0000,
});
var cube = new THREE.Mesh(geometry, material); 
var cube = new THREE.Mesh(geometry, material);
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1008.html