threejs同时使用相机的lookAt与OrbitControls时,会导致lookAt失效。使用controls.target来代替lookAt进行设置。
// 设置相机控件轨道控制器OrbitControls
const controls = new OrbitContro...
yekong
2年前 (2023-01-22)
喜欢
var that = this
/**
* 创建场景对象Scene
*/
var scene = new THREE.Scene();
//three.js文件加载类FileLoader:封装了XMLHttpRequest
var loader = new THREE.Fi...
yekong
2年前 (2023-01-22)
喜欢
threejs通过顶点坐标.Line和.LineLoop可以分别绘制首尾不相连和首尾相连的线
首尾不相连的线
<template>
<div class="homebody">
<div class="ca...
yekong
2年前 (2023-01-22)
喜欢
环境贴图对PBR材质渲染效果影响还是比较大,一般渲染PBR材质的模型,最好设置一个合适的环境贴图。
立方体纹理加载器 CubeTextureLoader
Textureloader返回 Texture
CubeTextureLoader 返回 CubeTexture
通过前面学习...
yekong
2年前 (2023-01-21)
喜欢
PBR材质 MeshStandardMaterial 金属度 metalness和粗糙度 roughness,再加上下节课讲解的环境贴图。envMap,给大家呈现一个金属渲染效果。
金属度 metalness
金属度属性.metalness 表示材质像金属的程度,非金属材料,如木...
yekong
2年前 (2023-01-21)
喜欢
所谓PBR就是,基于物理的渲染(physically-based rendering).
Three.js提供了两个PBR材质相关的API MeshStandardMaterial和
MeshPhysicalMaterial,MeshPhysicalMaterial 是MeshS...
yekong
2年前 (2023-01-21)
喜欢
改变一个模型颜色其它模型跟着变化
由于楼房的Mesh共享了1号楼Mesh的材质,当你通过mesh1.material改变mesh1材质,本质上是改变所有楼Mesh的材质。
const mesh1 = gltf.scene.getObjectByName("1号楼&quo...
yekong
2年前 (2023-01-21)
喜欢
加载一个外部模型,比如gltf模型,如果你想批量修改每个Mesb的材质,一个一个设置比较麻烦,可以通过递归遍历方法.traverse() 批量操作更加方便。
递归遍历方法traverse()
// 递归遍历gltf.scene
gltf.scene.traverse(functi...
yekong
2年前 (2023-01-21)
喜欢
浏览器控制台查看3D模型树结构
加载gltf模型,通过gltf. scene可以获取模型的数据,你可以通过浏览器控制打印gltf. scene,然后和你三维建模软件中的模型目录树对比,比较两者的结构是否相同。
模型父对象节点可以用Oaiect3D对象表示,也可以用组对象Group...
yekong
2年前 (2023-01-21)
喜欢
.gltf格式模型文件,有不同的组织形式。
单独.gltf文件
单独.glb文件
.gltf +.bin +贴图文件
这些不同形式的gltf模型,加载代码其实没啥区别。
loader.load("cs.gltf",function (gltf) {
...
yekong
2年前 (2023-01-21)
喜欢