Not logged in, Join Here! or Log In Below:  
 
News Articles Search    
 


Submitted by Chad Sterling, posted on January 28, 2001




Image Description, by Chad Sterling



This screenshot was take from a demo program I whipped up. It's just a rotating solar system, the geo-sphere's geomorph from detail level to detail level.(best seen on slower computer) It uses a recursive structure to pregenerate the level's of subdivision for the geo-sphere's. Subdivision is done in the way discussed in the OpenGL programmers guide. I'm not exactly sure if there's a real practical use for this demo but if you like this screenshot or have gotten an idea from it please make a post to Flipcode and we can all figure out where the geomorphing geo-sphere's are going.

the demo and source can be downloaded at www.firetoads.com under the coding section.


[prev]
Image of the Day Gallery
www.flipcode.com

[next]

 
Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
 
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
 
Compman

January 28, 2001, 06:55 PM

That's a cool image. How many polygons are on that thing?

 
Gryphin

January 28, 2001, 07:26 PM

that's an interesting tech, if you had a space sim with real planets/solar systems. could correctly model the planets with a decent LOD. don't know how practical it would be as far as FPS hits, but cool anyway.

 
BigBen

January 28, 2001, 08:12 PM

hi...I also like the image, but I really miss the stars in the background and some c00l galaxies and that stuff, which would make the whole scene a lot more realistic !!
I like the "goraud" background in homeworld very much!, I think it is not hard to implement, so....;-)

cu

 
EGreg

January 28, 2001, 10:13 PM

Heh, that's a pretty cool LOD subdivision dechnique. Is it similar to the one I described in issue 5 of
http://www.flipcode.com/tpractice/
(ignore this shameless plug *g*)

I'm just curious. You seem to have triangles there like that.

-Greg

 
SigmundSEGV

January 29, 2001, 01:02 AM

Hi,

Thanks for posting the source. I haven't taken the time to even try to understand it, I admit. But I enjoyed being able to look it over and get a . . . sort of general feel for how it was put together.

I was wondering, I noticed you tend to 'de-res' the planets, not based on strict distance from the camera, but also somehow based on the angle relative to the camera - so that as the camera starts to look away from a planet--even if the planet is nearby--the planet will start to de-res as it shifts off the edge of the screen. I was wondering if this is intentional? Or possibly an artifact of how your are doing the distance calculation?

Also, I was noticing how smooth around your planets are up close. And it got me to thinking that - that seems to be the most discernable feature of the increased resolution / level-of-detail: that the edges become so smooth. (Of course, more polys will make the lighting / lit surface nicer too if vertex lighting is used...) But the point was going to be, do you (or anyone) know if there are algorithms out there for increasing the mesh detail at the "edges" of the surface of the sphere, relative to the camera orientation, while being able to leave the "rest" of the sphere at a more "coarse" level of detail--that is, an uneven sort of subdivision, concentrated at the "edges" of the sphere?

Thanks! (just curious)

Bill

 
Squint

January 29, 2001, 09:39 AM

If you took the cross product of the normal to the triangle, and the normalized vector from the camera to the triangle, you would get zero for face-on triangles (in the middle of the sphere) and sqrt(2) for the ones on the edge (I think... erm... come on brain... cross products...)


if(cross_product > some_value)
{
increase_LOD();
}



 
shrike

January 31, 2001, 06:12 AM


float getAccuracy(vect norm, vect eyeDir)
{
return 1 - abs(dot(norm, eyeDir));
}

 
This thread contains 7 messages.
 
 
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.