VUE3架构threejs 基础vite开发环境npm方式的安装流程

[复制链接]
查看: 324   回复: 0

138

主题

138

帖子

795

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
795
2023-4-25 23:18:00   显示全部楼层   阅读模式  
沟通.jpg


1.安装vite框架环境

  1. npm create vite@latest my-xiefan-map -- --template vue
复制代码
my-xiefan-map是你得工程文件 你可以改成自己得


2.然后安装npm

cd到安装目录下面得生成子目录

  1. npm install
复制代码
3.安装less,css预处理插件

  1. npm i less-loader less --save-dev
复制代码

4.安装threejs依赖

  1. npm install three
复制代码
如果安装历史版本得152
  1. npm install three@0.152.0
复制代码

5.添加在根目录得vite.config.js相对路径配置代码
根目录--
--vite.config.js

添加如下代码

  1.   base: "./",//等同于  assetsPublicPath :'./'
复制代码
1.jpg


6.运行跑项目

  1. npm run dev
复制代码

7.rest一下全局得默认css
在如下目录
--my-xiefan-map
--src
  --style.css

把如下rest全局css粘贴上去

点击查看

8扫尾derco压缩

  1. gltf-pipeline -i model.glb -o modelDraco.glb -d
复制代码
9安装ajx插件

  1. npm install axios
复制代码

10 vue3场景基础组件代码

  1. <!--
  2. * @Author: xiefan 4033638634@qq.com
  3. * @Date: 2023-05-20 23:11:17
  4. * @LastEditors: xiefan 4033638634@qq.com
  5. * @LastEditTime: 2023-05-20 23:31:52
  6. * @FilePath: \7e:\project\2023\5\20 ts学习\my-xiefan-map\src\components\threejs.vue
  7. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  8. -->
  9. <script setup >
  10. import { reactive, toRefs, ref, computed, onMounted } from 'vue'
  11. import * as THREE from 'three';
  12. import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';

  13. const scene = new THREE.Scene();
  14. const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

  15. const renderer = new THREE.WebGLRenderer();
  16. renderer.setSize(window.innerWidth, window.innerHeight);
  17. const geometry = new THREE.BoxGeometry(1, 1, 1);
  18. const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
  19. const cube = new THREE.Mesh(geometry, material);
  20. scene.add(cube);
  21. camera.position.z = 5;
  22. const controls = new OrbitControls( camera, renderer.domElement );
  23. function animate() {
  24.     requestAnimationFrame(animate);

  25.     cube.rotation.x += 0.01;
  26.     cube.rotation.y += 0.01;
  27.     controls.update()
  28.     renderer.render(scene, camera);
  29. }
  30. animate();

  31. function onWindowResize() {

  32. var SCREEN_WIDTH = window.innerWidth;
  33. var SCREEN_HEIGHT = window.innerHeight;
  34. // CSS3renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
  35. renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
  36. camera.aspect = SCREEN_WIDTH / SCREEN_HEIGHT;
  37. camera.updateProjectionMatrix();

  38. }

  39. window.addEventListener('resize', onWindowResize);//添加窗口改变相机刷新时间


  40. onMounted(() => {
  41.     const threediv = document.getElementById('three')
  42.     threediv.appendChild(renderer.domElement);
  43. })
  44. </script>
  45. <template>
  46.     <div id="three">
  47.     </div>
  48.     <div class="title"> 谢凡threejs+vue3得结合操作</div>
  49. </template>

  50. <style scoped lang='less'>
  51. .title{
  52.     width: 100vw;
  53.     height: 100vh;
  54.     position: absolute;
  55.     margin: auto;
  56.     top:60px;
  57.     color:white;
  58.     text-align: center;
  59.     font-size: 30px;
  60.     // font-weight: bold;
  61.     pointer-events: none;
  62. }
  63. </style>
复制代码

这个组件代码得在线效果

访问地址
https://www.xiefansq.cn/threejsP/2023/5/21/









回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司