欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

three.js-結合dat.gui實現界面可視化修改及調試詳解

 更新時間:2023年02月12日 14:51:40   作者:桃小瑞  
這篇文章主要為大家介紹了three.js-結合dat.gui實現界面可視化修改及調試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

gitee 地址

gitee地址: gittee地址

本篇目標

  • 結合dat.gui實現界面可視化修改及調試

下載 dat.gui

pnpm i dat.gui

引入及創(chuàng)建

引入

import * as Dat from "dat.gui";

創(chuàng)建

/// 創(chuàng)建 dat
const dat = new Dat.GUI();

使用

這里我是裝在一個函數里的,但不影響

/// 添加菜單
function addMenuItem () {
    // x 軸坐標
    dat
    .add(cube.position, 'x')
    .max(10)
    .min(0)
    .step(0.01)
    .name('移動x軸')
    .onChange(value => {
        console.log('我是當前正在移動的x軸', value);
    })
    .onFinishChange(value => {
        console.log('我是當前移動結束的x軸', value);
    })
}
// 添加菜單
addMenuItem ()

效果圖

這樣我們設置和退出畫布全屏的這個功能就做好了。

完整代碼

import * as THREE from "three"
// 目標:使用 dat.gui 進行 可視化調試
import * as Dat from "dat.gui";
/// 創(chuàng)建場景
const scene = new THREE.Scene()
/// 創(chuàng)建 dat
const dat = new Dat.GUI();
/// 創(chuàng)建相機
/*
    PerspectiveCamera( fov : Number, aspect : Number, near : Number, far : Number )
        fov — 攝像機視錐體垂直視野角度
        aspect — 攝像機視錐體長寬比
        near — 攝像機視錐體近端面
        far — 攝像機視錐體遠端面
*/
/// 透視相機
const camera = new THREE.PerspectiveCamera(
    75, // 攝像機視錐體垂直視野角度,從視圖的底部到頂部,以角度來表示。默認值是50。
    window.innerWidth / window.innerHeight, // 攝像機視錐體的長寬比,通常是使用畫布的寬/畫布的高。默認值是1(正方形畫布)。
    0.1, // 攝像機的近端面,默認值是0.1。
    1000 // 攝像機的遠端面,默認值 2000
)
/// 創(chuàng)建渲染器
const renderer = new THREE.WebGLRenderer();
/// 設置大小
renderer.setSize(
    1000, // 寬度
    500 // 高度
);
/// 掛載到頁面
document.body.appendChild(renderer.domElement)
/// 添加物體
/*
    width:立方體x軸的長度,
    height:立方體y軸的長度,
    depth:立方體z軸的長度也是深度
*/
let geometry = new THREE.BoxGeometry(10, 10, 10);
/// 添加材質
// const material = new THREE.MeshBasicMaterial({ color: 0xffff0000 });
/// 添加材質
const materials = []
for(let i = 0; i < 6; i++){
    materials.push(new THREE.MeshBasicMaterial({ color: Math.random() * 0x00ff0000 }))
}
/// 添加網格
const cube = new THREE.Mesh( geometry, materials );
scene.add( cube );
// 設置相機位置
camera.position.z = 50;
// 修改場景背景顏色
scene.background = new THREE.Color(0xffffcc99)
/// 添加 三色坐標軸
const axesHelper = new THREE.AxesHelper(20)
scene.add( axesHelper )
/// 渲染
function animate() {
    // 使用 requestAnimationFrame 執(zhí)行動畫
    requestAnimationFrame(animate)
    // 修改其旋轉的度數,讓其每次渲染增加0.01的弧段進行渲染
    cube.rotation.x += 0.01;
	cube.rotation.y += 0.01;
    //scene:前面定義的場景,camera:前面定義的相機
    //renderTarget:渲染的目標默認是是渲染到前面定義的render變量中
    //forceClear:每次繪制之前都將畫布的內容給清除,即使自動清除標志autoClear為false,也會清除
    renderer.render(scene, camera)
}    
/// 添加菜單
function addMenuItem () {
    // x 軸坐標
    dat
    .add(cube.position, 'x')
    .max(10)
    .min(0)
    .step(0.01)
    .name('移動x軸')
    .onChange(value => {
        console.log('我是當前正在移動的x軸', value);
    })
    .onFinishChange(value => {
        console.log('我是當前移動結束的x軸', value);
    })
}
// 渲染
animate()
// 添加菜單
addMenuItem ()

以上就是three.js-結合dat.gui實現界面可視化修改及調試詳解的詳細內容,后續(xù)會講解根據 BufferGeometry 設置的頂點創(chuàng)建幾何矩形,更多關于three.js dat.gui界面可視化的資料請關注腳本之家其它相關文章!

相關文章

最新評論