I don't know anything about transformation matrix, but that sounds like a pretty simple change. I would just upload a patch to make this change on bugs.webkit.org if I were you, and cc relevant people (use trac.webkit.orgto see who has authored/reviewed patches in the relevant files).
- Ryosuke On Mon, May 14, 2012 at 7:30 PM, Shawn Singh <[email protected]>wrote: > > I'm looking at TransformationMatrix::rotate3d(rx, ry, rz). This code does > something indirect, and I don't understand why. Instead of initializing > each rotation using sin(theta), cos(theta), the code computes theta/2, and > then uses trig identities to initialize the rotation matrix. > > I checked really quickly with fprintf, and it seems like we could actually > gain 1-2 bits of precision if we avoid doing this, and use sin(theta) and > cos(theta) directly. In the current code, more error seems to accumulate > due to sin^2 (theta / 2). Squaring that value instantly increases the > error inherent in the computation. I cannot think of any valid reason that > this code uses those trig identities instead of directly using sin and cos. > Does anyone else know why? Is this worth changing to gain some precision? > > On a secondary note, its also fishy that we are freely mixing floats and > doubles in the rotation code. But, I don't think that is as significant > error accumulation as the sin^2. > > Thanks, > ~Shawn > > _______________________________________________ > webkit-dev mailing list > [email protected] > http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev > >
_______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

