这一节我们使用Threejs提供的Sky和Water来创建天空和大海的效果,实现游轮随水波浮动效果,先看下最终效果
话不多说,直接开干,在前面的vue项目中新建组件,
在components文件夹新建SeaView.Vue组件,并在template模板中新建一个id为scene的div作为threejs的容器
<template><div id="scene"></div>
</template>
<script setup>
</script>
<style scoped>
</style>
在App.vue中引用SeaView.vue组件
<template> <sea-view></sea-view>
</template>
<script setup>
import SeaView from './components/SeaView.vue';
</script>
<style scoped>
</style>
在SeaView.Vue的script标签里引入Threejs并初始化场景,这些就不再细说了,不了解的看前面的文章
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import { onMounted } from 'vue'
let scene,camera,renderer,controls,water,sun,yacht
let mesh = []
onMounted(()=>{init()
})
function init() {initScene()initCamera()initAxesHelper()initLight()initRenderer()initControls() animate() window.addEventListener('resize',onWindowResize.bind(this))
}
// 初始化场景
function initScene() {scene = new THREE.Scene()scene.background = new THREE.Color(0x808080)
}
// 初始化相机
function initCamera() {camera = new THREE.PerspectiveCamera(75,window.innerWidth / window.innerHeight,0.1,1000)camera.position.set(2,2,2)
}
本文发布于:2024-01-29 00:01:17,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170645768011256.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |