Jump to content
  • Advertisement
Sign in to follow this  

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.

If you intended to correct an error in the post then please contact us.

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/


That topic was really helpful! smile.png


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 this post

Link to post
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.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!