Page 1 of 15 12311 ... LastLast
Results 1 to 10 of 150
  1. #1
    Join Date
    Dec 2002
    Location
    Virginia Beach, VA
    Posts
    861

    Terrain System R&D W.I.P.

    Today has been all about research with some tinkering thrown in here and there but I've managed to make some progress and I thought you guys might be interested in seeing how the terrain R&D is going. So here are a few screen grabs for you. Ignore the texture it's just temporary. (I got tired of looking at the UV test pattern)

    First off the world is big.


    Really big.


    Really REALLY big


    As you can see the world is rather large. The visible world is 13 terrain patches across. That is enough geometry to reach the far clip plane at 1000m in every direction. Once dynamic loading of patches is in place the world will truly be of epic proportions. Just the visible area took 4 minutes 47 seconds to run non stop end to end. The best part is that less than 16 thousand vertices are used to construct the whole thing. Average draw calls is less than 150 with deferred rendering and soft shadows turned on. Less than 75 draw calls without shadows. If one were so inclined the vertex count is low enough that the entire world could be collapsed into a single mesh there by reducing the draw calls down to just a few depending on the shader used to texture it. This is something that could be useful when working with a mobile device (HINT!). But for our purposes we can get some performance boost by relying on frustum culling of the patches that aren't visible to the camera.

    How is this possible?


    Did I mention I started work on the LOD system too?

    Level one is a grid of 65x65 vertices, level two 33x33, level three 8x8, and level 4 a mere 4x4. This keeps the overall vertex count very small not to mention the savings gained in data transfer and storage.

    And before anyone ask yes we will be showing you how to do this in another set of videos. There are still several issues to resolve. The first is to fix the splits in the terrain that occur at LOD transitions. Then will be resolving the popping that will occur once I implement the dynamic LOD system (Currently the LOD is hardwired for seam resolving tests). Once those get knocked out I'll move into making the world scrollable so to the player the world will seem to go on forever. After that I will begin to tackle being able to paint terrain heightmaps in real time. Though I think you'll have some videos before work begins on that part if I know Jason.
    Last edited by chronos78; 02-16-2011 at 10:32 PM.

  2. #2
    Join Date
    Sep 2008
    Location
    Salisbury, UK
    Posts
    2,812
    Awesome stuff, man! 150 draw calls for a 4 km sq terrain in fantastic mode??? Holy cow...
    I've spent the day messing around with noise & such and I'm finally starting to get my head around the basics; I'm just drooling over learning this stuff... You're such a tease!

    I found
    my current avatar on google, so props to THIS GUY who created the original...

  3. #3
    Join Date
    Dec 2002
    Location
    Virginia Beach, VA
    Posts
    861
    Okay I lied. it's not a full 2k all the way across. Went back and did the math and the terrain is 1.7km across so it's only 2.9km sq. My apologies for shorting you 1.1km sq.

  4. #4
    Join Date
    Nov 2009
    Location
    Dallas, Texas
    Posts
    170
    Wow, really awesome work! Will the dynamic LOD system be using any particular algorithm like GeoMipMap, etc?

  5. #5
    Join Date
    Dec 2002
    Location
    Virginia Beach, VA
    Posts
    861
    No since we don't have low level access to the source code of the engine and have to rely on scripting we want to avoid recalculating the mesh anymore than is absolutely necessary. So my current plan is to implement some sort of metric to determine which patches will be in which LODs and then once created only modify the mesh as needed to achieve a smooth Geomorph from one LOD to the next. When combined with some multithreading to load new LODs for patches only when needed I'm hoping to keep the memory footprint small and minimize the impact to the frame rate.
    Last edited by chronos78; 02-16-2011 at 11:34 PM.

  6. #6
    Join Date
    Dec 2010
    Posts
    91
    Wow. I am really impressed with this. I am never going to start watching Maya Fundamentals if you keep turning out videos at the rate you guys are going. Very exciting.

  7. #7
    Join Date
    Nov 2009
    Location
    Dallas, Texas
    Posts
    170
    Ok, that makes sense. Seems like it should work very nicely! Seriously Lee, great job so far. The amount of work you've been able to do so quickly is pretty impressive.
    I'm really looking forward to seeing how things progress.

    I wish my studio wasn't in crunch mode right because I just want to take a vaction for about 3 months and dive into some of this stuff full bore. However, for now, I will have to be satisfied living vicariously through your success

    I hope you don't mind

  8. #8
    Join Date
    Aug 2008
    Location
    San Diego, CA
    Posts
    205
    This is awesome. I know this is R&D and not part of the game, but are we going to be able to see the source code of this tool? =)
    "Choose a job you love and you'll never have to work a day in your life" - Confucius
    "I see and I forget, I hear and I remember, I do and I understand" - Confucius
    "My mom didn't see the irony in calling me a son-of-a-b**ch" -- Jack Nicholson
    "'Con' is the opposite of 'Pro',so that makes congress the opposite of progress"

  9. #9
    Join Date
    Dec 2002
    Location
    Virginia Beach, VA
    Posts
    861
    Yes just like the 1st round R&D videos you'll see how this was put together along with discussion covering why this approach was chosen over some of the other possibilities.

  10. #10
    Join Date
    Jun 2004
    Location
    The Netherlands
    Posts
    153
    Nice progress! Cant wait for those video's How is the performance of walking around on the terrain on those screenshots?
    Bug? That's not a bug, that's a feature.
    LinkedIn - Twitter (dutch) - Work (dutch)

Page 1 of 15 12311 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •