Home Forums Games202-高质量实时渲染 [作业0]模型没有渲染出来

Tagged: 

Viewing 21 reply threads
  • Author
    Posts
    • #8447 Score: 0
      西风
      Participant

      我按照作业0的操作指导进行修改、编译和运行,最后模型没有渲染出来,只有光源在动。是什么原因?

    • #10186 Score: 0
      Bob
      Participant

      老哥,解决了吗,我也遇到了

      • #10222 Score: 0
        zyh
        Participant

        应该是顶点着色错误导致的模型不可见,可能是看了旧的assignment。新版的vertex shader使用的是uModelViewMatrix,旧版使用两个矩阵,uModelMatrix和uViewMatrix。

        • #10874 Score: 0
          Lumos
          Participant

          把顶点着色矩阵改了之后模型倒是出来了,但是光照不对是怎么回事?

          Attachments:
          You must be logged in to view attached files.
    • #10224 Score: 0
      wells
      Participant

      我也遇到了,应该怎么调试看哪里出错呢?

    • #10415 Score: 0
      海若有因
      Participant

      是不是没有install http-server啊,或者是index.html里</script>写成</script >了

    • #10467 Score: 0
      HIBICUS
      Participant

      可能可以通过F12开发者工具打开控制台定位问题,如果有什么问题应该会通过日志输出
      诸如写错变量名就会提示“XXX未被定义”这样

    • #10488 Score: 0
      MADAO
      Participant

      F12发现在控制台发现 could not load content:dat.gui.js.map 在stackoverflow得知,删除该文件最后一行即可

    • #10497 Score: 0
      oldog
      Participant

      我模型用别的软件打开过然后就加载不出来了,重启就好了

    • #10527 Score: 0
      Bitcus
      Participant

      我的碰到的问题是浏览器控制面板报错 Mat4 未定义
      解决方法是在index.html里添加一行
      <script src=”https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js&#8221; defer></script>

    • #10925 Score: 0
      孤星Auggst
      Participant

      PhongVertexShader中用uModelViewMatrix替换uModelMatrix和uViewMatrix,可以解决模型不渲染的问题
      PhongFragmentShader中这一行修改一下,可以解决光照的问题
      float light_atten_coff = uLightIntensity / length(uLightPos – vFragPos);

    • #11004 Score: 0
      songjihu
      Participant

      没有渲染出来是因为uViewMatrix和uViewMatrix这2个矩阵没有传过来,需要
      1.在Material.js中this.#flatten_uniforms部分声明这2个参数
      2.在MeshRender.js的Draw函数中定义对应的2个矩阵,然后通过gl.uniformMatrix4fv函数传给下一层(参考作业1中的对应代码)
      如果没有对vFragPos进行世界空间的转换而仅仅将aVertexPosition传入,那么原本(52,52,52)的缩放就没有起作用,导致高光的强度出现问题

      最终效果如下
      http://songjihu.top:8022/HW0/homework0/homework0/

    • #11022 Score: 0
      y
      Participant
      -1 pt

      上面的方法对我都没有用,我下载的作业就是改过矩阵而且注释掉map的版本,我的方法是把Chrome换成Safari就能work了。。。真奇怪

      • #11058 Score: -1
        y
        Participant
        -1 pt

        找到解决方案了,在Chrome开发者Settings里面把Sources里面的enable javascript source maps的勾去掉就可以载出模型来了

        This post has received 1 vote down.
    • #11387 Score: 0
      timesu
      Participant

      我刚开始也只有光源,没有模型,开发者模式里也没有error,然后翻了论坛里的帖子,试了楼上所有方法。发现只有127.0.0.0的ip有这个问题,换到192.168的ip段就没问题了。网络这块我不太熟,所以也不知道为什么
      总结一下:
      0.Windows环境
      0.1通过nodejs官网下载相应的msi安装包,然后就可以在powershell里使用npm
      0.2安装后,需要关闭并重新打开powershell,然后输入或者自动补全http-server.cmd,
      就和ppt里一样了。

      1.请用作业链接里的HW0.zip的ppt里的代码,更新了InternalShader.js里的
      1.1 PhongVertexShader
      删除了原来的modelMatirx和viewMatrix,引入了uModelViewMatrix
      1.2 PhongFragmentShader
      更新了code

      2.在loadOBJ.js这段里,请注意ppt里多了一个空格
      let myMaterial = new PhongMaterial(mat.color.toArray(), colorMap , mat.specular.toArray(),
      renderer.lights[0].entity.mat./*PPT这里多了一个空格!!!!*/intensity);

      3.删掉dat.gui.js里最后一句的注释
      4.模型显示有两种问题
      4.1 经过刷新,有时候会显示
      通过预加载
      4.2 经过刷新,一直无法显示
      4.2.1 shader的写法有问题
      4.2.2 我碰到的问题,切换server到其他ip段
      在windows的powershell运行http-server.cmd . -p 8000后,会显示可用ip,像这样
      Available On:
      $IP1
      $IP2

    • #11464 Score: 1
      岗岗
      Participant
      1 pt

      我用http-server显示报错 “GET /lib/dat.gui.js.map” Error (404): “Not found”,打开dat.gui.js删除掉最后一行注释就可以正常加载了。可能是由于注释无效导致的

      This post has received 1 vote up.
      • #11465 Score: 0
        y
        Participant
        -1 pt

        嗷,这个最靠谱!!!感恩。(我之前都是乱七八糟一通调试,但是有的时候能渲染出来有的时候不能,然后我又不确定到底是哪个配置影响的模型orz

    • #11506 Score: 0
      TC130
      Participant

      报mat4未定义的,记得开代理刷一次https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js

    • #11888 Score: 0
      九九345
      Participant

      刚开始我完成所有步骤之后,打开显示的是全黑的,连光都没有,只有右上角的一个操作栏,后来F12查看错误后发现报错了mat4 is not defined;
      挂了梯也打不开https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js这个网站。。。
      索性我直接下载了gl-matrix-min.js这个文件直接加到src里,文件我附在后面了;
      再改一下:<script src=”src/gl-matrix-min.js” defer> </script>就行了

    • #13830 Score: 0
      旭旭
      Participant

      我也碰到这个问题,然后把chorme浏览器更新到最新就可以了

    • #14399 Score: 0
      quaintSenator
      Participant

      如果是有光源,同时也有一个202但是看不到模型的,和上述问题都不匹配,显示出202则没有上述的问题,多刷新几次就能看到结果

    • #16337 Score: 0
      chillMan
      Participant

      我这里是把index.html的27行,“https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js”改成了国内的镜像源,替换 cdnjs.cloudflare.com 为 cdnjs.loli.net

    • #16448 Score: 0
      竹名茂
      Participant

      多刷新几次就出来了

    • #16459 Score: 0
      xueyun
      Participant

      刚踩坑,如果有时候能刷新出来有时候不行可以参考隔壁另一个hmw0的帖子设置下异步读取避免冲突;
      如果只看到202但是别的地方一直刷不出来,可能是纹理贴图的读取有问题202好像没有texture,我这边是
      PhongMaterial.js里面’uSampler’: {type:’texture ‘,value:colorMap}texture后面多了个空格(粘贴的时候各个字符串结尾很可能多空格要删掉)

    • #16673 Score: 0
      wxlgo
      Participant

      刚做,一定要下载百度云链接里面的pdf,它上面那个链接是旧的,弄了好久才发现原来下面那个是最新版的。

    • #17881 Score: 0
      dannyXSC
      Participant

      使用这个方法解决了问题

Viewing 21 reply threads
  • You must be logged in to reply to this topic.