three.js添加3d模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

three.js添加3d模型
three官⽅的⼏何体也就那么⼏个,想要⽣成各种各样的模型,其难度⼗分之⼤,这时引⼊外部模型也不失为⼀种选择。

具体引⼊办法如下。

导⼊依赖
点击查看代码
虽然名字为GLTFLoader,但实际上glb⽂件也是能加载的。

初始化场景
点击查看代码
其中需要注意的是调节相机参数与相机位置,否则很有可能导致场景中看不见任何东西。

创建背景
这⾥创建背景有3种办法,各有优劣。

1、直接加载⼀张贴图作为场景的background。

优点:⼗分简单易于使⽤。

缺点:始终是⼀张平⾏与屏幕的平⾯,⽆法随⿏标移动拖拽⽽变换。

点击查看代码
2、使⽤天空盒⼦,加载CubeTextureLoader纹理,再将该纹理设为场景的background。

优点:可随⿏标移动拖拽⽽变换。

缺点:需要特制的六张天空盒⼦贴图,贴图不吻合时,⽴⽅体空间边缘会出现明显割裂感,视⾓两侧贴图会被拉伸。

点击查看代码
3、创建⼀个较⼤的球体,将场景内的物体全部放⼊球体内部,此思路也是全景图原理,在vr看房项⽬中⼤多能遇见。

优点:可随⿏标移动拖拽⽽变换,由于球⼼距球壳距离相等,不会出现视⾓两侧贴图拉伸。

缺点:需要调节球体半径到合适的尺度,保证空间相机在球体内部,否则空间会出现⿊块。

需要保证贴图为360全景图。

否则球壳拼接边缘会出现明显空间割裂。

点击查看代码
其中必须使⽤side: THREE.BackSide,显⽰材质背⾯。

3种办法视情况选择,当然也可能有其他我不知道办法。

本⽂使⽤为创建球体的办法。

创建⿏标控制器
点击查看代码
相机的最⼤与最⼩距离需要注意调节,否则会出现缩放异常。

创建光源
点击查看代码
模型最终显⽰出来的颜⾊与环境光和点光源均有关。

同时也需要注意调节点光源位置。

加载模型
点击查看代码
需要注意的是这⾥加载的模型是必须放在public路径下的,否则会⽆法加载。

注意根据模型尺⼨,调节场景的各种参数,否则会⽆法看见模型。

渲染场景
点击查看代码
渲染场景时不要忘记实时update⿏标控制器。

完成
加载⼀个冰墩墩。

加载⼀朵玫瑰(win10⾃带的3D Viewer⾥⾯导出的,本⽂使⽤的模型全是glb⽂件。

如果是gltf整体⽂件也可直接导⼊three,但如果贴图与模型是分开的松散gltf⽂件可以使⽤3D Viewer直接另存为glb⽂件即可导⼊three)。

加载⼀个凯瑟琳(在下载的,注册⽤户后⾥⾯有⼤量免费模型可使⽤)
加载⼀个剑刃星舰(也是sketchfab⾥⾯下载的)。

相关文档
最新文档