Billboarded triangle strip/ribbon math/code

This topic is 1416 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Hey guys, I am programming my own billboarded strips/ribbon. I am trying to generate the mesh for the strip. I have a list of points, and each will be expanded out to 2 verticies and they will all be joined together to create a billboarded triangle strip.

I have it working relatively well. I implemented it the way it was outlined in this topic here: http://www.gamedev.net/topic/644649-bill-boarding-oriented-rectangle/

I have a problem however. My code does not seem to take into consideration the rotation of the camera. I think it is because I am converting the camera position to local quad position incorrectly, but I can't figure out what I need to do to fix it.

So, here is 2 triangle strips on either side of the camera, and the camera is in the middle of them. They orient themselves correctly

Now if I move the camera down, (translate downwards, no rotation), the strips again face the camera correctly, as seen here:

I expect this same effect when I rotate the camera downwards, however my code seems to just ignore the camera rotation. So if I return the camera to where it was in image one and instead rotate downwards, I just get this:

Its, uhh, hard to see, but basically the strip is exactly as it was in image 1, but the camera is rotated. It didn't bother to align itself with the camera properly. I expected something similar to image 2.

Again, I think my problem lies in converting the camera position to the points 'local space'. I don't take into consideration any rotations. I just do this:

Vector3 camLocal = camera.position - point.Position;

Which gives us the cameras position as if it was relative to the point at 0,0,0, but it doesn't take care of any rotation.

Hope I am making some sense guys, I've been trying to figure this out for most of the day and I'm not sure what to do.

Edited by Prodigga

Share on other sites

Hope I am making some sense

Not really. Can you describe what you want to accomplish? In general, "billboarding" means orienting the entire object to face the camera. From the first two pictures, which you say is the desired result, the objects aren't facing the camera, but.. some line perhaps from the eyepoint to.. a "look at" point? Though you say the third picture is the same as the first, that's not how it appears. The quads seem oriented in a similar fashion with respect to the up-down angle as in the second image.

1. 1
Rutin
21
2. 2
3. 3
JoeJ
18
4. 4
5. 5

• 13
• 38
• 23
• 13
• 13
• Forum Statistics

• Total Topics
631715
• Total Posts
3001865
×