Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业7光源纯黑原因 This topic has 5 replies, 4 voices, and was last updated 4 years, 7 months ago by Yadi Cao. Viewing 1 reply thread Author Posts 2020年4月15日 at 上午10:12 #5580 Score: -1 Yadi CaoParticipant Karma: 2 pts 还没开始实现,不过推测但光源纯黑是不是因为没考虑眼睛直接看向光源(且无遮挡)的情况 This post has received 1 vote down. 2020年4月15日 at 上午10:53 #5589 Score: 1 MrPhDParticipant Karma: 1 pt 假如ray直接打到光源,那么p点就是光源了,再sample一个光线的话,这个光线和光源那个面的法线会一直垂直,所以你的直接光照dot(-ws, NN)等于0,光源就会是黑的了。 This post has received 1 vote up. 2020年4月15日 at 上午11:24 #5591 Score: 0 杰哥Participant Karma: 2 pts 大佬为什么光线和光源那个面的法线会一直垂直啊?sample的方向不是应该随机吗? 2020年4月15日 at 上午11:39 #5592 Score: 1 xxrlParticipant Karma: 1 pt 是你射出的第二条光线,光线的两个端点都在同一光源上(只有一个光源,原来的点打在了光源上,sample的点也还在光源上) This post has received 1 vote up. 2020年4月15日 at 下午5:04 #5598 Score: 0 Yadi CaoParticipant Karma: 2 pts 我之前在和另一个帖子的讨论中提出了(一个错误的)解决方法:就是如果一束从眼睛出发的光,没打到任何object,就和光源再去判断一下会不会打到(且无遮挡)。 但现在觉得这方法可能不行,就比如这个Cornell box,面积光源在箱子顶端,也就是说发射向光源的ray是会打到箱子的。 因此我想到了个很暴力的办法,就是path tracing前,对当前像素只看有没有和光源(未遮挡)直接接触,如果是就直接写为光源的值也没必要再继续追踪,如果否再get intersect ,shading。 不知道可行不可行,有没有更聪明的办法 2020年4月15日 at 下午5:08 #5600 Score: 0 Yadi CaoParticipant Karma: 2 pts 我犯了个错误,光源也是物体之一,那更简单了,直接看接触的最近的物体发不发光就好了。 感谢楼上大佬帮忙解答 Author Posts Viewing 1 reply thread You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In