Vue与Three.js结合
Posted webgis学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue与Three.js结合相关的知识,希望对你有一定的参考价值。
<template>
<div>
<div id="threeContainer"></div>
</div>
</template>
<script>
import * as THREE from "three";
export default {
name: "ThreeTest",
data() {
return {
camera: null,
scene: null,
renderer: null
};
},
methods: {
init() {
this.scene = new THREE.Scene();
let container = document.getElementById("threeContainer");
this.camera = new THREE.PerspectiveCamera(
70,
container.clientWidth / container.clientHeight,
0.01,
1000
);
this.camera.position.z = 10;
var p1 = new THREE.Vector3(0, 0, 0);
let geometry = new THREE.Geometry(); //声明一个几何体对象Geometry
//绑定顶点到几何体
geometry.vertices.push(p1);
geometry.colors = [new THREE.Color(0xff0000)];
//如果以点的形式渲染,需要设置点对应材质
let pointMaterial = new THREE.PointsMaterial({
color: 0xffffff, //设置颜色,默认 0xFFFFFF
vertexColors: true, //定义材料是否使用顶点颜色,默认false ---如果该选项设置为true,则color属性失效
size: 1.0 //定义粒子的大小。默认为1.0
});
//生成点模型
var points = new THREE.Points(geometry, pointMaterial);
//将模型添加到场景
this.scene.add(points);
this.renderer = new THREE.WebGLRenderer();
this.renderer.setSize(container.clientWidth, container.clientHeight);
this.renderer.render(this.scene, this.camera);
container.appendChild(this.renderer.domElement);
}
},
mounted() {
this.init();
}
};
</script>
<style scoped>
#threeContainer {
width: 500px;
height: 500px;
}
</style>
以上是关于Vue与Three.js结合的主要内容,如果未能解决你的问题,请参考以下文章
cesium 和 Three.js有啥区别,以及二者与WebGL 的关系
使用vue学习three.js之渲染后期处理-使用BrightnessContrastShader定制效果调整页面的亮度与对比度