Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业七光线相交测试异常

Tagged: 

Viewing 6 reply threads
  • Author
    Posts
    • #5371 Score: 0
      枫吟
      Participant
      1 pt

      我在castRay里测试代码如下
      Intersection intersection = Scene::intersect(ray);
      Vector3f hitColor = this->backgroundColor;
      Material *m = intersection.m;
      Object *hitObject = intersection.obj;
      if (intersection.happened) {
      return Vector3f(1.0f);
      }
      else {
      return Vector3f(0.0f);
      }

      其中我相加部分的代码在作业六里是正常运行的,按说上述代码会得到一个所有物体的轮廓。结果得到如下的图片。对此我感到很奇怪,在最开始写代码时,我发现我测试光源部分表现也很异常。从物体到光源会出现miss的情况,如果从光源到物体测试就不会发送这种情况。
      请教一下是不是测试相加部分哪里的逻辑需要修改

      Attachments:
      You must be logged in to view attached files.
    • #5373 Score: 0
      助教
      Keymaster
      14 pts

      请稍等,我要核实下。

    • #5374 Score: 0
      OptSolution
      Participant
      1 pt

      遇到了同样的问题,我也由于只得到这三个物体的渲染结果用这个方法测试了一下。
      理论上来说应该除了边缘没有物体的区域是黑色的其他全是白色的

      • #5384 Score: 0
        Bear
        Participant
        -11 pt

        这就很有意思了。。。我的结果是中间全白了

        作业 6 我也没问题啊,真神奇

        • This reply was modified 4 years, 7 months ago by Bear.
        Attachments:
        You must be logged in to view attached files.
        • #5385 Score: 1
          助教
          Keymaster
          14 pts

          中间全白是对的。

          This post has received 1 vote up.
          • #5388 Score: 0
            Bear
            Participant
            -11 pt

            哦哦,那就好,谢谢助教

    • #5375 Score: 2
      cmc233
      Participant
      6 pts

      会不会是你的 Scene::intersect(ray)写的有问题,因为所有与xy,yz,zx平面平行的区域都没有渲染出来(注意,left那个板子不和yz平行),你在intersect(ray)里判断进入包围和出包围盒的时间是严格小于吗?但对于与xy,yz,zx平面平行的面,此时进入包围和出包围盒的时间是相等的

      This post has received 2 votes up.
      • This reply was modified 4 years, 7 months ago by cmc233.
      • #5379 Score: 1
        OptSolution
        Participant
        1 pt

        感谢

        This post has received 1 vote up.
    • #5377 Score: 0
      助教
      Keymaster
      14 pts

      我基本可以确定问题是你们作业6相交判断部分的「判断包围盒与光线相交」造成的,请问你们能否将你们作业6的代码发给我的邮箱 lgz17@mails.tsinghua.edu.cn,让我做进一步的说明?

      • This reply was modified 4 years, 7 months ago by 助教.
      • #5380 Score: 0
        OptSolution
        Participant
        1 pt

        我这边的情况和楼上cmc233同学说的一致

        • #5381 Score: 0
          助教
          Keymaster
          14 pts

          好的。

          • #5390 Score: 0
            maajor
            Participant
            3 pts

            我就是「判断包围盒与光线相交」这里写错了 做这次作业才发现上次作业没写对TT

            作业框架应该没问题的,我能得到文档里的参考结果一致的图片

    • #5420 Score: 0
      zsw
      Participant
      -2 pt

      请问解决了吗。。我也是

      • #5427 Score: 0
        助教
        Keymaster
        14 pts

        本楼中 cmc233 同学已经提到了解决方案:“会不会是你的 Scene::intersect(ray)写的有问题,因为所有与xy,yz,zx平面平行的区域都没有渲染出来(注意,left那个板子不和yz平行),你在intersect(ray)里判断进入包围和出包围盒的时间是严格小于吗?但对于与xy,yz,zx平面平行的面,此时进入包围和出包围盒的时间是相等的。”

    • #5437 Score: 0
      枫吟
      Participant
      1 pt

      感谢各位的解答,就是进出包围盒时间相等时的问题

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