怎么给forge的做一个天空盒

发布于 2022-09-05 05:23:35 字数 843 浏览 23 评论 0

想要给forge的外面去添加一个天空盒,把场景弄的更好看,怎么去实现,试过three.js成功了但是forge好像做了改动,先是报错THREE.CubeTextureLoader is not a constructor这是因为forge所用的three.js版本的问题吗? 然后新建一个盒子但是出现了新的问题,视角好像被切掉了一样。截图和代码如下:
图片描述

var materialArr=[];
var directions = ["aa_RT","aa_LF","aa_UP","aa_DN","aa_FR","aa_BK"] ;
for (var i = 0; i < 6; i++){

materialArray.push( new THREE.MeshBasicMaterial({
  map: THREE.ImageUtils.loadTexture( "lib/img/aa/"+ directions[i] + ".jpg" ),
  side: THREE.BackSide
}));

}
var skyBoxGeom = new THREE.CubeGeometry(80,80,80);
var skyBoxMaterial = new THREE.MeshFaceMaterial(materialArr);
var skyBox = new THREE.Mesh(skyBoxGeom,skyBoxMaterial);
viewer.impl.scene.add(skyBox);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蓝天 2022-09-12 05:23:35

在stackoverflow上看到了大神给的解决方法,大致意思是要加载另一个范围更大的模型,这样剪裁面就会自动更新。大神的原话我翻译不好就直接粘原话了,如下:

One thing you need to take care about is that the viewer uses near/far clipping planes which are created based on the loaded model bounding box. Your skybox is probably much bigger than the model, so one workaround is to load a second model with a much bigger extents, so the scene clipping planes are updated automatically. The second model only contains tiny cubes placed at the desired extents, for example [(-500, -500, -500), (500, 500, 500)].

krdkP.png
详情请查看https://stackoverflow.com/que...,同时也给出了扩展地址https://github.com/Autodesk-F...
因forge github文件地址修改现已经修正文件地址

长亭外,古道边 2022-09-12 05:23:35

经调试后,这看起来是因为 Renderer 的背景不是透明的,Renderer 的背景预设是有颜色的,所以造成 Skybox 部份的内容内被 Renderer 的背景颜色覆盖了,以目前 Viewer 公开的资料、介面和我的经验看来,这没办法修改 Renderer 的设置。您可以尝试透过写英文信到 forge.help@autodesk.com 求救,问看看有没有解法。

伪装你 2022-09-12 05:23:35

请问这个怎么解决的,我也遇到这种视图,换了个大模型也一样,只不过变成了盒子不够大了而已

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文