国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境

這篇具有很好參考價(jià)值的文章主要介紹了WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

好 今天 我也是在網(wǎng)上學(xué)的 帶著大家一起來做個(gè)3D賀卡

首先 我們要?jiǎng)?chuàng)建一個(gè)vue3的項(xiàng)目、
先創(chuàng)建一個(gè)文件夾 裝我們的項(xiàng)目
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
終端執(zhí)行 vue create 項(xiàng)目名稱
例如 我的名字想叫 greetingCards
就是

vue create greetingcards

因?yàn)檫@個(gè)名錄 里面是全部都小寫的
然后 下面選擇 vue3
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
然后按下回車 等待項(xiàng)目創(chuàng)建完成 目錄就出來了
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
然后 我們編輯器 打開新創(chuàng)建的項(xiàng)目
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
這里 我們?cè)陧?xiàng)目終端 執(zhí)行

npm install three gsap

three 肯定是要的 然后還需要 gsap 這個(gè)補(bǔ)間動(dòng)畫的效果
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
安裝完成后 我們

npm install

安裝一下整體項(xiàng)目依賴
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
我們?cè)陧?xiàng)目 根目錄下的 public 目錄下 創(chuàng)建目錄 叫 model
我們用它來放模型

因?yàn)?我們 scene.glb 是壓縮過的 所以 我們要處理一下把three中的解壓工具拿出來用
我們?cè)陧?xiàng)目根目錄中 找到 node_modules下的 three
然后在 其中打開 examples 下面有一個(gè) jsm
在下面找到 libs
下面的 draco 就是我們要的東西
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
將這個(gè)包 復(fù)制到我們自己的靜態(tài)資源目錄public下
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
然后 我們需要一個(gè) scene.glb 的場(chǎng)景元素 這里 可以直接下載我的資源
WEB 3D技術(shù) three.js 3D賀卡 場(chǎng)景素材
解壓出來 里面有一個(gè) scene.glb 將它放在 項(xiàng)目根目錄下 public 目錄下的 model目錄中
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
然后 在App.vue組件中 改寫代碼如下

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

<script setup>
//導(dǎo)入 threeJS
import * as THREE from "three"
//導(dǎo)入gsap補(bǔ)間動(dòng)畫
//import gsap from "gsap";
//導(dǎo)入 OrbitControls 控制器
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
//導(dǎo)入gltf加載器
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js";
//導(dǎo)入draco解碼察
import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader.js";
//初始化場(chǎng)景
const scene = new THREE.Scene();
//初始化相機(jī)
const camera = new THREE.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000
);
//設(shè)置相機(jī)position位置
camera.position.set(-3.23, 2.98, 4.06);
//更新相機(jī)的投影舉證
camera.updateProjectionMatrix();
//初始化渲染器
const renderer = new THREE.WebGLRenderer({
  //設(shè)置抗鋸齒
  antialias: true
});
//設(shè)置渲染器
renderer.setSize(window.innerWidth, window.innerHeight);
//將渲染器渲染的dom元素 追加到 body元素下
document.body.appendChild(renderer.domElement);

