Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业5Primary Ray的理解和计算问题 Tagged: primary ray This topic has 11 replies, 6 voices, and was last updated 3 years, 7 months ago by 菜鸡互啄. Viewing 6 reply threads Author Posts 2020年3月26日 at 下午10:58 #4808 Score: 0 kingilParticipant Karma: 1 pt 有以下两个疑问点: 1 假设眼睛/camera在(0,0,0),(0,0,-2)有一个立方体。不管什么算法,那么眼睛顺着(0,0,-1)看或者眼睛/头稍微抬起来看,看到的结果肯定是不一样的。为什么算法整个执行过程中没有提及相机观察方向的问题?或者是在哪里我遗漏了? 这同时也引出了问题: 2 还是没太明白我算出来的x,y是应该在哪个坐标系下的点的值(减去eye坐标就是primary方向了)? 为什么dir的z的值是-1?是因为近平面默认z值是-1还是什么意思? 传入castRay(eye_pos, dir, scene, 0)的dir是哪个空间的光线向量? 我的理解,最后所有的光照计算,都是在世界空间中完成的,是否有问题? 困扰一天了,感觉一直在跟渲染管线混淆。有没有人解下惑,多谢了~ 2020年3月26日 at 下午11:06 #4810 Score: 0 AngusParticipant Karma: 23 pts 此时的相机是lookfrom(0,0,0),lookat(0,0,-1)。若想修改为别的值,需要改动较多代码,具体可以参阅《Ray Tracing in One Weekend》的 ch10 Positionable camera。 x,y 应该是世界坐标系下的值。因为你要生成一个世界坐标系下的 ray。 dir 的 z 值是-1,因为成像平面在 z=-1 处。这样你求出成像平面上的 x,y 即可和 z 组成一个穿过成像平面上像素中点的 ray。你 normalize 之后就不是-1了。 2020年3月28日 at 下午1:10 #4857 Score: 0 kingilParticipant Karma: 1 pt 感谢,搞定这个计算了。 2021年5月12日 at 下午5:41 #8423 Score: 0 菜鸡互啄Participant 请问下大佬 dir 转化到ndc空间了[-1,1]为啥不需要乘以下 projection的逆变换转化成世界空间,然后算啊 2020年3月26日 at 下午11:26 #4811 Score: 1 zhishaoParticipant Karma: 2 pts 1.本课程默认摄像机观测方向是z轴负方向,貌似在第二或者第三节课讲过,大概是说gaze,lookat方向的部分。 2.我个人感觉近平面并不是一个跟光栅化完全一致的成像平面。这个平面比较像是我们拿照相机拍了一张照片。这张照片就是远处景色等比例缩小的一个面,不是像光栅化中完全压到1*1*1的盒子内那种。 这个平面主要的作用是知道每一根生成的光线回照亮什么点,并通过这个来成像。 z的值是-1的原因,我感觉就是为了计算方便。因为他跟后面的景象是完全等比例的,所以我觉得z的值应该是可以随便取的,不一定非要在-1处成像吧,反正最后都要归一化的。这一点我不能完全确定。 成像空间我觉得就不是在世界系下吧。就拿作业里,世界坐标Y轴全是正的,但是成像那个平面y是从scale 到 – scale的。 This post has received 1 vote up. This reply was modified 4 years, 9 months ago by zhishao. 2020年3月28日 at 下午1:12 #4858 Score: 0 kingilParticipant Karma: 1 pt 多谢了,解释的很好。 2020年3月27日 at 上午8:12 #4814 Score: 0 kingilParticipant Karma: 1 pt 感谢以上两位的解释。我忽视了相机一直默认看向-z方向的问题。光栅化里的矩阵计算也有体现。那就是说,在光线追踪中,这个计算也体现在了计算x,y值的过程中。那我知道怎么计算了。 也就是说,现在计算x,y对应到世界空间的点,相比于在光栅化过程中从screenspace逆变换回去到worldspace的计算,大大简化/简单处理了到视界坐标的计算,而不用再从screenspace–>齐次空间–>view space –>world space一个个逆变换回去。 (由于相机在原点、看向-z等,有很多近似的过程不用处理,毕竟我们只需要一个简单的方向) 再次感谢以上两位。 2020年6月1日 at 下午7:24 #6602 Score: 0 smile_zykParticipant 请问一下为什么y要取反啊,这让我很疑惑啊 2020年3月28日 at 下午12:59 #4853 Score: 0 kingilParticipant Karma: 1 pt 平面显示的不对,有人能提供下思路吗?可能会是哪里出了问题。 2020年3月28日 at 下午1:09 #4855 Score: 0 kingilParticipant Karma: 1 pt 平面显示的不对,有人能提供下思路吗?可能会是哪里出了问题 Attachments:You must be logged in to view attached files. 2020年3月28日 at 下午2:07 #4859 Score: 0 BearParticipant Karma: -11 pt 你这更像求交出了问题啊,我那会也是平面折了 2020年3月28日 at 下午4:48 #4880 Score: 0 kingilParticipant Karma: 1 pt 对,是求交点的时候出得问题。已经搞定了。注意顶点对应好就OK。 Author Posts Viewing 6 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In