Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 结果出现上下颠倒,怎么办?只加一个负号即可 This topic has 4 replies, 3 voices, and was last updated 2 years, 12 months ago by 仲谨. Viewing 3 reply threads Author Posts 2020年3月6日 at 下午12:37 #3381 Score: 2 Luckin呀Participant Karma: 2 pts 前提:代码中用到的推导(比如透视投影矩阵),全部和课上老师说的保持一致。代码里不用自己改成左手坐标系去求矩阵,因为太麻烦。 只需要改动一处:就是在求透视投影矩阵函数里面,求top坐标的时候,前面加一个“-”负号即可。(保证先求top,再求right) This post has received 2 votes up. 2020年3月6日 at 下午12:40 #3382 Score: 0 Luckin呀Participant Karma: 2 pts main函数里面的near和far也不需要改成负的,保持正的不变 2021年10月5日 at 下午6:31 #9461 Score: 0 赞平Participant Karma: 1 pt 厉害,在完成作业3的时候遇到这个问题。牛是倒过来的,为什么加负号就可以了,不懂? 2021年10月16日 at 下午5:37 #9519 Score: 0 仲谨Participant 可以看一下rst::rasterizer::draw函数里面的f1和f2的计算,你就明白了 2021年10月16日 at 下午5:37 #9518 Score: 0 仲谨Participant 首先我们在求投影矩阵的时候是以看向﹣Z方向去进行计算的。 意思就是说在调用get_projection_matrix函数的时候,虽然传入的zNear和zFar为正数,我们需要转换为负数计算(这一点前两次作业的三角形的世界坐标z值为负可以证明)。 其次,为什么楼主说top加个符号就可以? 因为在rst::rasterizer::draw函数里面的前两行,计算f1和f2时使用的50和0.1写死了,与我们计算投影矩阵相违背。 所以,你可以试试把f1和f2改为负值,发现top不改变也会正确了。 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