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


Submitted by Jared Go, posted on August 08, 2000




Image Description, by Jared Go



These pictures show the features of my new terrain rendering engine, approximately one week into its creation (after many sleepless nights!). The engine uses the ROAM algorithm, which makes for a huge difference in quality over my earlier continuous-LOD quadtree engine.

Essentially, this game is intended to be a kind of "MMORPG" engine, as I designed the architecture to be all patch based, with each 128m x 128m patch of land about 5kb uncompressed at a 4m x 4m heightfield resolution. Essentially, this height data is the basis for procedural generation of all other terrain textures and details. For example, unique textures are synthesized during game time for each patch. A normal map is also generated from the height data, and thus this game makes heavy use of the D3DTOP_DOTPRODUCT3 operation for real time lighting over the entire terrain. The skydome is essentially the classic "interpolated colors" from horizon to zenith, with some additional tweakable parameters.

The water is done through the use of a stencil buffer, and the edges are smoothened through the use of another in-game generated texture - a simple alpha map which determines opacity. I think I will be adding some ripples for added realism too :). For some concrete numbers, the engine runs around 60-80 fps on a P3-500, Geforce2 GTS, 128MB memory.

Other than that, the engine is still missing trees and decorative items, and I am putting in detail textures just as I am writing this e-mail. For now, it is kind of difficult to judge the scale, but the mountain in the distance is about 600m away or so..

That's all for now, any comments/questions welcome....

Jared Go
Lead Programmer (of a 1 man team :) )


[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.
 
RJ West

August 08, 2000, 03:09 AM

I have to say, It looks GREAT.
PS: 1 Week in the making, that couldnt be the WHOLE development time:), is it?, (maybe your just one hell of a programmer:))

 
Kurt Miller

August 08, 2000, 03:22 AM

RJ,

"sleepless nights" tend to double one's coding time :)

Very nice work, Jared.

 
Thomas

August 08, 2000, 04:01 AM

Nice terrian,

what about some ripples/waves on the water surface..

Keep up the good work :)

 
MyName

August 08, 2000, 04:22 AM

Wow. That looks absolutely fantastic. I'd love to see it in real-time :)

 
malkia/eastern.analog

August 08, 2000, 04:28 AM

Well this is enough with me...

From now on I'll stop doing any LANDSCAPE ENGINES....

With my job currently here, I can't pleausure doing such beauty.

What to say.... Fantastic Terrain!

Anyway for others....
expect soon

Metal Gear Solid for PC

and hope my next game involment will be with something
much more creative, than porting a game from PSX to PC

 
Navreet Gill

August 08, 2000, 04:58 AM

may I ask how long you've been into d3d/gl??

VERY NICE!

 
Mace

August 08, 2000, 05:01 AM

Stunning.
Is that anti-aliased as well?
It looks like it... or maybe its just me :)

Cool sky-fading-in-different-colors system you got there.

-In theory, there is no difference between theory and practice. In practice, however, there is.

 
Albert Sandberg

August 08, 2000, 05:19 AM

A link to a demo would be appriciated(sp?).

Albert "thec" Sandberg

 
Vlad

August 08, 2000, 08:28 AM

How many triangles per scond you have?
(if camera static and if actively moves)

Vlad

 
Nithril

August 08, 2000, 10:41 AM

It's look greats.
thank to the dot_product3.

 
Rui Martins

August 08, 2000, 10:42 AM

I can't say much words than this:

Just Beautifull !

P.S.
what about a Game to make some justice to your engine, any ideias already ?

 
Ingenu

August 08, 2000, 11:00 AM

I think I'll stop working on 3D engine and go back to 2D...
:o(

It's so nice and only take you a week :o(

Chrono trigger is a good 2D game ;o)

Would you like to share some informations, I'll be very interested if you link the Articles/Sources you used to make this beautiful engine !

[Maybe I'll stay on 3D after all ;o) ]

-* So many things to do, so few time to spend *-

 
Eazy-E

August 08, 2000, 11:01 AM

I've looked through the DX docs and can't find any good info on exactly what D3DTOP_DOTPRODUCT3 does for you. Can someone explain it in idiot terms?

Sweet looking landscape, love the skyline and the shoreline!

 
Darshan Patil

August 08, 2000, 11:12 AM

Just love your screen shots

 
Douglas Cox

August 08, 2000, 11:19 AM

So how many patches are we looking at in those screen shots? And are you doing geomorphing?

Looks very nice!

 
Jared G.

August 08, 2000, 11:32 AM

Thanks for all the comments everyone!

-The pictures are somewhat AA'ed, because I scaled them down 50% so I could fit them all on a single image...

-There are approximately 50 patches visible in most of these shots, I render about 100 patches around the camera but with culling you leave about a quarter that number...

-No geomorphing in there yet :) I'm adding trees now and some other "aesthetic" things...

