Terrain, Texturing, and existing programs?

Started by
9 comments, last by Yann L 19 years, 4 months ago
I know terrain texturing has been brought up millions of times by now and there are alot of good reads on the forums, but One more question :). I currently have my game setup to handle worldcraft files. Only problem is they handle one texture per triangle. I just got to my texture stage and I am now stumped. I would like to be able to use numerous textures by setting each to a triangle. I want to do alot of blending and color by vertex. I also want to be able to do entity placement. Are there existing editors out there that allow for all this? Are there any that have documentation on the file format? And better, are there any that are open source or able to be leased? I would like to get around not building an editor as that would push me back a year or more. Thanks much.
--X
Advertisement
A suitable exporter from 3dsmax ought to do it.
3dsmax isn't exactly free, though :-)
There's also Maya, SoftImage, GameSpace, and other similar modeling tools with similar price tags and capabilities.
Maybe you can get somewhere with Blender3D, or Milkshape.
enum Bool { True, False, FileNotFound };
They allow you to put a 4 stage or what not texture settings on triangles? And allow for entity placement?
--X
Well since most graphic artists know 3DS MAX and have prolly used it once in their life, lets concentrate on that. I have read in the forums that .MAX files are not able to be read and .3DS only supports 2 textures per triangle. So If I wanted multi texture, with percentage of opacity and other features that 3ds max would have, what type of output does MAX have that would be useful to me for parsing that allows me to save all ther pernint information?
--X
I'm not sure that 3DSMax is the best tool for that job. Terrain generation and texturing is more a procedural or automation problem than one that could be solved by manually applying multiple layers.

That said, while not being optimal, it can still be done in Max. Max supports multiple texture types (diffuse, specular, opacity, etc), as well as texture channels (texture coordinate sets) that can be assigned to one or more of the texture layers. It might however be difficult to achieve exactly what you need with the built in functionality, because, well, Max wasn't designed for such a task.

However, Max (and pretty much all larger 3D packages, such as Maya) is highly customizable by using plugins. The best option in your case is to write two separate plugins: a material plugin, and an exporter plugin. The material plugin implements a new type of surface material, that can be assigned to a mesh. This material would implement all the functionality you need for your terrain surfaces: multiple texture layers, multiple vertex colours, perhaps even some procedural approaches. From within Max, this new material type can be assigned just as easily as any other material.

The exporter plugin will then export all this specific information added by your material plugin. As a side effect, your exporter will also be able to export the general geometry, this is pretty easy to do. This gives you the freedom of choosing the exported file format, and adding all data that might be needed by your engine, including your own custom vertex, face and material data.

Basically, by adding plugins you can customize an existing 3D package into your own personal level editor. And this requires much less work than writing your own editor from scratch.

Of course, Max isn't cheap, and neither is Maya. I'm not entirely sure if Blender supports plugins, but I would guess so. Someone else might be able to give more information.
I see, I havent used 3ds in many many years, not since the old 3DS where it was its own graphics, outside of windows. BUT I do want to push this game no matter the cost. With 3DS MAX, How hard is it to write plugins/exporters with their SDK? And are there tutorials on this? I didnt really want to get as involved as this but then again it is less involved as writing an entire editor.

When you say it wasnt designed for landscapes, what exactly do you mean? What type of material/textureing is involvedwith landscapes that are not in any other FPS or third person game with bsp / pvs? I would like my terrain engine to allow for editors to be almost EXACT with brushing or painting the landscape, down to the triangle. On the other hand I want to be able to render quickly, So keeping the amount of passes to a minimum, hence using multiple textures and opaqs...

So knowing this, would you still recommend writing a plugin / exporter, and if so why? Thanks very much for your time and help, Im new to this :).

Brad
--X
Quote:Original post by xsirxx
I see, I havent used 3ds in many many years, not since the old 3DS where it was its own graphics, outside of windows. BUT I do want to push this game no matter the cost. With 3DS MAX, How hard is it to write plugins/exporters with their SDK?

Not very hard. Their SDK is well structured, and comes with many examples. It's pretty easy to pick up. Sometimes their class hierarchies are not really logical, but that's the usual historical mess of backwards completeness. All in all, you get into it pretty quick. Note that the exporter is going to be much easier to write than the material, so you might want to start with that. Maybe the builtin Max functionality will even be enough for your requirements.

