three.js学习日记(2)

接上文

three.js学习日记(1)-优快云博客文章浏览阅读178次。three.js的学历路https://blog.youkuaiyun.com/weixin_58735350/article/details/143754414

今天主要是学了一个新工具,dat.gui

这个工具的使用可以参考这篇文档dat.GUI如何使用和常用方法-优快云博客

import * as dat from "dat.gui";
// 创建配置对象
var controlData = {
  rotationSpeed: 0.011,//这个控制转动速度
  color: "#66ccff",
  wireframe: false,//控制是否以线框形式展示
};
// // 创建dat.GUI实例
const gui = new dat.GUI();
const f = gui.addFolder("配置");
// 写法1,最小值,最大值,步长
f.add(controlData, "rotationSpeed", 0.01, 0.1, 0.01);
// 写法2
// f.add(controlData, "rotationSpeed").min(0.01).max(0.1).step(0.01);
// 添加颜色选择器
f.addColor(controlData, "color");

// 选择框
f.add(controlData, "wireframe");
f.domElement.id = "gui";

f.open();
//需要在onMounted里面加上这个
document.getElementById("container").appendChild(f.domElement);
//然后在animate这个函数里面把涉及到的可以改变的值替换成controlData中的值
  function animate() {
    requestAnimationFrame(animate);

    // 旋转动画
    // cube.rotation.x += 0.01;
    // cube.rotation.y += 0.01;
    cube.rotation.x += controlData.rotationSpeed;
    cube.rotation.y += controlData.rotationSpeed;
    cube.material.color = new THREE.Color(controlData.color);
    material.wireframe = controlData.wireframe;
    // 轨道控制器更新
    controls.update();
    // 更新相机视角
    camera.lookAt(cube.position);

    renderer.render(scene, camera);
  }

还有设置球体,立方体,以及模拟镜面反射的效果

// 创建纹理,图片地址参照背景图片地址
// const textures = new THREE.TextureLoader().load("02.jpeg");

// 创建立体纹理,六张各个角度的图片拼起来就可以模拟立体的环境
// const cubeTexture = new THREE.CubeTextureLoader()
//   .setPath("/")
//   .load(["02.jpeg", "02.jpeg", "02.jpeg", "02.jpeg", "02.jpeg", "02.jpeg"]);
// 立方体
// const geometry = new THREE.BoxGeometry(1, 1, 1);
// // 立方体材质
// const material = new THREE.MeshBasicMaterial({
//   color: 0x2e8b57,
//   map: textures, //纹理
// });
// 创建一个球体
// const geometry = new THREE.SphereGeometry(1);
// const material = new THREE.MeshBasicMaterial({
//   envMap: cubeTexture,
// });
// 创建平面几何体
const geometry = new THREE.PlaneGeometry(1, 1);
const material = new THREE.MeshBasicMaterial({
  color: 0xffff00,
  side: THREE.DoubleSide,
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值