Terrain project

Started by
2 comments, last by NineYearCycle 16 years, 1 month ago
First post after lurking for years! I'm going to make a terrain project in which I would like to implement all available terrain technology. This wil be written in Java/JOGL because I want to learn more about Java and there is not much source available in Java. Therefore I will release the source for every technique to the public domain! I want to do something like Shamus Young did.. Here is a list with the techniques I want to implement:

	rendering
		brute force
		geomipmapping
		geometry clipmapping (CPU)
		geometry clipmapping (GPU)
		chunked lod
		ROAM
		ROAM2
		geomorphing

	data
		heightmap
		displacement mapping
		procedural(perlin noise/fractal)

	texturing
		splatting
		multitexture
		procedural texture
		normal mapping
		parallax mapping
		megatexture

	atmosphere
		atmospheric scattering

	shadow
		shadowmap
		variance map
		LiPSM
		PSSM

	culling
		frustum
		occlusion

	techniques
		overhangs
		caves
		arbitrary view distance
		scenegraph

	lighting
		static
		dynamic
		ambient
		radiosity
		global illumination
Is there any technique I left out?
Advertisement
back face culling :)
Hi DeDi,

thats a huge TODO list ;-)

since you like to implement these techniques in Java I recommend to make a cross post to www.javagaming.org forums. I am sure there is a lot of community interest in your project.

here is my attempt to build a hybrid engine based on ROAM in java

(is geomorphing really a rendering technique? For me it is more a gimmick you may apply to almost every technique.)


>whats missing
-water
-think about planets too (real 3d is sometimes more difficult than "2d" terrain)
-just start coding, your list is already long enough ;-)
Just a piece of advice rather than anything to do with your list in particular.

You're going to be implementing a lot of different techniques and getting the interface for all of those correct up front is probably not possible for an amateur coder (i don't know how good you are) so my single piece of advice would be to plan out what you feel is a reasonable interface/structure for you code and then implement one of those techniques from each section.

Then implement another one of the techniques. When you implement this second technique you may find that the initial interface you wrote doesn't suit the implementation of this and further techniques. Don't panic, this is the learning part ;) Refactor the interface to suit *both* techniques and you'll have learn't more than many others already.

Refactoring code that isn't suitable for the task is a large part of commercial games development, get used to it and don't be afraid of it.

Good luck

Andy

"Ars longa, vita brevis, occasio praeceps, experimentum periculosum, iudicium difficile"

"Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgement difficult."

This topic is closed to new replies.

Advertisement