Thanks a lot for the response!
Well, the camera doesn’t render anything outside of view, and I do have distance culling enabled, so at the moment, rendering isn’t a big issue. I was originally using a texture atlas for the terrain, and then modifying the UVs to keep the draw calls down, but I stopped doing that for two reasons:
-I didn’t like the idea of having each terrain square having to call a function on startup to set proper UVs (that would be a lot of calls)
-I couldn’t get the UVs to change in editor (using an editor script) without either the material becoming instanced or it giving me an error, which made crafting areas a pain, since each terrain square had the graphic of the squished down texture atlas.
Now, I have a material for each individual piece of terrain (ie, sand, dirt, grass, cliff wall, etc). It’s kind of annoying to make prefab for each type of square, but I’m only at about 200 draw calls, even with all the lighting and soft shadows enabled (and normal/spec calculations), and it allows me to see what the terrain looks like in editor.
I was thinking about having a system that built a single mesh object from all the individual pieces of terrain, but I have no idea how to go about that in a way that won’t be pretty CPU intensive. I googled it a lot, but every conversation I found about it was doing this for procedurally generated worlds, which is much different than what I’m doing.
Wouldn’t I have to loop through each terrain object in the scene? And if I’m using a streaming approach, it would be best to grab them as they get loaded in and create a mesh from them, but as far as I’m aware, there is no easy way to return the objects loaded this frame.
Yeah, my plan was to basically have all terrain/environment prebuilt, then have it generate random places for spawning monsters, placing resource nodes, etc.
All in all, I don’t really like the idea of having everything loaded up when the game starts, so I would like to come up with a system that streams in areas, but I don’t have the money to purchase any assets (Or else I would have also bought NGUI, some dialog system, etc). I’m just trying to find a balance between ease-to-make and easy to run.
Once again, thanks for the responses. It’s great to have people to discuss techniques with / bounce ideas off of.