DX11 Streaming Terrain

 

elementary progress on the terrain streaming system.  Test map is 64km^2 with the smallest polygons only 10cm wide.  The system will be augmented by unified lighting and a multi-texture texturing scheme.  Later I will add grass coverage as well.  Texture by Ahern on Turbosquid.  Skycube texture is from google images (let me know if this is yours).

This entry was published on January 17, 2012 at 2:04 am and is filed under Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

5 thoughts on “DX11 Streaming Terrain

  1. Matt Bacon's avatarMatt Bacon on said:

    This looks amazing, nice one. Have you ever attempted planetary surface / curved terrain?

    • I have not, however the vertex positions and normals are generated on the GPU so this would only require a modified vertex and domain shader as well as a few new constants in the constant buffer and reconsidered culling. I could add this relatively easily if it would be of use to you. Let me know =]

      • Matt Bacon's avatarMatt Bacon on said:

        Truth be told that would be amazing. if you plan to turn this into a product id be interested. im looking for a dx 11 based engine for an indie project. Could we talk via irc or email? mb@ml-uk.net

        Cheers,
        Matt

  2. the terrain still doesn’t look to good for a next gen engine :-/ . You still need to work on multitexturing. most games have at least 8 texture layers

    • I agree. I am actually now implementing an indexed multi-texture approach. Up to 256 1024×1024 unique terrain textures, and the indexing is streamed. The textures are blended at the tile borders.

      In any case you can VERY easily implement whatever texturing technique you want. Just modify the current terrain pixel shader, and bind whatever texture resources you want form the engine via terrainPass->bindTextureSet(Texture*,int slotNumber) or terrainPass->bindTextureSet(Texture*, const char** shaderVarName). In general you can bind additional textures to objects as well as the passes themselves and even global textures that are available in every pass. Pretty simple =]

Leave a reply to Matt Bacon Cancel reply