three.js(一)创建场景添加物体

目录

前言 

一、创建Three世界

1.导入Three.js

2.引入three

 3.创建基本结构

4.创建场景、相机、渲染器

场景

 相机

 渲染器

二、向场景中存放物体

1.创建一个物体

几何体

材质

网格模型


前言 

官方网站icon-default.png?t=N7T8https://threejs.org/网站目录翻译

文档连接icon-default.png?t=N7T8https://threejs.org/docs/index.html#manual/zh/introduction/Installation

文档支持中文,学习十分的方便

一、创建Three世界

1.导入Three.js

下载指定版本的three.js

npm install three@0.148.0 --save

或者使用sdk方式,在官网下载three然后找到three.js导入

根据需要选择方式

2.引入three

// 引入three.js
import * as THREE from 'three';

 3.创建基本结构

<template lang="">
   
</template>
<script>
import * as THREE from 'three';

export default {
    
    data() {

    },
    mounted() {
       
    },
    methods: {
       
    },
}
</script>
<style lang="">
    
</style>

4.创建场景、相机、渲染器

场景

存放三维物体的容器

// 创建3D场景对象Scene
const scene = new THREE.Scene();

 相机

观测场景的方式

// 实例化一个透视投影相机对象
// 30:视场角度, width / height:Canvas画布宽高比, 1:近裁截面, 3000:远裁截面
const camera = new THREE.PerspectiveCamera(30, width / height, 1, 3000);
//相机在Three.js三维坐标系中的位置
camera.position.set(200, 200, 200); 
//相机观察目标指向Threejs 3D空间中某个位置
camera.lookAt(0, 0, 0); //坐标原点

 渲染器

将三维场景在浏览器展示的画布

// 创建渲染器对象
const renderer = new THREE.WebGLRenderer();

// 定义threejs输出画布的尺寸(单位:像素px)
const width = 800; //宽度
const height = 500; //高度

//通过.setSize()方法改变画布的大小
renderer.setSize(width, height);

//执行渲染操作,场景发生变化后都要执行一次渲染
renderer.render(scene, camera);

 三大基本组件创建完成后让场景绑定到DOM元素上

//渲染器WebGLRenderer通过属性.domElement可以获得渲染方法.render()生成的Canvas画布

document.body.appendChild(renderer.domElement);

 添加html节点用于绑定渲染器的Canvas画布

<div id="webgl"></div>

通过appendChild方法在指定元素下添加一个子节点

document.getElementById('webgl').appendChild(renderer.domElement);

至此场景就被创建成功了,运行代码后依旧啥都看不见是因为我们的场景中没有任何物体

二、向场景中存放物体

1.创建一个物体

创建一个物体也有三个要素

物体三要素
物体形状:几何体  物体外观:材质物体本体:网格模型

几何体

//创建一个长方体几何对象Geometry
const geometry = new THREE.BoxGeometry(100, 100, 100); 

材质

//创建一个材质对象Material
const material = new THREE.MeshBasicMaterial({
    color: 0xff0000,//0xff0000设置材质颜色为红色
}); 

网格模型

const mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
//设置网格模型在三维空间中的位置坐标,默认是坐标原点
mesh.position.set(0,10,0);
scene.add(mesh); 

到此页面会加载一个红色的方块,就表明创建物体成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
three.js创建一个场景需要几个步骤。 首先,您需要创建一个场景对象[1]。您可以使用以下代码创建一个场景: ``` const scene = new THREE.Scene(); ``` 接下来,您需要创建一个相机对象,以便在场景中查看和渲染物体。您可以使用以下代码创建一个透视相机: ``` const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); ``` 然后,您需要创建一个渲染器对象,将场景和相机渲染到屏幕上。您可以使用以下代码创建一个基本的WebGL渲染器: ``` const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); ``` 接下来,您可以创建一个物体并将其添加场景中。例如,您可以创建一个立方体并将其添加场景中: ``` const geometry = new THREE.BoxGeometry(); const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); const cube = new THREE.Mesh(geometry, material); scene.add(cube); ``` 最后,您需要使用渲染器来渲染场景和相机。您可以使用以下代码在每一帧中渲染场景: ``` function animate() { requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); } animate(); ``` 通过以上步骤,您就可以在three.js创建一个简单的场景物体了。您可以根据您的需求进一步扩展和定制场景

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值