Home Unreal Engine

Building interiors - BSP? Static meshes?

Hello!

I've recently started a UDK project - a game in which the action takes place inside a huge facility. The thing is, the scenery is mostly going to be walls, corridors and rooms.

Now I've researched on the topic quite a bit and, while there's a consensus that BSP is generally not very good for performance, no one quite knows when to use it. So what's the right way to use it?

One of the example maps that come with UDK uses BSP for floors and static meshes for everything else (walls, ceilings). I plan to do the same. The question is - am I right in doing so?

I predict my walls will mostly be flat, so will my ceilings and floors. Seems a bit weird to make them into static meshes, doesn't it? And if I really should make them into static meshes, is it better to make them open or closed meshes?

Also, how small/modular should the pieces be? I was planning on making 256x256x256 pieces but, planning to have rooms as big as 4096x4096, doesn't it seem a bit overkill to have 16x16 = 256 separate ceiling pieces for a single room (+ even more walls)?

I tried researching this topic to no avail. Maybe you guys could help me with those questions?

Replies

  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    Use BSP for primary occluders - BSP subdivides 3D space to make shapes (hence Binary Space Partitioning) so its primary use today is to break the environment down into manageable chunks. For instance you might use it for the walls of a building you can't see out of - the engine will see that you can't see the BSP sectors outside of the room and totally ignore actors elsewhere for drawing. However BSP isn't terribly pretty and excessively subdividing space into tiny chunks increases the amount of chunks to consider without invoking its primary advantage for cutting out workload early.

    Regarding modular dimensions, 256 ceiling actors might sound a lot but under UE3 they'll be instanced nicely (all in the same place and the same mesh/materials/textures) and the performance hit will likely be minimal.

    You only really have to consider things like that in open spaces - we didn't on a recent project and spent a LOT of time rebuilding things to use less Actors due to draw call framerate death.
  • Dandi8
    Options
    Offline / Send Message
    So which approach would you say is better? Building my level with BSP (walls, floors, ceiling) and adding static meshes as decorative props or making walls and ceilings into modular meshes?
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Dandi8 wrote: »
    So which approach would you say is better? Building my level with BSP (walls, floors, ceiling) and adding static meshes as decorative props or making walls and ceilings into modular meshes?

    This depends on what your walls, floors, and ceilings look like. With static mesh it's hard to hide seams unless the style of architecture supports it in some way. This is why the example map uses bsp for the floor.
  • Dandi8
    Options
    Offline / Send Message
    So if I'm planning long walls with not much clutter/pillars to hide the seams then BSP is the way to go?

    What are the disadvantages to doing a level like that in BSP? Is the performance drop that significant when only using it for walls and such? Sorry for asking such basic questions but the UDK docs don't explain this very well IMO.

    Also, do you know some good articles (besides the UDK one) about modular design in practice? Would appreciate if you did :)
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Dandi8 wrote: »
    So if I'm planning long walls with not much clutter/pillars to hide the seams then BSP is the way to go?

    What are the disadvantages to doing a level like that in BSP? Is the performance drop that significant when only using it for walls and such? Sorry for asking such basic questions but the UDK docs don't explain this very well IMO.

    Also, do you know some good articles (besides the UDK one) about modular design in practice? Would appreciate if you did :)


    BSP is a performance hit in that it is basically really wasteful geometry. It is essentially equivalent to a single static mesh for each face of the BSP. You could use it in the way you describe as long as you kept this in mind.

    the best thing to do is to look at examples levels made by other people to get an idea of how levels are usually constructed. There's a few included with UDK and there's even more availiable on the internet if you have a look.
  • Dandi8
    Options
    Offline / Send Message
    Wow, that sounds really wasteful then. I shall have to do a great deal more research.

    But where to start? I haven't come across a website with professional ready-made UDK levels yet. Where do I look?

    Thanks for explaining all this stuff to me :)
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Dandi8 wrote: »
    Wow, that sounds really wasteful then. I shall have to do a great deal more research.

    But where to start? I haven't come across a website with professional ready-made UDK levels yet. Where do I look?

    Thanks for explaining all this stuff to me :)

    Look on polycount

    Or on the unreal tournament 3 disc?
  • Dandi8
    Options
    Offline / Send Message
    I was kinda hoping for actual files and all polycount offers is pictures (damn good pictures, no doubt, but still). UT3, on the other hand, uses an entirely different map layout which doesn't translate well into what I'm doing which infuriates me to no end (especially with their seeming lack of consistency in using BSP vs static meshes).

    I guess it's back for me to lurking in this forum looking through stuff people made :)
  • sprunghunt
Sign In or Register to comment.