So - here’s what I want to do: I want to rotate a poly (ok, a bunch of them - particles) to always face the camera, but I want to do it purely using the dot product of the poly normal and the camera vector - ie I do not want to call glRotate, because when I have 10,000 particles, thats alot of calls to glRotate!
Here’s what I have so far…
1)calculate normal for poly - this is easy it’s always going to be 0,0,1 (ie my polys start off in the xy plane)
2) calculate camera vector - this is easy too - I can even normalize it so no both vectors are normalized
3) take the dot product (also not hard)
4) take the acos( ) of the dot product, this gives me the angle difference between the two vectors
5) ?? how do i use this to “rotate” my poly without actually using glRotate? ie I want to apply sin(angle) cos(angle) etc to each coord of each vertex, with the end result being that the poly is facing the camera, but I don’t know how?
(the reason I want to do it this way is because once I calculate what to mulitply the x,y,z of each vertex by to achieve the rotate, I only have to do that once for all my particles, instead of calling glRotate for each individual one!)
any help? Thanks!