What are the best practices on room design?

okay know variations of this question have been asked but is so much of a foundation i want to double check this before we get in over our heads, kinda a big argument with our artists on the team.
so we have a massive house which needs to look very worn out and damaged, reading to not use bsps, high poly models, any more decals then needed, we developed the following workflow, use a bsp to block out the room to the correct size, export the bsp out then model it in 3ds max, seperating out the ceiling, floors, and walls, the ceiling gets its own 2048 texture material, the floor the same, and the walls are overlapped so both opposing walls are on the same texture cooridinates, from there we use a quixel to get us some good wall panel detail using normal maps and export it all out to substance painter where we then continue to add detail both texture wise and heigth information wise, in the end we have exactly what we want looks wise and send it back to ue4 with a total of 3 2048 materials for the entire room and no decals, some of our artist would rather see us use bsps, tiling textures in engine and then a combinatino of decals (a bunch to get ti looking correct and break up the tiling) and vertex painting, to me that sounds against everything we have read in the docs, any clarification would help, if anything i would prefer to be using even more materials on the rooms which by the way average 16 foot by 30 foot more or less than just one per all the walls, but with everyone balking im afraid to give more resources up, thanks in advance for any help

Hi ,

we developed the following workflow,
use a bsp to block out the room to the
correct size, export the bsp out then
model it in 3ds max, seperating out
the ceiling, floors, and walls, the
ceiling gets its own 2048 texture
material,

This is definitely a good start with your workflow! It’s one thing to have a scale and set that for everyone to work from on their machines but by having a basic blocked out version in BSP that’s been coverted to Static Mesh and exported you can’t argue scaling there. Everything will be that size to work from. (exporting back out is another matter though! Make sure the scale is set on the FBX for the correct export in cm)

some of our artist would rather see us
use bsps, tiling textures in engine
and then a combinatino of decals (a
bunch to get ti looking correct and
break up the tiling) and vertex
painting, to me that sounds against
everything we have read in the docs,
any clarification would help

I can understand them wanting to use BSP as it’s much easier to not have to worry about things like UVs and Lightmapping, but with that you loose a lot of the ability to create something unique and engaging for your level. BSPs are generally used for blocking out a level and getting the play just right before committing the artist to building all the assets and materials.

The docs and some of the vids may seem contrary, but you have to remember that the docs are there as a guide for the engine and not to tell you how to specifically build your game.

There are limitations with BSP though such as not being able to cull them, they are not really optimized to be utilized significantly which can lead to a performance hit, and you cannot use multiple materials on a single face. Static meshes definitely give you a better flexibility to allow you to create an engaging world!

You can take a look first hand at Epics level design approach by loading up the Content Examples from Marketplace > Open Map > LevelDesign_workflow.umap.

You’ll see four layouts here. The first is made with BSP then progressively moves to a finished product with all the polish!

Now, as one last note. I’m not saying that you can never or should never use a BSP in your final game but the fewer the better. You’ll find that custom content will always be more flexible than BSP geometry.

Thanks!

Tim

thanks tim, that got us most of the way, so i guess the only argument left is that we are doing it incorrectly in using our own custom created texture maps thru quixel and painter and then using a 2048 texture maps for each of the sections (floor, ceiling, and all the walls on the same one), i cannot imagine this would be overboard or that using a tiling texture would gain us all that much, and honestly i would rather be splitting the walls up even further rather than oiverlapping them and use even more materials uvs on them ? but thanks greatly on the above, any more clarification highly appreciated, i have a 15 person paid team so these answers can save us a lot of money and frustration. also what about using decals a lot instead of customizing what we are doing now, seems they would be worse not better on perfromance rather than details built into the maps themselves. only other part is on vertex painting, good or bad way to get variance at less engine expense, sorry for all the questions but highly appreciate the help

There is nothing wrong with using Quixel. We have a good relationship with them and their software. Our Scifi Hallway demo was an example they provided for the community using their DDO and NDO plugin for photoshop!

You shouldn’t have an issue using 2048 textures, but I wouldn’t use 2048 for every object that is used. Some you can get away with much lower resolutions or by using texture atlas ([one material for multiple objects][1]).

Breaking the geometry up and importing as separate meshes will give you the most flexibility. You can have a single wall mesh untextured that could be used over and over and just apply a different material that suits its needs.

Material Instancing here can allow you to have the most variety with the best performance! This will result in only one draw call even though it is technically different materials. [Take a look at the vids here if you’re not familiar with this very powerful feature!][2]

With regards to decals here is a direct quote from our rendering programmer taken from the forums:

“Decals cost similarly to an
unshadowed Movable or Stationary
light, because they are both applied
in a deferred pass. Covering the
entire ground with them should have a
pretty heavy cost, especially as you
look at an angle where you are looking
through potentially hundreds of them.
GPU costs such as this can be seen
with ‘profilegpu’, so to a performance
test. Decals are under
PostProcessDeferredDecals.”

[Make sure to use the view modes when trying to trouble shoot profiling issues. Here is the documentation to make sense of what you’re seeing and how to make your game more optimized!][3]

Feel free to ask any questions! :slight_smile:

Tim
[1]: http://timpaauwe.wix.com/portfolio#!texture-atlas/zoom/c1i1j/i138x
[2]: http://www.youtube.com/watch?v=sx0BlzGkahw&list=PLZlv_N0_O1gaCL2XjKluO7N2Pmmw9pvhE&index=104
[3]: Viewport Modes in Unreal Engine | Unreal Engine 5.3 Documentation