Quote:Original post by xsirxx
And are there tutorials on this?

A ton. And lots of code templates, samples, etc.

Quote:Original post by xsirxx
When you say it wasnt designed for landscapes, what exactly do you mean? What type of material/textureing is involvedwith landscapes that are not in any other FPS or third person game with bsp / pvs?

Well, that would depend on how you intend to texture and represent your landscape. You said you read a lot about landscape rendering. What kinf of system are you planning to use ?

Quote:Original post by xsirxx
I would like my terrain engine to allow for editors to be almost EXACT with brushing or painting the landscape, down to the triangle.

Max can do that, if that is what you want. That's a more artistic approach to landscape texturing. I was thinking more about a physically or fractally based one. But that's a matter of preference.

Quote:Original post by xsirxx
On the other hand I want to be able to render quickly, So keeping the amount of passes to a minimum, hence using multiple textures and opaqs...

You'll need to post process the 3DSMax exported data anyway, you won't be able to use it 1 to 1. Max uses a very special internal organization of data, that is incompatible with current 3D hardware. And in that post process, you'll have plenty of possibilities optimizing the heck out of the data, to make it as much hardware friendly as possible.

Quote:Original post by xsirxx
So knowing this, would you still recommend writing a plugin / exporter, and if so why?

If you want to use Max, then I definitely would recommend writing a set of small plugins. Why ? Because there will be no way around, since Max won't provide all functionality you need out of the box. And because it's going to be much less painful than writing an editor from scratch. Note that if you're using a well known terrain texturing algorithm, you will probably be able to find third party plugins that do all the work for you.

On the other hand, you need to assess how much freedom you actually need in your landscape design. Less freedom means more automation, and that can mean more realism if done well, but certainly more productivity (ie. faster landscape creation). You can generate an entire landscape of incredible realism with only a few text lines in an ASCII config file, and using a command line generator. Those are two different approaches - you choose.
Yea I found some very nice programs that do the exporting already, FlexPorter, and FreeXporter that allow you to customize the output to only what you need, which is nice. This includes the texture information(multiple.) Diffuse, Spec, everything. Entity output. Also allows for lh, or rh.

For the actualy editing of the data, I wanted to allow for my graphic artists(future) to be able to edit down to the upmost detail. The vertex and allow for them to edit the textures one by one if so be it. YET, I would like them to be able to automate what they dont need to be exact on. This doesnt include for bitmap hieght data. I want the player in the future to be able to say fly under a rock formation, thats part of the landscape and not an entity.

I have a quadtree setup right now which is finally working great, so I am going to allow for a HUGE map where the terrain may change over distance(texture wise as well.) The Textures will have to be a little more simple with alot of fading through multiple stages and colors per vertex I imagine. This all has to be information saved. I dont care how its saved because I can parse the output into what I need.

I had looked through tools for 3DS Max and noticed there were alot of these tools that incorporated these features already and were freeware. They allowed for ALOT of different ways to create terrain, from easy(automated) to diffcult(per vertex.) Thats innitially why I chose to use 3dsmax after reading the first post. I have not researched texture painting or material usage within 3ds max yet, I imagin it is pretty good, although maybe with what I need its not possible without creating my own plugin? And hence why an exporter would have to be created as well. BUT this should be limited down to a simple material plugin to hand a new type? After researching and reading that sounds like its much less time and that this answer is prolly the best yet?

Are there any places that I came up wrong with this, are their better ideas, or even if it is possible?

EDIT: I also through my own convertor allow for the artist to choose to use noise or not on textures, and which textures(although Im sure I could find a plugin for that.)


Thanks
--X
Quote:Original post by xsirxx
Are there any places that I came up wrong with this, are their better ideas, or even if it is possible?

Sounds about right. If you have access to a set of freeware plugins, then you should leverage that advantage. Less work for you and an increase of productivity. You can always customize or create your own plugins later on, should you require additional features.
This sounds almost too good to be true :). Also I noticed GMax, its offered by discreet and says it is based for games? and its free? Sounds too good to be true as well... Does this have an sdk as well? I could just start here.

THANK YOU very much for talking me through this, I finally have a path to choose after searching from nowhere.

--Brad
--X

This topic is closed to new replies.

Advertisement