-About 6000 nodes in the pictures, I think, which is maybe 2000 to 3000 polys only... In more "vertical" maps such as maps of canyons, etc., the count goes up to 10000+ nodes and 5000+ polys.

-I don't have a demo out yet :) After all, this engine is still in "pre alpha" I guess...

-Camera is definitely not static, I love making various terrains and flying around watching the sunset from different angles :)

-I would like to eventually make an MMORPG like Asheron's Call, but with such a project, who knows if I'll ever finish :)

-I am putting in ripples now as well...

-D3DTOP_DOTPRODUCT3 uses rgb channels as vectors xyz and calculates the dot product between the elements, essentially doing that vertex lighting does but on a per-pixel basis.

P.S. anyone know a good program to capture avi/mpeg/mov of the screen? I wanted to make a movie showing day/night transition and was wondering which prog to use...

-Jared

 
piky

August 08, 2000, 12:29 PM

Good-looking images ;oD

Are you using in your ROAM implementation the original error
calculation for the LOD implementation? or you are usuing
another method like height variance?


Again nice work.

 
z80

August 08, 2000, 12:41 PM

The sky looks absolutely fantastic!

 
z80

August 08, 2000, 12:58 PM

And btw... post more shots when you got trees and stuff added :)

 
Navreet Gill

August 08, 2000, 01:35 PM

Yeah!! Post more Screen shots when you are near completion of the engine!! Then maybe a link to the demo... btw, what kind of fps are you getting at the moment? And I hate to be nitpicky but how much experience do you have? =)

 
Buster

August 08, 2000, 02:04 PM

I'm not worthy!

 
Jared G.

August 08, 2000, 02:21 PM

Experience? Bah :)
j/k

I've written various terrain engines, from brute force heightfield to quadtree...
I've also worked on rigid body dynamics, IK, Network stuff....

I guess I just enjoy tinkering =)

Jared

 
krogoth

August 08, 2000, 03:12 PM

How many frames per second can you get, and on what computer?

 
Isaack Rasmussen

August 08, 2000, 03:19 PM

Really nice!

But how come, so many asks for FPS when he writes,

"For some concrete numbers, the engine runs around 60-80 fps on a P3-500, Geforce2 GTS, 128MB memory."

Jarred is it possible that you can put up some pictures in fullsize, you mentioned that because of the reduction in size, AA has been post-added to pictures.


Isaack

 
Jared G.

August 08, 2000, 03:28 PM

Okay, I'm going to put the full size jpgs on my web page at
http://users.rcn.com/j.go

Under game development or game programming or whatever :)

If they're not there yet, I'm still in the process of putting them up so they will be there shortly...

-BTW everyone, the engine is not completely done, as there is no frame to frame coherence yet to improve performance, that's why it's only 60-80 fps right now :) I'll be adding it tonight or tomorrow I think...

Jared

 
Phil Carlisle

August 08, 2000, 04:17 PM

Nice look. Certainly looks better than my roam implementation (just started playing with it).

I like the way you have done the blending on the land/water edge.. nice idea.

Is it still a skybox?

One thing Ive noticed with my roam stuff.. it REALLY doesnt like "solid" features imprinted into the landscape..
For instance, place a level "road" into the heightmap data.. i got some BAD popping.. I'll have to try different methods of
doing the variance threshold calcs.

Nice effort.

Phil.

 
Jared G.

August 08, 2000, 05:03 PM

All right, I have to try that...

 
richard

August 08, 2000, 05:36 PM

Holy cow!!

This landscape is REAL!

 
Phil Carlisle

August 08, 2000, 05:53 PM

Daniel T mentioned a "priority map" which is kind of a variance modifier (so that you could always tesselate map "features" so they dont pop.

I've just got a sneaking feeling that ROAM isnt the right thing for non-rolling hills :))

Basically, if your going to do MMOG, then your going to want FEATURES on your landscape, rather than just hills that slope into each other.

My current goal is a similar thing, so Ive been paying attention to how things work in terms of editing and making landscape objects (lets face it, the hills are the easy part, its the lighting, atmosphere etc thats harder. You seem to have gotten most of that down).

Look at say, a HALO movie though, and its pretty clear that they arent using a ROAM implementation (or at least it seems that way to me).

I'd love to see a demo though, prove me wrong about roam.

Phil.

 
Jared G.

August 08, 2000, 06:26 PM

But with ROAM though, any feature specified in a heightfield can be rendered with appropriate variance limits... If you mean having caves, overhangs, etc... yes, ROAM does not allow that directly but you could theoretically program in such things as extensions...
And for MMORPG's, one of the key features is a continuous world, and so ROAM allows you to draw alot of terrain quickly which is condusive to having an immersive world :)

Oh well, I guess the reason I'm defending ROAM so much is because I worked on this engine :)

But I see your point as well.

Jared

 
This thread contains 46 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
 
 
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.