刀客塔

Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • in reply to: 作业0 结果不稳定,有时模型显示不全 #11218 Score: 2
    刀客塔
    Participant
    3 pts

    研究了一下,知道了为什么会刷不出来模型,从原理上讲,应该大部分人都刷不出来才对。

    loadOBJ.js 中,materials.preload(); 其实是一个异步方法,这个方法会去 load mtl文件,image 文件的路径也在其内,然而在这步方法之后紧接着就去 load object 并且使用了 mtl 文件中的 image,因为前一步是异步的,这个时候 material 其实还没有load 完成,导致了 object load 时的报错。

    如果使用 Promise 方法可能会比较优雅,不过代码改动量比较大。我也是JS小白。

    一个比较 tricky 的方法就是在 load object 的前等一等,最后这段代码如图所示,我用一个函数wrap了一下load object 的过程,然后使用 setTimeout 等了100ms。

    This post has received 2 votes up.
    Attachments:
    You must be logged in to view attached files.
    in reply to: 作业0 结果不稳定,有时模型显示不全 #11207 Score: 0
    刀客塔
    Participant
    3 pts

    芭比Q了,作业1我刷了好久也没刷出来……
    看来没办法是要学习一下 three.js 了……

    in reply to: 作业0 结果不稳定,有时模型显示不全 #11204 Score: 0
    刀客塔
    Participant
    3 pts

    差不多,不过我是用的 Chrome。两眼一黑只有UI还有一个可能性是 three.js 没下载下来,因为这个是从 cloudflare 上下载的,需要挂代理。

    刷新就是CTRL+R多按几次……

    in reply to: 作业0 结果不稳定,有时模型显示不全 #11201 Score: 1
    刀客塔
    Participant
    3 pts

    暂时有了一个折衷的解决办法(这很图形学)。因为这个事情可以通过刷新解决,所以我只要想办法知道是模型加载出了问题,还是我写的代码有问题即可。如果代码没问题,那么多刷新几次就可以了。

    那怎么样知道是不是模型加载出了问题呢?我看了一下 three.js 的 OBJLoader 的文档,发现作业0中的 onError 函数实现的有问题,将至改成

    function onError(err) {
    console.error( ‘An error happened:’ , err);
    }

    即可。

    在渲染时打开 Console,如果有 err 就是模型加载的问题,如果没有 err,应该就是预期的结果了。

    这个 err 我也具体看了一下,是 material 的 img 没有加载出。但具体为什么没有加载出,还没有研究出来。图形学新手。

    This post has received 1 vote up.
    • This reply was modified 2 years, 8 months ago by 刀客塔.
    in reply to: 作业0 结果不稳定,有时模型显示不全 #11154 Score: 0
    刀客塔
    Participant
    3 pts

    能麻烦分享一下具体步骤吗?

    in reply to: 作业2问题 #9689 Score: 0
    刀客塔
    Participant
    3 pts

    Y轴反了。因为教程里的公式是向 -Z 看的,但是程序near 和 far 给的数值是 [0.1, 50]

Viewing 6 posts - 1 through 6 (of 6 total)