Jump to content
  • Advertisement
Sign in to follow this  
Coro

UDK - Performance question

This topic is 2171 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

[font=tahoma,geneva,sans-serif]Hey everyone[/font]

[font=tahoma,geneva,sans-serif]I've been coming to this site for years but have only just decided to sign up. Hopefully I can help out the community and vice versa.[/font]
[font=tahoma,geneva,sans-serif]My question is about getting the best performance out of the UDK Package for my levels. I have gone through many different tutorials for the modelling suite "Maya" (2011), and I am currently in the progress of modelling a house that I would like to import into UDK later. I was thinking back to other projects I have seen in which houses had been developed via using the BSP geometry and just attaching textures to them. I was wondering would it be better for me to model my houses via Maya and then import them or to attempt to create them with BSP's instead. [/font]Is there going to be any deterioration in frame rate from using one or the over?

[font=tahoma,geneva,sans-serif]Thank you to anyone, and hopefully I don't sound stupid.[/font]

[font=tahoma,geneva,sans-serif]Coro[/font]

Share this post


Link to post
Share on other sites
Advertisement
Hi there!

So the BSP's in UDK actually help to alleviate processing load while in the game.

When I was learning how to use UDK, I made the first level of DOOM in 3DsMax and imported it as just a massive model and tried to set it up properly in the engine. It was a real pain. Once I got it good to test without even built lighting, it really lagged out.
When I replaced nearly all the walls and floors with BSP's, it screamed and worked perfectly, even with dynamic lighting and depth of field built in the level. I lost a bit of detail, but it still had the effect I was looking for and helped make it do-able.

So in my opinion, if you want to have high detail that needs lotsa geometry, then use a model. Otherwise, use BSP's to help make things quicker. That's what they're there for. biggrin.png

Hope that helps!

Share this post


Link to post
Share on other sites
Thank you!

Sorry I never replied, I never got an notification. This is really good information.

Share this post


Link to post
Share on other sites
Yeah. The BSP tree (data tree structure) is crucial in many games. I have even seen whole villages in one BSP as essential one placeable object which can greatly increase performance in the game. On rare occasion I come across a simple FPS which has planar elliminated, all the stationary hard edge models as one and sharing a single 2048x2048 or similar texture image. In general the fewer the separate models, textures, and materials the better for performance in game. Watch for hot spots of overloading where there are too many things resulting in frames per second and smoothness of frames problems.

Clinton

Share this post


Link to post
Share on other sites
You also need to keep in mind how the Unreal 3 engine handles culling with models. If even a single vertex of a model is visible to the viewport, then the entire model is drawn. This is more than likely why loading up a single model for an entire level was killing the performance for UDK; the entire level was drawn at all times regardless of what was actually truly visible.

I believe this goes for 'grouped models' as well (collections of smaller models). You would need to balance grouping models together and having individual models for situations such as having a bunch of crates throughout a room. Grouping these together means you only have to check once to see if any of the models are visible. However, group too many too far apart, and a single outlying box that might be visible from where you're currently at will cause all the rest of the boxes that are hidden to be drawn anyways even though nothing is shown for the work.

BSPs can be a handy tool for indoor scenes but they really begin to struggle with handling large outdoor areas. I can't remember off the top of my head what the deal was but I believe there's also some inconsistencies with lighting methods between BSP geometry and model geometry (vertex lighting vs. lightmapping and dynamic lighting). Something to keep in mind and look deeper into.

If you build your models properly snapped to a grid following UDK's units, you will be able to snap them together in the UDK editor with ease. As long as you have your models flush with each other and prevent gaps between meshes your models will prevent anything behind them from drawing (as long as all vertices of the hidden models are not visible).

Share this post


Link to post
Share on other sites
BSP are only used to flash out a level! In a profesional level you hardly see any BSP since they are all covered with static meshes. But they are nice to flesh out the design and get your basic idea down.

You have a view options, depending on what you exactly want with the house. If it is just scenery i advice you import it as a whole and place it. But if it is very detailed and you might want to re-use parts you should cut it up and put it together in UDK. Depending on the size of the house you can use BSP to flesh things out.

Performance wise UDK can handle tons of triangles, but only if you use the optimization tools. Put up lightmass importance volumes and visibility volumes. The former makes sure the engine calculates the lightning at the important places and the latter will completely hide BSP's and meshes when they are not visible to the player anyway and dynamically loads it back in.

For more detail you should watch some video's of 3D buzz on UDK they have 40+ hours i believe. Also try load a unreal map and turn off static meshes and you see what i mean about using BSP's.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!