Home › Forums › Games202-高质量实时渲染 › [作业0]模型没有渲染出来
Tagged: o my god
- This topic has 27 replies, 24 voices, and was last updated 8 months, 3 weeks ago by dannyXSC.
-
AuthorPosts
-
-
西风Participant
我按照作业0的操作指导进行修改、编译和运行,最后模型没有渲染出来,只有光源在动。是什么原因?
-
BobParticipant
老哥,解决了吗,我也遇到了
-
zyhParticipant
应该是顶点着色错误导致的模型不可见,可能是看了旧的assignment。新版的vertex shader使用的是uModelViewMatrix,旧版使用两个矩阵,uModelMatrix和uViewMatrix。
-
-
wellsParticipant
我也遇到了,应该怎么调试看哪里出错呢?
-
海若有因Participant
是不是没有install http-server啊,或者是index.html里</script>写成</script >了
-
HIBICUSParticipant
可能可以通过F12开发者工具打开控制台定位问题,如果有什么问题应该会通过日志输出
诸如写错变量名就会提示“XXX未被定义”这样 -
MADAOParticipant
F12发现在控制台发现 could not load content:dat.gui.js.map 在stackoverflow得知,删除该文件最后一行即可
-
oldogParticipant
我模型用别的软件打开过然后就加载不出来了,重启就好了
-
BitcusParticipant
我的碰到的问题是浏览器控制面板报错 Mat4 未定义
解决方法是在index.html里添加一行
<script src=”https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js” defer></script> -
孤星AuggstParticipant
PhongVertexShader中用uModelViewMatrix替换uModelMatrix和uViewMatrix,可以解决模型不渲染的问题
PhongFragmentShader中这一行修改一下,可以解决光照的问题
float light_atten_coff = uLightIntensity / length(uLightPos – vFragPos); -
songjihuParticipant
没有渲染出来是因为uViewMatrix和uViewMatrix这2个矩阵没有传过来,需要
1.在Material.js中this.#flatten_uniforms部分声明这2个参数
2.在MeshRender.js的Draw函数中定义对应的2个矩阵,然后通过gl.uniformMatrix4fv函数传给下一层(参考作业1中的对应代码)
如果没有对vFragPos进行世界空间的转换而仅仅将aVertexPosition传入,那么原本(52,52,52)的缩放就没有起作用,导致高光的强度出现问题 -
上面的方法对我都没有用,我下载的作业就是改过矩阵而且注释掉map的版本,我的方法是把Chrome换成Safari就能work了。。。真奇怪
-
找到解决方案了,在Chrome开发者Settings里面把Sources里面的enable javascript source maps的勾去掉就可以载出模型来了
This post has received 1 vote down.
-
-
timesuParticipant
我刚开始也只有光源,没有模型,开发者模式里也没有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
更新了code2.在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
… -
我用http-server显示报错 “GET /lib/dat.gui.js.map” Error (404): “Not found”,打开dat.gui.js删除掉最后一行注释就可以正常加载了。可能是由于注释无效导致的
This post has received 1 vote up.-
嗷,这个最靠谱!!!感恩。(我之前都是乱七八糟一通调试,但是有的时候能渲染出来有的时候不能,然后我又不确定到底是哪个配置影响的模型orz
-
-
TC130Participant
报mat4未定义的,记得开代理刷一次https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js
-
九九345Participant
刚开始我完成所有步骤之后,打开显示的是全黑的,连光都没有,只有右上角的一个操作栏,后来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>就行了-
九九345Participant
不支持打开文件,直接给github链接吧,有人把gl-matrix-min.js文件上传了:https://gist.github.com/pbfy0/3a1717978fc68adaa7a878a2089db731
直接下载就行
-
-
旭旭Participant
我也碰到这个问题,然后把chorme浏览器更新到最新就可以了
-
quaintSenatorParticipant
如果是有光源,同时也有一个202但是看不到模型的,和上述问题都不匹配,显示出202则没有上述的问题,多刷新几次就能看到结果
-
chillManParticipant
我这里是把index.html的27行,“https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js”改成了国内的镜像源,替换 cdnjs.cloudflare.com 为 cdnjs.loli.net
-
竹名茂Participant
多刷新几次就出来了
-
xueyunParticipant
刚踩坑,如果有时候能刷新出来有时候不行可以参考隔壁另一个hmw0的帖子设置下异步读取避免冲突;
如果只看到202但是别的地方一直刷不出来,可能是纹理贴图的读取有问题202好像没有texture,我这边是
PhongMaterial.js里面’uSampler’: {type:’texture ‘,value:colorMap}texture后面多了个空格(粘贴的时候各个字符串结尾很可能多空格要删掉) -
wxlgoParticipant
刚做,一定要下载百度云链接里面的pdf,它上面那个链接是旧的,弄了好久才发现原来下面那个是最新版的。
-
dannyXSCParticipant
使用这个方法解决了问题
-
-
AuthorPosts
- You must be logged in to reply to this topic.