- Home /
Workflow Questions: City Visualization
Hi guys,
I am about to start working on a university project which involves visualizing a medieval city in Unity.
The entire city will be created in 3ds Max in one huge .max file by an external company which will first render an architectural film of this city via standard offline rendering (mental ray or Vray).
After that, me and my fellow students are going to import all this data into Unity to make a real time visualization of this medieval city. The poly count is fortunately suitable for real time.
So here are my workflow questions:
1.) The standard houses -amongst other models- in this medieval town are all duplicates/ instances in the 3ds Max city scene file. Is it wise to import this scene file as one huge FBX file into Unity irregardless of the fact that it contains so many exact duplicates? Or should I import every model that has been duplicated several times in the 3ds Max scene as seperate file, create a prefab out of it and then manually place prefab clones in Unity (so in essence placing most assets of the city from scratch) ?
Any ideas how to make the latter approach a little less time consuming if it should indeed be the way to go?
2.) The architectural film will use mental ray's Arch & Design material or Vray materials which can't be exported via FBX. Do you know which 3ds Max materials can be exported via FBX? Only the "Standard" material or are there others, too?
3.) I don't like the idea of starting out with the standard "Diffuse" material in Unity for every imported material which at most has a diffuse texture applied. I would rather find a way to read out the material settings from the FBX file, automatically create and apply an approriate shader with corresponding values and textures that most closely resemble the original 3ds Max shader.
Do you know a way to do this upon import of the FBX files? (I'm pretty new to scripting!) Do I need to make an Editor script or how would I (very roughly) go about doing this, i.e. where to place the script and which classes and functions do I have to use etc.? A few keywords are enough as a help for the moment!
Any other tips & tricks and important things to consider when embarking on a project like this?
Thank you all so much for your support!! Highly appreciated!
Sean
I'm no 3D artist, but from what little I have done with blender, I can partially answer your 1st question. If it's a separate mesh in blender, it should import as a separate mesh within the model in Unity. You end up with the same hierarchy within the model in your Unity scene as you had in blender. I assume this works the same way for 3ds $$anonymous$$ax as well.
So I shouldn't import the city scene as one big file that contains EVERYTHING? I should rather export every model type that has multiple duplicates in the 3ds $$anonymous$$ax city scene into a seperate FBX file, delete any occurance of these models and their duplicates from the city scene and then position these models later in unity manually from scratch?
Import the whole model, which contains everything but as separate meshes. If it's one huge mesh, you'll run into potential performance issues because you can't use occlusion culling (i.e. must render it all every frame; expensive).
If they're different meshes in 3ds, they'll be different meshes in Unity. The fact that you're talking about importing them separately leads me to believe they are already different meshes. That is fine; leave it like that and import the whole scene from 3ds.
What you should do in Unity is have all the different instances of the same model share the same material. Better yet, create a texture atlas and have even more stuff share the same material. Unity will then batch them for you for a performance bonus. Read more about batching here. $$anonymous$$anually placing lots of houses sounds boring to me, I wouldn't do that.
If you're using a lot of duplicate objects, you should import it into Unity once then clone/duplicate it. Sorry for the extra work, but it will help your build size and load times.
Thanks guys for your advice even though it diverges. :-)
Can anybody help me with questions 2) and 3)?
Answer by rowdyp · Jul 25, 2013 at 07:28 PM
a better way is if you have items that are the same model, but have different textures, instantiate them directly in Unity with prefabs.
So if I have one model, but two different textured versions of it, I create two prefabs? One for model + Texture A and the other for model + Texture B? Or were you suggesting that one prefab is enough and there is a way to assign different textures/materials to the prefab?
you can change the texture through script or do two different prefabs, either way is acceptable
Your answer
Follow this Question
Related Questions
Exporting fbx from 3ds max and loading into unity with materials 1 Answer
3ds Max What Export/Import Settings for .fbx? 1 Answer
Imported textures from FBX not showing in Unity 2017 3 Answers
Level Design workflow - Blender to Unity issues. 0 Answers
How to avoid Unity overwrite updated textures in .fbm-folders? 0 Answers