HELP Optimizing Large UE4 World

Hey everyone… I have a doozy for you. PLEASE assist if you have some time. Hopefully this can also help others who are trying to do similar things. If you want to skip the intro information, my specific questions are bolded in RED.
(Disclaimer: This is for educational purposes only and the game we are creating will not be distributed or sold commercially.)

I am a graduate student enrolled in an advanced Landscape Architecture studio course entitled “Exploring the Konza Prairie as a 4D Virtual Reality Learning Environment.” For this course, we have elected to use Unreal Engine 4 as our visualization software.

What we are trying to do is to create an educational and interactive gaming experience about a nature preserve called the Konza Prairie located in Manhattan, Kansas. This landscape is part of the Tallgrass Prairie ecosystem, which is considered one of the most endangered on the planet, as large-scale agricultural practices have plowed most land in this area for crop production. Therefore, our work is part of a critical advocacy effort to educate people about the importance of the prairie in terms of biodiversity, carbon sequestration, soils, controlled burns, bison grazing, and watershed research. That’s the short synopsis of why we are doing this and I welcome any questions you may have about this.

We are a group of landscape architecture, education, and a few computer science students all collaborating intensely on this game, however we do not have any experience with Unreal. As such we have been combing through forums and tutorials in search of ways to do this, and I have to say I am proud of where we have gotten in just one short semester.
However, I wanted to run this by the experts, because we are currently experiencing major performance problems with our large landscape such as placing procedural foliage, enhancing textures and materials, and optimizing for a Virtual Reality HMD, the Oculus Rift.

I have many more questions about using procedural texture maps to guide procedural foliage and grass, but I wanted to get this conversation started. I want to create a Master Landscape Material which controls the tiling of 64 separate aerial image texture photos, procedural foliage, procedural grasses, etc.

Here are the specs for our landscape:

  1. Square XY dimensions of 8129m x 8129m (clipped to recommended size)
  • That’s approximately 16,300 acres or 66 square kilometers.
  1. Total maximum change in elevation of our heightmap DEM is 143meters
  2. (Let me know if you need any other info to help out.)

What we have done so far is:
03_TerrainUE4.PNG.jpg

  1. Acquired geospatial data (DEM aka “Heightmap” in gamer speak, vector shapefiles for roads, trails, structures, etc) from multiple sources, including the USGS and our local Riley County GIS clerk.
  2. Formatted and clipped this data using ESRI Arcmap 10.4
  3. Did some further formatting in Photoshop such as clipping to UE4 recommended landscape size and making a .r16 file.
  4. Imported our DEM heightmap into WorldMachine Pro and built a tiled world from 8 x 8 tiles. This divided our heightmap into 64 separate tiles.
  5. Enabled World Composition in UE4 and imported these 64 unique DEM heightmap tiles to create a seamless tiled terrain. We also created a custom function which gives us a scale of our terrain (XY & Z) to match real world dimensions exactly.
  6. (This is where I need help) We have a 20k orthophoto aerial image that we want to use on these tiles, because it is very high resolution and looks fantastic on our model.
  • **Is there a way to selectively change the resolution of the textures tiled onto the landscape so that the “Texture Streaming Pool” is not so large and cumbersome? I would like to have higher detailed textures up front **

  • What I have done is separated the large image into the 64 tiles to exactly match the terrain tiles used for World Composition (below)

  • I have created 64 SEPARATE materials for each individual World Composition Tile. These materials drive the landscape textures for each of the tiles.

  • Each of the tiled textures is scaled to fit the terrain tile, and has a 2k resolution of 2017px.

  • **Is there a way to not have a master material, and to control the orthophoto aerial textures using some type of coordinate system? It is getting very tedious to go in and edit 64 separate materials for procedural foliage, texture mapping, etc. **

  • **What is the best way to preserve the appearance of these high resolution aerial image textures, while minimizing the GPU load? It would be nice to have custom materials set up for all close-up views, and have the aerial images only be visible from afar. **

05_TileTextures.PNG.jpg

This is what each of the 64 material blueprints looks like (generally, see below). Please let me know how I can modify this to make a MASTER landscape material, how I can optimize the textures and 3D assets for this large world to run smoothly in VR.

06_MaterialBlueprint.PNG.jpg

Thanks in advance for all of your help!

Cheers,

Conner

I feel like vertex painting would be a good way to store the mask that defines where all the different landscape materials go, but I haven’t worked with the landscape system before so I’m not sure if you can use vertex painting on that or if you have to use textures.