Java-Gaming.org    
Featured games (91)
games approved by the League of Dukes
Games in Showcase (578)
games submitted by our members
Games in WIP (499)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Terrain screenshots  (Read 2766 times)
0 Members and 1 Guest are viewing this topic.
Offline anarchotron

Junior Member




...precious bodily fluids.


« Posted 2005-10-16 02:22:37 »

Not a game demo really, just some screenshots from a terrain patch renderer I'm working on.

The terrain is specified in the form of a greyscale heightmap, a RGB colormap that maps to the whole patch, a series of textures, and a series of 1 channel alpha masks for the aforementioned textures.  Right now it renders in fixed function with 1 pass per texture, plus 1.  My little screenshots are using a series of 2 textures (grass and rock), so it is 3 passes.

There is only 1 unique patch but it is instanced 4 times and rendered seamlessly side by side in a 2x2 grid.  I wrote a tesselator to tesselate the incoming regular heightmap.  I run the tesselator several times in series (in my case, 4) to generate LOD meshes for the terrain.  Each patch LOD shares the same VBO but uses different indices.

My mesh is 4225 verts raw, tesselated to 2673 (5088 tris) then LOD'ed down to 1602, 967, 540, etc... verts.

I'm pretty sure I can do the whole thing in 1 rendering pass using a pixel shader.  Another optimization to be made is to take the meshes, and divide them into smaller meshes for each texture.  E.g. for each texture, iterate the mesh.  If any of the points on a triangle map to a non-zero value in the texture mask, this triangle goes into the mesh for this texture.

Anyway, here's some screenshots.  I didn't want to shrink them down, so follow this link to see the rest:

http://statezero.net/terrainshots/
Offline oNyx

JGO Coder


Medals: 1


pixels! :x


« Reply #1 - Posted 2005-10-16 02:38:07 »

Looks good.

Feel free to submit a screenshot Wink

弾幕 ☆ @mahonnaiseblog
Offline hvor2

Junior Member




Beyond mind, there is an awareness...


« Reply #2 - Posted 2005-10-19 09:30:01 »

Very nice. I am also fighting with terrain engine  Wink. I suppose that you are render triangles, not triangle_strip, because of LOD ?  Do you have frustum culling part of optimisation, too?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Vorax

Senior Member


Projects: 1


System shutting down in 5..4..3...


« Reply #3 - Posted 2005-10-19 12:52:37 »

Very nice indeed.

Offline anarchotron

Junior Member




...precious bodily fluids.


« Reply #4 - Posted 2005-10-19 15:20:49 »

Yes I do triangle list, not strip.  Each patch of terrain is a single list of triangles, so that is the level of geometry that gets frustum culled.  My next step is to divide the patch into multiple lists based on the texturing.  I need 1 list per texture configuration.  For my 2 textures, A & B, I have triangles with only texture A, only texture B, or with both A & B blended.  So I would split my mesh into 3 lists.  For 3 textures, there are 7 combinations, and so on.

Very nice. I am also fighting with terrain engine  Wink. I suppose that you are render triangles, not triangle_strip, because of LOD ?  Do you have frustum culling part of optimisation, too?
Offline Herkules

Senior Member




Friendly fire isn't friendly!


« Reply #5 - Posted 2006-02-11 01:19:54 »

Seems that texturing is not affected by LODing? Thats fine (I consider this difficult, is it)?

Can you still have a chep-to-compute getHeight(x,y) method?

How is it implemented? Java3D? JOGL? Xith? JME?

HARDCODE    --     DRTS/FlyingGuns/JPilot/JXInput  --    skype me: joerg.plewe
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (28 views)
2014-04-15 20:08:23

BurntPizza (25 views)
2014-04-15 05:46:01

UprightPath (40 views)
2014-04-14 19:39:50

UprightPath (22 views)
2014-04-14 19:35:47

Porlus (38 views)
2014-04-14 17:48:38

tom_mai78101 (62 views)
2014-04-10 06:04:31

BurntPizza (121 views)
2014-04-09 01:06:04

tom_mai78101 (221 views)
2014-04-05 15:34:39

trollwarrior1 (188 views)
2014-04-04 14:06:45

CJLetsGame (195 views)
2014-04-01 04:16:10
List of Learning Resources
by SHC
2014-04-18 05:17:39

List of Learning Resources
by Longarmx
2014-04-08 05:14:44

Good Examples
by matheus23
2014-04-05 15:51:37

Good Examples
by Grunnt
2014-04-03 17:48:46

Good Examples
by Grunnt
2014-04-03 17:48:37

Good Examples
by matheus23
2014-04-01 20:40:51

Good Examples
by matheus23
2014-04-01 20:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 17:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!