What if Unity had a mesh based occlusion system?

So you build your level in a 3d package and import it into Unity but when you play test it well it sucks with low FPS .

Solution Occlusion Culling.

So you go back to your 3d level and start cutting it up into smaller and smaller chunks to allow Unity’s object based Occlusion Culling system to trim down the workload for your game.

The thing is every object requires a draw call and more draw calls reduce performance.

At least that’s my basic grasp of one aspect of performance optimisation with Unity.

What if Unity had a mesh based Occlusion System with automatic but configurable mesh LOD reduction?

Optimizations are about trade offs, and something for the developer to decide as it would depend heavily on how the assets were designed. Draw calls are not necessarily a pain point for performance, sure less is better, but ultimately the performance is based on everything that is going on. It’s all about render time, not draw calls.

“Automatic Mesh Culling” (not really a thing) wouldn’t be free, it would have a cost associated with it. Automatic doesn’t equal free. There is no reason to think it would reduce draw calls, and may increase them. Even if it did somehow reduce them, the overhead could outweigh the improvement to draw calls. It might help in the case where the developer has put absolutely no thought into optimization at all. But planning and logically building large layouts/maps/whatever is always going be optimal for performance. Atlasing textures, sharing textures, modular elements, etc, are the way to go.

3 Likes

So how would a professional go about build up a large building from a basic floor plan like this one (below), so that it would be optimal and look good?

And are there any quick ways to do modular building from a 3D package into Unity?

At the moment it looks to me that at least from Blender I would have to draft out the basic outline/floorplan. Then build up a set of modular components to then build the building in Unity?

Or is there a way to setup a building made from modular components in blender and have those modular components import into Unity without repeating the meshes?

PS Could Unity have better in editor tools e.g. Object Array, Mirror, Snap To Grid…

Fingers crossed for Unity 2017?

Vertex painter, object painter, spline tool , shader editor (those are the minimum toolset for PC projects i work on).

“Quick” is relative, and usually counter-productive.

Well, yes, you need plan things out if you are doing modular. But you can do it however works best for your needs. You can set it up in blender or unity. I usually do unity if it is not procedural. I’m not sure I understand what you mean by repeating meshes? Repeating meshes is a good thing if you are building modular.

You can duplicate repeating meshes in blender (Alt D) this allows you to build in a modular fashion.

Then when you import into Unity the repeated meshes/instances are replaced with independent unique meshes, defeating the purpose of your modelling build and causing you more work.

I’ve got my fingers crossed for a UI/UX upgrade with Unity 2017.

How would you expect unity to know, when you duplicate in blender you are also creating copies. You need to create instances of the meshes.

Not sure about blender since I don’t use it, but in Maya you can easily duplicate as a instance.

Problem is that is still a shitty and slow workflow, since say you need to move something for game play purposes now you have to go back into Maya or your 3d package to do so.

Nope. Duplicated meshes aren’t unique. You must be doing something wrong.
2995673--223170--Screen Shot 2017-03-16 at 12.01.47 PM.png 2995673--223169--Screen Shot 2017-03-16 at 12.06.47 PM.jpg

You can clone or instance. Alt+D makes an instance, Shift+D creates a new mesh that is a copy. That data will carry over into Unity.

Agreed. Though it can be effective in a large team where you have a well built pipeline. But for small or single developers, it seems (to me anyway) bulky. I prefer to just do the construction in Unity, generally procedurally if possible.

Not working for me, I’m just importing direct from Blender (2.78c) file to Unity, you?

Tried FBX export and instancing worked?!

Cheers!

No matter what package you use never import directly from its scene file. This gives you way less control over how things are exported and it makes collobration nearly impossible. Export out proper fbx files for Unity

2 Likes

This is news to me! Thanks for the info!

1 Like

Almost never. I do a real export.

^This.

Using a blender (or whatever source file), is sorta fun for messing around, but not some to use for real.

I always like seeing pictures of your editor. The yellow eye buttons hide/show things in editor without affecting runtime?

Those are from QHierarchy : https://www.assetstore.unity3d.com/en/#!/content/28577
The yellow ones are basically a short cut for activating/deactivating the game object. But if you hold the option key (I think), it will turn blue, which hides its, but it reactivates when you play.
It is one of my favorite editor tools, I use it all the time. Well worth the $20.

I’m starting to think you need to create a post that lists all the assets you use on a regular basis. So far I haven’t seen you mention one that I wouldn’t find useful to have yet never see it mentioned anywhere else. :stuck_out_tongue:

Honestly, other than my own tools, it is pretty much just QHierarchy and DOTween. Those go into every project I start.

Yes. I am developing VR and UI for a realtime interactive collaborative tool that builds scenes from Revit files for the fellow that created the original Revit software. The parsing to get the Unity mesh from the Revit data has been completed along with alot of other stuff but much of it was Unity 4 so i was brought in to overhaul it and bring it into line with Unity 2017 features, UI, shaders, lightmapping etc.