PS2DEV network    

  > HOME
  > ABOUT

  > FORUMS
  > VIEW SVN
  > MAILING LIST
  > WIKI
  > QUOTES
  > DOCS

 PS2
  > TUTORIALS
  > LOADERS
  > TOOLS
  > SAMPLE CODE
  > DEMOS
  > PROJECTS

 PSP
  > TUTORIALS
  > TOOLS
  > DEMOS
  > PROJECTS

 PS3
  > LINKS
  > TUTORIALS
  > TOOLS
  > DEMOS
  > PROJECTS

   RSS


 USER ID (register)
 
 PASSWORD
 



 
  Point Of Intersection Of Face And Line
void PointOfIntersectionOfFaceAndLine(void *v0, const void *v1, const void *v2, const void *face)
{
    /*
     *  (a, b, c) = v1
     *  (d, e, f) = v2 - v1
     *  (A, B, C, D) = (Ax + By + Cz + D = 0)
     *
     *  t = -(aA + bB + cC + D) / (Ad + Be + Cf)
     *
     *  (x, y, z) = (a, b, c) + t(d, e, f)
     */
    asm __volatile__("
        lqc2        vf16,0x0(%1)        # v1 (a, b, c)
        lqc2        vf17,0x0(%2)        # v2
        lqc2        vf18,0x0(%3)        # face (A B C D)
        vsub.xyz    vf17,vf17,vf16      # vf17 = (d  e  f)
        vmul.xyz    vf19,vf16,vf18      # (aA  bB  cC)
        vmul.xyz    vf20,vf17,vf18      # (Ad  Be  Cf)
        #
        # vf19.w = -(aA + bB + cC + D)
        #
        vsuba.w     ACC,vf00,vf00
        vmsubax.w   ACC,vf00,vf19x
        vmsubay.w   ACC,vf00,vf19y
        vmsubaz.w   ACC,vf00,vf19z
        vmsubw.w    vf19,vf00,vf18w
        #
        # vf20.w = (Ad + Be + Cf)
        #
        vmulax.w    ACC,vf00,vf20x
        vmadday.w   ACC,vf00,vf20y
        vmaddz.w    vf20,vf00,vf20z
        #
        # Q = -(aA + bB + cC + D) / (Ad + Be + Cf)
        #
        vdiv        Q,vf19w,vf20w
        #
        # vf16 = (a b c) + Q(d e f)
        #
        vadda.xyz   ACC,vf00,vf16
        vwaitq
        vmaddq.xyz  vf16,vf17,Q
        sqc2        vf16,0x0(%0)
        "
        :
        : "r"(v0), "r"(v1), "r"(v2), "r"(face)
    );
}
	


  > Locked
  > Edit Topic
  > Add Topic
  > Add Link
  > Add File
  > Move Topic
  > Delete Topic
  > Order Topics
  > Versions

Owned by oobles
last updated by oobles on Fri Dec 07 00:00:00 GMT 2001
 
Site Content Copyright 2001-2007 © Authors. Read Legal Statement for Information
LiveKnowledge Software by Live Media