Viewing 2 reply threads
  • Author
    Posts
    • #5036 Score: 0
      夏莉莉
      Participant

      首先对于 Bounds3.hpp IntersectP()函数,我是这么想的,取包围盒三对面分别求tmin,tmax,然后再取一个最大一个最小得到tenter,texit,最后判断得到是否相交,如图一图二,但是没用到函数里的后两个参数,希望有大佬帮忙看一下代码对不对
      但是对于BVH递归的部分,我不知道应该怎么理解,这里的返回一个最近交点和Intersect应该调用哪个函数呢

      Attachments:
      You must be logged in to view attached files.
    • #5046 Score: -1
      xxrl
      Participant
      1 pt

      包围盒的t算的是光线进出slab的时间
      最后算Intersect,用node里面的object算,你可以看到只有叶子节点的object是被赋值了的

      This post has received 1 vote down.
    • #5062 Score: 0
      奋斗的蜗牛
      Participant
      3 pts

      dirIsNeg其实是个bool类型的判断,就是帮你判断x,y,z是不是都是大于0的
      所以dirIsNeg = {x>0, y>0, z>0}, 即x>0时第一项是1,x<=0时第一项是0

      那么如果x<0,就说明光线是反着射的,用pMax.x求出来的是tenter.x,因为光线先击中值更大的面,再击中值小的面

      此外,tenter.x = (pMin.x – orig.x) * invDir.x;

Viewing 2 reply threads
  • You must be logged in to reply to this topic.