//設(shè)置控制器
const controls = new OrbitControls(camera, renderer.domElement);
controls.enableDamping = true;
//加載 glb資源
const gltfLoader = new GLTFLoader();
// 實(shí)例化加較器draco
const dracoloader = new DRACOLoader();
dracoloader.setDecoderPath("/draco/");
gltfLoader.setDRACOLoader(dracoloader);
gltfLoader.load(
    // 模型路徑
    "/model/scene.glb",
    // 加較完成同調(diào)
    (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);
//設(shè)置光源 position 三軸位置屬性
light.position.set(0, 50, 0);
//將光添加進(jìn)場(chǎng)景
scene.add(light);
//編寫渲染函數(shù)
function render(){
    requestAnimationFrame(render);
    renderer.render(scene, camera);
    controls.update();
}
render();
</script>

<style>
/*
  設(shè)置全局樣式
*/
* {
  /* 內(nèi)外邊界清零 */
  margin: 0;
  padding: 0;
}
/* 設(shè)置背景 canvas 寬高為屏幕的  百分之百 */
canvas{
  width: 100vw;
  height: 100vh;
  /*
     設(shè)置為行元素
  */
  display: block;
  /*
     設(shè)置元素固定定位 位置為左上角
  */
  position: fixed;
  left: 0;
  top: 0;
}
</style>

這里 我注釋寫的也算非常認(rèn)真了
大家可以先復(fù)制上去 實(shí)現(xiàn)效果 然后慢慢研究
運(yùn)行結(jié)果如下
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d
拉大屏幕
WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境,前端,javascript,3d文章來源地址http://www.zghlxwxcb.cn/news/detail-805566.html

到了這里,關(guān)于WEB 3D技術(shù) three.js 3D賀卡(1) 搭建基本項(xiàng)目環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WEB 3D技術(shù) three.js 點(diǎn)光源

    WEB 3D技術(shù) three.js 點(diǎn)光源

    本文的話 我們來設(shè)置一下點(diǎn)光源 點(diǎn)光源其實(shí)最直觀的就是可以做螢火蟲 也可以做星光 點(diǎn)點(diǎn)的效果 我們可以直接在官網(wǎng)中搜索 Pointlight 大家可以在官網(wǎng)這里看一下 其實(shí) SpotLight 聚關(guān)燈中的屬性 Pointlight 點(diǎn)光源也有的 我們先編寫代碼如下 PointLight 創(chuàng)建一個(gè)點(diǎn)光源 這里我們給了

    2024年01月19日
    瀏覽(92)
  • WEB 3D技術(shù) three.js 陰影屬性

    WEB 3D技術(shù) three.js 陰影屬性

    上文 WEB 3D技術(shù) three.js 光照與陰影 我們說了陰影 那么 我們繼續(xù)將陰影的屬性 目前 我們的代碼 目前陰影效果是這樣的 我們可以設(shè)置它的一個(gè)模糊度 我們官網(wǎng)搜索 LightShadow 下面找到 radius 模糊度的一個(gè)屬性 這里 我們可以 設(shè)置 20 的一個(gè)模糊度 運(yùn)行代碼 然后看我們的模糊度

    2024年01月22日
    瀏覽(85)
  • WEB 3D技術(shù) three.js 聚光燈

    WEB 3D技術(shù) three.js 聚光燈

    本文 我們來說說 點(diǎn)光源和聚光燈 點(diǎn)光源 就像一個(gè)電燈泡一樣 想四周發(fā)散光 而聚光燈就像手電筒一樣 像一個(gè)方向射過去 距離越遠(yuǎn)范圍越大 光越弱 我們先來看一個(gè)聚光燈的效果 我們可以編寫代碼如下 SpotLight 聚光燈 然后通過 position 設(shè)置一下光的位置 運(yùn)行代碼如下 目前看

    2024年01月21日
    瀏覽(96)
  • WEB 3D技術(shù) three.js draco解壓器 解決 壓縮后的gltf/glb報(bào)錯(cuò) Error: THREE.GLTFLoader: No DRACOLoader instance pravid

    WEB 3D技術(shù) three.js draco解壓器 解決 壓縮后的gltf/glb報(bào)錯(cuò) Error: THREE.GLTFLoader: No DRACOLoader instance pravid

    通常 我們 glb/gltf里面都是非常大的場(chǎng)景 有些工具 它會(huì)因?yàn)檫^大做了壓縮 導(dǎo)致 我們開始是用不了的 我們可以官網(wǎng)搜索 draco 如下圖選擇 這是個(gè)解壓工具 用在我們各種的3D建模軟件中 大部分是通用的 我們先在代碼中導(dǎo)入工具 我們?cè)陧?xiàng)目根目錄中 找到 node_modules下的 three 然后

    2024年04月16日
    瀏覽(95)
  • Three.js--》實(shí)現(xiàn)3d小島模型搭建

    Three.js--》實(shí)現(xiàn)3d小島模型搭建

    目錄 項(xiàng)目搭建 初始化three.js基礎(chǔ)代碼 設(shè)置環(huán)境背景 設(shè)置水面樣式 添加天空小島 今天簡(jiǎn)單實(shí)現(xiàn)一個(gè)three.js的小Demo,加強(qiáng)自己對(duì)three知識(shí)的掌握與學(xué)習(xí),只有在項(xiàng)目中才能靈活將所學(xué)知識(shí)運(yùn)用起來,話不多說直接開始。 項(xiàng)目搭建 本案例還是借助框架書寫three項(xiàng)目,借用vite構(gòu)建

    2024年02月05日
    瀏覽(430)
  • web上構(gòu)建3d效果 基于three.js的實(shí)例

    web上構(gòu)建3d效果 基于three.js的實(shí)例

    web頁(yè)面上提供3D效果,可以為頁(yè)面提供不少色彩,H5之后canvas 為webgl提供了基礎(chǔ),使得在web頁(yè)面使用JS也能寫出3D的效果,其中three.js作為封裝了圖形函數(shù) 的框架,為入門提供了方便,效果圖如下。 ? 以上是官方例子中其中的三個(gè),沒接觸過的朋友肯定會(huì)覺得很神奇,事實(shí)上

    2024年02月05日
    瀏覽(88)
  • Three.js3D可視化介紹,以及本地搭建three.js官網(wǎng)

    Three.js3D可視化介紹,以及本地搭建three.js官網(wǎng)

    一、什么是Three.js three.js官網(wǎng) :https://threejs.org/ Three.js 是一個(gè)基于 WebGL 的 JavaScript 3D 圖形庫(kù),它可以輕松地在瀏覽器中 創(chuàng)建3D場(chǎng)景和動(dòng)畫 。同時(shí),它支持外部模型和紋理的導(dǎo)入,讓開發(fā)者可以更加便捷地創(chuàng)建出震撼的 3D場(chǎng)景 。 Three.js 的應(yīng)用場(chǎng)景非常廣泛,主要包括以下幾個(gè)

    2024年02月09日
    瀏覽(299)
  • Three.js--》實(shí)現(xiàn)3d汽車模型展覽搭建

    Three.js--》實(shí)現(xiàn)3d汽車模型展覽搭建

    目錄 項(xiàng)目搭建 初始化three.js基礎(chǔ)代碼 添加汽車模型展示 動(dòng)態(tài)修改汽車模型 今天簡(jiǎn)單實(shí)現(xiàn)一個(gè)three.js的小Demo,加強(qiáng)自己對(duì)three知識(shí)的掌握與學(xué)習(xí),只有在項(xiàng)目中才能靈活將所學(xué)知識(shí)運(yùn)用起來,話不多說直接開始。 項(xiàng)目搭建 本案例還是借助框架書寫three項(xiàng)目,借用vite構(gòu)建工具

    2024年02月06日
    瀏覽(379)
  • Three.js--》實(shí)現(xiàn)3d水晶小熊模型搭建

    Three.js--》實(shí)現(xiàn)3d水晶小熊模型搭建

    目錄 項(xiàng)目搭建 初始化three.js基礎(chǔ)代碼 加載背景紋理 加載小熊模型 今天簡(jiǎn)單實(shí)現(xiàn)一個(gè)three.js的小Demo,加強(qiáng)自己對(duì)three知識(shí)的掌握與學(xué)習(xí),只有在項(xiàng)目中才能靈活將所學(xué)知識(shí)運(yùn)用起來,話不多說直接開始。 項(xiàng)目搭建 本案例還是借助框架書寫three項(xiàng)目,借用vite構(gòu)建工具搭建vue項(xiàng)

    2024年02月06日
    瀏覽(100)
  • 如何用Three.js + Blender打造一個(gè)web 3D展覽館

    如何用Three.js + Blender打造一個(gè)web 3D展覽館

    作者:vivo 互聯(lián)網(wǎng)前端團(tuán)隊(duì)- Wei Xing? 運(yùn)營(yíng)活動(dòng)新玩法層出不窮,web 3D炙手可熱,本文將一步步帶大家了解如何利用Three.js和Blender來打造一個(gè)沉浸式web 3D展覽館。 3D展覽館是什么,先來預(yù)覽下效果: 看起來像個(gè)3D冒險(xiǎn)類手游,用戶可以操縱屏幕中央的虛擬搖桿,以第一人稱視角

    2024年02月16日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包