WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境

这篇具有很好参考价值的文章主要介绍了WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

好 今天 我也是在网上学的 带着大家一起来做个3D贺卡

首先 我们要创建一个vue3的项目、
先创建一个文件夹 装我们的项目
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
终端执行 vue create 项目名称
例如 我的名字想叫 greetingCards
就是

vue create greetingcards

因为这个名录 里面是全部都小写的
然后 下面选择 vue3
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
然后按下回车 等待项目创建完成 目录就出来了
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
然后 我们编辑器 打开新创建的项目
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
这里 我们在项目终端 执行

npm install three gsap

three 肯定是要的 然后还需要 gsap 这个补间动画的效果
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
安装完成后 我们

npm install

安装一下整体项目依赖
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
我们在项目 根目录下的 public 目录下 创建目录 叫 model
我们用它来放模型

因为 我们 scene.glb 是压缩过的 所以 我们要处理一下把three中的解压工具拿出来用
我们在项目根目录中 找到 node_modules下的 three
然后在 其中打开 examples 下面有一个 jsm
在下面找到 libs
下面的 draco 就是我们要的东西
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
将这个包 复制到我们自己的静态资源目录public下
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
然后 我们需要一个 scene.glb 的场景元素 这里 可以直接下载我的资源
WEB 3D技术 three.js 3D贺卡 场景素材
解压出来 里面有一个 scene.glb 将它放在 项目根目录下 public 目录下的 model目录中
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
然后 在App.vue组件中 改写代码如下

<template>
  <div></div>
</template>

<script setup>
//导入 threeJS
import * as THREE from "three"
//导入gsap补间动画
//import gsap from "gsap";
//导入 OrbitControls 控制器
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
//导入gltf加载器
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
//导入draco解码察
import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader.js";
//初始化场景
const scene = new THREE.Scene();
//初始化相机
const camera = new THREE.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000
);
//设置相机position位置
camera.position.set(-3.23, 2.98, 4.06);
//更新相机的投影举证
camera.updateProjectionMatrix();
//初始化渲染器
const renderer = new THREE.WebGLRenderer({
  //设置抗锯齿
  antialias: true
});
//设置渲染器
renderer.setSize(window.innerWidth, window.innerHeight);
//将渲染器渲染的dom元素 追加到 body元素下
document.body.appendChild(renderer.domElement);

//设置控制器
const controls = new OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
//加载 glb资源
const gltfLoader = new GLTFLoader();
// 实例化加较器draco
const dracoloader = new DRACOLoader();
dracoloader.setDecoderPath("/draco/");
gltfLoader.setDRACOLoader(dracoloader);
gltfLoader.load(
    // 模型路径
    "/model/scene.glb",
    // 加较完成同调
    (gltf) =>{
        gltf.scene.traverse((child) => {
            if (child.isMesh) {
                child.frustumCulled = false;
                child.castShadow = true;
                child.material.emissive = child.material.color;
                child.material.emissiveMap = child.material.map;
            }
        });
        scene.add(gltf.scene);
    }
)
//添加平行光
const light = new THREE.DirectionalLight(0xffffff, 1);
//设置光源 position 三轴位置属性
light.position.set(0, 50, 0);
//将光添加进场景
scene.add(light);
//编写渲染函数
function render(){
    requestAnimationFrame(render);
    renderer.render(scene, camera);
    controls.update();
}
render();
</script>

<style>
/*
  设置全局样式
*/
* {
  /* 内外边界清零 */
  margin: 0;
  padding: 0;
}
/* 设置背景 canvas 宽高为屏幕的  百分之百 */
canvas{
  width: 100vw;
  height: 100vh;
  /*
     设置为行元素
  */
  display: block;
  /*
     设置元素固定定位 位置为左上角
  */
  position: fixed;
  left: 0;
  top: 0;
}
</style>

这里 我注释写的也算非常认真了
大家可以先复制上去 实现效果 然后慢慢研究
运行结果如下
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d
拉大屏幕
WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境,前端,javascript,3d文章来源地址https://www.toymoban.com/news/detail-805566.html

