Started by Oct 14 2001 11:24 AM

,
3 replies to this topic

Posted 14 October 2001 - 11:24 AM

I am trying to define a planet using spherical corrdinates (rho, phi, theta). The sphere is centered on the origin, and I have my camera defined by a second set of spherical coordinates. What I want to do is clip away all geometry on the sphere that is not visible (the sphere has a radius of ~5000, the camera is at rho 5020). How can i avoid the cost of converting from Spherical to cartesian coordinates, and clip off all that extra geometry?
Z.

Posted 14 October 2001 - 07:31 PM

I will assume that your camera is located on the positive z axis at a point z_{c}, such that z_{c} > z_{p} (where z_{c} is the radius of the sphere the camera lies on and z_{p} is the radius of the planet). If you're camera lies elsewhere on the sphere, then it is a trivial transformation of coordinates to adjust the solution to your exact problem.

Given that z_{c} > z_{p}, then the visible part of the planet will be the locus of all points within the 'cap' of the sphere defined by the intersection of the sphere and a tangent cone with origin at z_{c}. In other words, all vectors that pass through z_{c} and are tangent to the sphere define a 'tangent cone' and it is only points on the planet within this cone that will be visible at z_{c}. I believe that finding this set of points is the problem you have asked. Please correct me if I am wrong.

Assuming this is the case...

A vector from the origin of the sphere to z_{c} is given by **c ** = <0,0,z_{c}> and the vector function defining the surface of the sphere is given by **r ** (theta,phi) = z_{p}(cos(theta)sin(phi)**i ** + sin(theta)sin(phi)**j ** + cos(phi)**k ** ). Hence, the tangent cone is defined by **t ** = **c ** -**r ** such that **t.r ** = 0; and so we can solve this to find that cos(phi)=z_{p}/z_{c}, thus defining the boundary of our set of points by the angle phi (which is the (angle of) declination from the z axis of the point on the sphere).

So, you can clip all points on the sphere for which phi>cos^{-1}(z_{p}/z_{c})

I hope this is what you were looking for!

Cheers,

Timkin

Edited by - Timkin on October 15, 2001 12:18:02 AM

Given that z

Assuming this is the case...

A vector from the origin of the sphere to z

So, you can clip all points on the sphere for which phi>cos

I hope this is what you were looking for!

Cheers,

Timkin

Edited by - Timkin on October 15, 2001 12:18:02 AM