KatsBits Community

Question on making terrain from tiling models

0 Members and 1 Guest are viewing this topic.

Offline Wolfsong

  • Newbie
    • Posts: 10
I'm working on a "system" to create tileable 3D map objects.

Of course, this comes with two challenges...
1. Getting the textures to align seamlessly across tile pieces
2. Getting the tile pieces themselves to line up.

Both of those are doable and I already have that part figured out; mostly just the tedium of making sure vertices on shared edges will be aligned, etc. And the texturing is just making sure the textures are tileable themselves, and then are mapped to make sure their edges line up at the edges of the objects (if that made sense).

Here's the bit that I'm a bit stuck on.

Getting good results that I can then export as a "baked" texture map (including AO, etc baked into it).

I know that if I use the GLSL texture blending approach you can find tutorials for online, it will only look good in Blender, but won't look as good in external programs. I believe you have an article explaining that on this site, kat.

So my conundrum is... What is the best approach to use to get a nicely multi-textured set of tiles that will export with all texture and UV info intact. I mean, I can use Blender as a prototyping app.. no problem there. But what about getting those objects into another engine?

I've done a bit of searching on google, youtube, vimeo, etc... and every example I find is using glsl via the material editor or via the node editor. Again, I  can't rely on the results GLSL gets because that won't apply outside of Blender.
...

Just to illustrate the effect I'm going for, if you're familiar with Final Fantasy XI, their area maps are all built out of tiles. Unlike the trainwreck that is FFXIV however ("copy pasta'd terrain", etc), they actually did a great job with it in XI.

Here's a couple good shots to show you how a couple zones look from above. If you look closely, you can see some of the repetition. SE did a great job with the tiling in this game; everything is homogeneous enough that very, very little "jumps out" at you as being repeated... and even then, you have to be looking for it.

First is of a zone called Buburimu Peninsula (this is a map used by a guild for a raid-like event in game, hence all the lines, etc)


And another from part of Attohwa Chasm. You can really see how tiling was used in this shot.


What's interesting is that, at ground level, you really can't tell you're in a tiled environment, everything is so well put together.

Again... I really don't know what the hell they were thinking with FFXIV or how anyone at SE let that go as-is.

[EDIT] edited the topic title to fit the question better, makes it easier for searching. Cheers. >kat<


Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2694
    • KatsBits
Hmm two questions.. How big are your terrain sections? And.. what game tech are you going to use this in?


Offline Wolfsong

  • Newbie
    • Posts: 10
The first question I'm still working out.

It's kind of "trial and error" at this point to get the process down. You could call it "research and development". Establish the techniques/methods first. Then, once I get the method down, I'll have a stronger foundation to decide final sizes and such around and can adapt them to whatever the final parameters end up being. For now it's a matter of getting the process down and getting good, consistent results with it. To start with, I'm gonna use 8x8 meter tiles and go from there.

As far as engines are concerned, certainly Blender for prototyping. For the final engine choice, though... I rather like NeoAxis. Esenthel is a nice engine. Ideally, though, I'd like to have an engine that's cross-platform. Some engines have pretty good built-in tech for what I'm looking to do. That final decision will ultimately (ideally) involve input and feedback from a programmer, however. They need to be able to work with the code and know that it can do what it's needed to without too much re-working. As long as I have a capable editing/world building environment, I can do my part.




Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2694
    • KatsBits
The 'cheapest' thing you could do is tile a reasonably limited selection of textures and rely on a greater number of tiling models to build in the illusion of uniqueness. This can be further 'disguised' using similar techniques to what you probably observed in the games you mentioned - placing extra map models, rocks, boulders etc. But, it all depends on the engines capabilities.

If you have vertex painting available to you in-editor, that would be another good and cheap way to make the models look unique, it would save you having to bake individual AO maps for each model (which equates to a lot of extra texture data) because you could just approximate the shading using vertex coloring (make sure to not paint the models in Blender else you might break in pre-painting if you go this route [unless you can use/export multiple vertex channels from Blender to your game]).

Texture density isn't too much of an issue *if* you have detail stages available in your material shaders; typically if your terrain texture set were 2048 images, you could use a 512 grey scale 'noise' texture and tile that 'underneath' to improve the appearance of the terrain. Try it the other way around as well and see what gives the best results.

Additionally your tiling models physical size won't be too much of an issue, but your poly-count will so keep and eye on that, make sure you 'weight' the distribution so the density is higher where-ever the player can go. Make sure also that you build to the grid in Blender and use 'proper' game sizes - 512, 1024, 2048 and so on - they work better in games, so avoid using 'real world' measurements (models should conform to the same "power of two rule" as texture assets so both match up properly/correctly).

As you can see there are a number of approaches you can take to this but it'll all depend on what your engine actually supports, format included (*.ase, *.obj, *.dxf, *.dae being the most reliable), and what you're actually trying to do with the game.


Offline Wolfsong

  • Newbie
    • Posts: 10
The 'cheapest' thing you could do is tile a reasonably limited selection of textures and rely on a greater number of tiling models to build in the illusion of uniqueness. This can be further 'disguised' using similar techniques to what you probably observed in the games you mentioned - placing extra map models, rocks, boulders etc. But, it all depends on the engines capabilities.

... clipped for brevity...

All very good points/tips.

I'll see what I can crop up here in Blender and then perhaps post some screenshots as I start making progress and there's something worth posting :-p.