ThreeJs:二、简单立方体

前言

在第一节中,我们介绍了创建一个三维对象所需要的基本要素。下面我们就要开始尝试做一个旋转的立方体了。


准备工作

  • 引入three.js的库文件

这里写图片描述


  • 创建场景(Scene)
    创建一个场景,并且获取浏览器屏幕的宽高。

这里写图片描述



  • 创建照相机(Camera)

这里创建的是一个远景相机(PerspectiveCamera),为什么选择远景相机进行投影呢?,因为远景投影也称之为透视投影。这个是我们人眼观察世界的模式。

构造器介绍:
PerspectiveCamera( fov, aspect, near, far )
fov - 从上往下的观察角度
aspect - 宽高比
near - 相机近裁剪面
far  - 相机远裁剪面

这里写图片描述


  • 设置物理材质
    物理材质相当于物体表面的颜色,花纹等特征。
    基础物体材料(MeshBasicMaterial):一个以简单着色(平面或线框)方式来绘制几何形状的材料。
    图示:
    这里写图片描述

这里写图片描述


  • 创建物体(Mesh)
    这里写图片描述
构造器介绍:
Mesh( geometry, material )
geometry - 一个几何模型的实例。
material - 一个材料的实例,用来定义对象的外观。

这里写图片描述


  • 创建渲染器(Render)
方法介绍:
setSize
调整输出canvas尺寸(宽度,高度),要考虑设备像素比,并且设置视口(viewport)以匹配该尺寸。
render ( scene, camera, renderTarget, forceClear )
使用相机渲染一个场景。

这里写图片描述


  • 进行渲染

这里写图片描述

这里写图片描述


效果图

这里写图片描述


代码预览:

/* eslint-disable */
(function() {
    // 创建场景
    var scene = new THREE.Scene();

    var width = window.innerWidth;
    var height = window.innerHeight;
    // 相机
    var camera = new THREE.PerspectiveCamera(40, 800/ 600, 1, 1000);
    camera.position.set(200,200,200);
    camera.lookAt(scene.position);
    // 材质
    var geometry = new THREE.CubeGeometry(100,100,100);
    var material = new THREE.MeshBasicMaterial({color: 0xfff00a});

    // 物体
    var cube = new THREE.Mesh(geometry, material);  
    scene.add(cube);
    // 灯光
    var light = new THREE.PointLight({color:0xf00fff});
    light.position.set(300,400,200);
    scene.add(light);
    // 渲染器
    var renderer = new THREE.WebGLRenderer();
    renderer.setSize(800, 600);
    document.body.appendChild(renderer.domElement);

    renderer.render(scene, camera);
    // 动画旋转
    function render() {
        requestAnimationFrame(render);
        cube.rotation.x += 0.1;
        cube.rotation.y += 0.1;
        renderer.render(scene, camera);
    }
    // render();
})();

资源网站

threejs源码地址:https://github.com/mrdoob/three.js
threejs API文档:https://hypnosnova.github.io/
threejs中文教程:http://techbrood.com/threejs/docs/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值