#213 plate mode bots shotline incorrectly

open
nobody
Analysis (10)
8
2009-05-14
2009-05-14
Sean Morrison
No

Plate mode bots report wrong and/or bad intersections for a given shotline. Depending on which side of the (unoriented) bot is hit, you can get a miss altogether or an incorrect segment result. Moreover, if you put a plate mode bot in front of a volume bot and nirt or rtcheck them, you will get incorrect overlaps reported and invalid nirt segments. It also looks like putting a plate mode bot in front of a volume mode bot behind it will cause it to *also* miss the volume mode bot.

This has been verified and narrowed down to the attached simple test case.

Edit plate.bot and nirt one side, then nirt the other side of the plate surface. Nirt through two of the plate surfaces at the same time. Nirt through the plate surface with the volume surface behind it but on the shotline.

Discussion

  • John Anderson
    John Anderson
    2009-05-14

    Attached simple test case is not attached

     
  • Sean Morrison
    Sean Morrison
    2009-05-14

    bah, stupid interface.. can't comment and attach at the same time.

     
  • Sean Morrison
    Sean Morrison
    2009-05-14

    FASTGEN plate mode BoT bug

     
    Attachments
  • John Anderson
    John Anderson
    2009-05-14

    I looked at the attached file and did the nirting you mentioned, but I don't see anything unexpected.
    Can you provide specific commands that you ran in mged and point out what was unexpected?

     
  • Sean Morrison
    Sean Morrison
    2009-05-14

    It's very peculiar as I've had it go from being completely reproducible, to not being reproducible, then back to reproducible so something is odd. This should hopefully do the trick, though:

    front
    B plate.bot
    tra -40000 0 0
    nirt

    It misses the target (and it shouldn't). It renders correctly, though. That whole outer edge on the far left and right will produce a nirt miss whereas the inner "underside" surface will give a hit.

    Now when I tried to do a saveview/loadview, though .. that exact same spot produces hits where it was reporting misses, so .. fishy.

     
  • John Anderson
    John Anderson
    2009-05-14

    I did the commands that you specified, and got a miss. Note that plate.bot does not have faces everywhere. There are areas where a shot can go "through" plate.bot without hitting any faces from both the front and side views. Remember that a BoT is all triangles, so any non-triangular area is an area without faces, and a plate mode Bot does not need to be closed. Specifically, if you do your specified commands, but skip the "tra", you can see that the shotline goes through areas with no triangles. The end result is that I would expect a miss from that shot.

     
  • Sean Morrison
    Sean Morrison
    2009-05-15

    Yeah, aware that there aren't faces everywhere -- it's sort of like a vest with straps that come up the sides. That's what makes the miss interesting because it's a square hit on one of the straps and a place that renders as a solid surface indicating some sort of inconsistency between nirt and rt.

    Additionally interesting, if you run "saveview miss.rt" then "loadview miss.rt" and nirt again .. it will report the hit. I didn't dig in to see if they are exactly the same views or if it's a problem with nirt/view coordinates being calculated wrong (which could also explain the bogus misses).

    There is a (high?) possibility that this is a bug in the results book-keeping because one of the other bugs encountered was rtcheck reporting overlaps between the plate.bot and volume.bot with some views (and they of course clearly do not overlap). I can't find the case to reproduce it now, but Dwayne was able to reproduce it so I'll see if he can show me the view again for a saveview.