Jump to content

  • Log In with Google      Sign In   
  • Create Account


Billboarded triangle strip/ribbon math/code

  • You cannot reply to this topic
1 reply to this topic

#1 Prodigga   Members   -  Reputation: 103

Like
0Likes
Like

Posted 30 August 2014 - 12:10 AM

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

 

BIPy2vo.png

 

 

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

 

YrItk6M.png

 

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:

 

zOWNZRZ.png

 

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, 30 August 2014 - 12:12 AM.


Sponsor:

#2 Buckeye   Crossbones+   -  Reputation: 4413

Like
0Likes
Like

Posted 31 August 2014 - 09:11 AM


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.


Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.






PARTNERS