Home › Forums › Games202-高质量实时渲染 › [作业1] 移动物体阴影叠加解决办法 Tagged: tips This topic has 3 replies, 4 voices, and was last updated 1 year, 3 months ago by remoo. Viewing 3 reply threads Author Posts 2021年4月6日 at 上午11:09 #8052 Score: 1 DanParticipant Karma: 2 pts 在实现移动物体阴影的时候,可能会遇到阴影叠加的情况。这是因为 shadowmap 在每帧渲染的时候并没有被清除,新的深度值会被叠加地写到 shadowmap 上。建议在 WebGLRenderer.js 中的 render 函数内,每一个光源的循环开始处加入如下代码,清除 shadowmap 上的数据: gl.bindFramebuffer(gl.FRAMEBUFFER, this.lights[l].entity.fbo); gl.clear(gl.DEPTH_BUFFER_BIT); This post has received 1 vote up. This topic was modified 3 years, 7 months ago by Dan. Attachments:You must be logged in to view attached files. 2021年4月9日 at 上午1:01 #8084 Score: 0 Zhixiong RenParticipant 非常感谢! 2021年8月31日 at 下午7:45 #9232 Score: 0 coliParticipant js白痴请教下如何让模型移动 2023年8月5日 at 下午9:16 #16925 Score: 0 remooParticipant 想请教一下怎么更新Shadow Map?我在engine.js中用GUI控制了obj1Transform然后通过参数的方式传进了render(obj1Transform)中,然后在WebGLRenderer.js – render()中用下面的代码更新了mesh位置。 `js this.meshes[2].mesh.transform.translate = [obj1Transform.modelTransX, obj1Transform.modelTransY, obj1Transform.modelTransZ] } ` 但是只有模型移动了,阴影没有重新计算。 Author Posts Viewing 3 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In