到了这里,关于WEB 3D技术 three.js 3D贺卡(1) 搭建基本项目环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WEB 3D技术 three.js 点光源

    本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 PointLight 创建一个点光源 这里我们给了

    2024年01月19日
    浏览(31)
  • WEB 3D技术 three.js 阴影属性

    上文 WEB 3D技术 three.js 光照与阴影 我们说了阴影 那么 我们继续将阴影的属性 目前 我们的代码 目前阴影效果是这样的 我们可以设置它的一个模糊度 我们官网搜索 LightShadow 下面找到 radius 模糊度的一个属性 这里 我们可以 设置 20 的一个模糊度 运行代码 然后看我们的模糊度

    2024年01月22日
    浏览(36)
  • WEB 3D技术 three.js 聚光灯

    本文 我们来说说 点光源和聚光灯 点光源 就像一个电灯泡一样 想四周发散光 而聚光灯就像手电筒一样 像一个方向射过去 距离越远范围越大 光越弱 我们先来看一个聚光灯的效果 我们可以编写代码如下 SpotLight 聚光灯 然后通过 position 设置一下光的位置 运行代码如下 目前看

    2024年01月21日
    浏览(32)
  • WEB 3D技术 three.js draco解压器 解决 压缩后的gltf/glb报错 Error: THREE.GLTFLoader: No DRACOLoader instance pravid

    通常 我们 glb/gltf里面都是非常大的场景 有些工具 它会因为过大做了压缩 导致 我们开始是用不了的 我们可以官网搜索 draco 如下图选择 这是个解压工具 用在我们各种的3D建模软件中 大部分是通用的 我们先在代码中导入工具 我们在项目根目录中 找到 node_modules下的 three 然后

    2024年04月16日
    浏览(28)
  • Three.js--》实现3d小岛模型搭建

    目录 项目搭建 初始化three.js基础代码 设置环境背景 设置水面样式 添加天空小岛 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写three项目,借用vite构建

    2024年02月05日
    浏览(34)
  • web上构建3d效果 基于three.js的实例

    web页面上提供3D效果,可以为页面提供不少色彩,H5之后canvas 为webgl提供了基础,使得在web页面使用JS也能写出3D的效果,其中three.js作为封装了图形函数 的框架,为入门提供了方便,效果图如下。   以上是官方例子中其中的三个,没接触过的朋友肯定会觉得很神奇,事实上

    2024年02月05日
    浏览(27)
  • Three.js3D可视化介绍,以及本地搭建three.js官网

    一、什么是Three.js three.js官网 :https://threejs.org/ Three.js 是一个基于 WebGL 的 JavaScript 3D 图形库,它可以轻松地在浏览器中 创建3D场景和动画 。同时,它支持外部模型和纹理的导入,让开发者可以更加便捷地创建出震撼的 3D场景 。 Three.js 的应用场景非常广泛,主要包括以下几个

    2024年02月09日
    浏览(31)
  • Three.js--》实现3d汽车模型展览搭建

    目录 项目搭建 初始化three.js基础代码 添加汽车模型展示 动态修改汽车模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写three项目,借用vite构建工具

    2024年02月06日
    浏览(33)
  • Three.js--》实现3d水晶小熊模型搭建

    目录 项目搭建 初始化three.js基础代码 加载背景纹理 加载小熊模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写three项目,借用vite构建工具搭建vue项

    2024年02月06日
    浏览(29)
  • 如何用Three.js + Blender打造一个web 3D展览馆

    作者:vivo 互联网前端团队- Wei Xing  运营活动新玩法层出不穷,web 3D炙手可热,本文将一步步带大家了解如何利用Three.js和Blender来打造一个沉浸式web 3D展览馆。 3D展览馆是什么,先来预览下效果: 看起来像个3D冒险类手游,用户可以操纵屏幕中央的虚拟摇杆,以第一人称视角

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包