Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业六,dirIsNeg是干什么的? Tagged: ray tracing This topic has 7 replies, 6 voices, and was last updated 4 years, 7 months ago by dzy. Viewing 5 reply threads Author Posts 2020年4月6日 at 上午1:32 #5208 Score: 0 Knight_ParlyParticipant 正在进行第三步, 在代码框架Bounds3.hpp里需要自己完成的函数中传了const std::array<int,3>dirIsNeg这个参数,它是干什么的? 我把它复制搜索整个框架发现它只存在这一个地方,只有声明,没有定义。 然后我又搜索IntersectP这个函数,发现这个函数除了在BVH.hpp有个重载声明也是没有定义,我蒙了。。。 在函数定义内有个第二行注释说什么用来简化了我的逻辑,可是我感觉我的逻辑炸了•﹏• 2020年4月6日 at 上午1:44 #5209 Score: 0 Knight_ParlyParticipant 我好像想明白了,应该是我步骤四还没进行的缘故… 2020年4月6日 at 上午9:16 #5210 Score: 0 lhyaknParticipant Karma: 1 pt 其实就是用来简化计算的,可以利用这个直接计算出tmax和tmin,少了些判断。 2020年4月7日 at 下午10:18 #5251 Score: 0 KeneyrParticipant Karma: 7 pts 我咋没想明白。。 2020年4月8日 at 上午10:16 #5260 Score: 0 Shi YuChen(助教)Keymaster Karma: 4 pts 这个参数就是给出光线方向在三个轴上的正负的,dirIsNeg=direction is negative 2020年5月17日 at 上午1:43 #6558 Score: 0 dzyParticipant direction is negative 结果是>0为true…. 2020年4月8日 at 下午9:49 #5276 Score: 0 AzaurrParticipant 似乎可以不使用disIsNeg进行判断。我的做法是用t1表示光线到AABB上xMax、yMax、zMax这三个面的时间,t2表示到xMin、yMin、zMin这三个面的时间。然后分别计算光线在x、y、z三个方向进入和离开相应平面的时间tMin和tMax。最后得到进入和离开AABB的时间tEnter和tExit。 This reply was modified 4 years, 8 months ago by Azaurr. Attachments:You must be logged in to view attached files. 2020年5月17日 at 上午1:51 #6559 Score: 0 dzyParticipant bvh的 intersectp确实木大,删掉即可 intersectp好像只有bounds3里面那个有用,p的意思也不知道是啥..好像是因为intersect已经有了所以只能叫p… 其实你仔细看看里面有不少没用的函数,比如triangle和meshtriangle的两个intersect 还有intersect类型到底是bool还是intersection也没有统一…最好自己改一下… Author Posts Viewing 5 reply threads You must be logged in to reply to this topic. Log In Username: Password: Keep me signed in Log In