Game Development Community

what is Constructor? import DTS, add portals, export as DIF?

by Peter Mowry · in Constructor · 06/13/2009 (2:33 am) · 15 replies

The general impression I get is that this is used for static interiors, especially for buildings with interiors that have portal entrances?

For example, you might:
1) make building with 3d modeling program (such as 3ds max, blender, etc), convert to DTS
2) import DTS into Constructor
3) add portals to the doorways and windows; this is for optimization, such as culling system (???)
4) export as DIF
5) in Torque 3D, we use the DIF by putting it in our interiors folder, then we can add it to the scene as a static object (everything in Constructor is a static object, no animations)

Is this correct? Is this the purpose of Constructor?

What are the portals for? It sounds like they have something to do with lighting? Are they also for culling, or anything else? Or just lighting?

I think I heard that Torque 3D beta 3 is going to add a portal culling system? Is this what it's going to use?

#1
06/13/2009 (8:56 am)
Constructor is to create buildings, just like you think. However - it's purpose is to create buildings from convex primitives, not from DTS's. You can import a DTS for something that needs more detail than convex primitives, though. Constructor is good for making the walls, floors, etc.
The portals are used for culling purposes. Think of it this way - You create a bunch of rooms. The portals would be placed where the doors are. In reality, with the portals, you're creating enclosed areas, even though it doesn't look like it, because the portals are invisible. This lets the engine create separate "zones" for each room. The zones then are not rendered unless the portal that connects to them is visible.

T3D is going to add a new culling system, it won't be related to the one built in DIF's.
#2
06/13/2009 (10:19 am)
What Jaimi said.

Think of the "import dts shape" feature as a means of populating your scene with props. For example, build your house in Constructor with roof, walls, and floors, cut out and portal doorways & windows, and then import some .dts furniture to add detail. Keep in mind that Constructor will not convert a .dts to .dif, only allow it's inclusion.

When you've placed your .dif and textures in the "interiors" directory you'll find it in the Torque 3D Level Editor through the Library -> Meshes -> Art -> Interiors tab/panel.

The new culling system will certainly be of interest, as well as the newly added ability to export well I better not say... something to something :D
#3
06/13/2009 (9:59 pm)
I see, but... Is it required, or somehow beneficial to make a building inside Constructor?

Seems like it would be more normal to make your models, including buildings with interiors, inside a 3d modeling program like (3ds max, maya, lightwave, or blender)? Then export the building to dts (or collada). Then import it into torque Constructor, and just use torque Constructor to add portals to it? Is there something wrong with this process? I think it sounds more powerful and flexible for the artist?

thank you for help/info
#4
06/13/2009 (10:02 pm)
The way Michael Hall described it... Do my walls have to made in Constructor, rather than imported as dts, to work with the portal culling system?
#5
06/13/2009 (10:06 pm)
> This lets the engine create separate "zones" for each room. The zones then are not rendered unless the portal that connects to them is visible.

Yes this is what I was hoping it meant. Ie, a portal culling system (which I think is a normal/standard engine thing). I guess it's for (indoor environments) and (transitioning between outdoor vs. indoor).

But is it also for (separating terrain zones)? Or should you use something different for that?

Also, I think there is a difference for the system between (loading the geometry into memory) vs. (culling geometry that is already loaded into memory, ie it's in memory but you don't pass it to the GPU)? Any system for the loading part?
#6
06/13/2009 (10:08 pm)
> The new culling system

Yes I am very curious about this... And what is the difference? Is the new culling system something we will use instead of the old one? Or is it in addition to the old one? Is there any info out there yet about what is the new culling system for?
#7
06/14/2009 (12:28 am)
I like Constructor, and continue to use it, but I don't know too many "artists" who care for it. It's especially difficult to grasp for one who comes from a "normal" mesh based 3d modelling background. Brush based modelling is a whole other animal.

A "zone" is created by enlosing an area with brushes (ie. 4 walls, a top and a bottom). Outside of said zone the inside (and anything within the zone) will not render. Inside of that zone the outside will not render. Cutting holes for windows and/or doors "breaks" the zone culling scheme -- which is what the portals are used for. The portals have to penetrate into surrounding brushes in order to "seal up" the zone.

Quote:
Do my walls have to made in Constructor, rather than imported as dts, to work with the portal culling system?
Yes. Zones are only created with brushes in CSG/BSP style geometry only.

Quote:
Is it required, or somehow beneficial to make a building inside Constructor?
Required, no. The Interior format was developed years ago for optimized culling and collision with simple primitives. This was developed because of the limits of the hardware at the time. Now over a decade later, CSG -> BSP is begginning to show it's age, clunkiness, and may actually cause a performance decrease rather than a increase. Only testing will tell you which -- each case, depending on complexity of your interiors and/or objects, is different. The trend nowadays is to use more and more mesh based models and routines such as opcode (polysoup) for collision.

Steve YorksireRifles Acaster has chronicled his testing of polysouped dts vs. the interior format. The results were at first surprising but they are not inclusive of all situations.

The "new" culling system is yet to be revealed, beta 3 should see it (but don't quote me on it). From what I gather it's an in-editor placed object alternative to the zone/portal based culling used in the interior format. The new system would allow you to "hand create" these zones so that large models (dts) can make use of culling, of which they currently don't. It has no relation to the current culling method of the Interiors.

Quote:
Also, I think there is a difference for the system between (loading the geometry into memory) vs. (culling geometry that is already loaded into memory, ie it's in memory but you don't pass it to the GPU)? Any system for the loading part?
No. Everything in a level is loaded in one lump. But such a system is something that would be nice to have.
#8
06/14/2009 (3:15 am)
> From what I gather it's an in-editor placed object alternative to the zone/portal based culling used in the interior format. The new system would allow you to "hand create" these zones so that large models (dts) can make use of culling, of which they currently don't. It has no relation to the current culling method of the Interiors.

It sounds like if I'm starting a new game with Torque 3D (www.garagegames.com/community/blogs/view/17385)... Then rather than use Constructor, I should just wait for Torque 3D's new zone/portal culling system? Then I can continue to work with dts models, and specify the portals inside the Torque 3D editor?

[Edit: in other words... Constructor is deprecated?]
#9
06/14/2009 (7:42 am)
Halflife and Unreal are two "AAA" engines that still use equivalent technology. The new thing for Torque is the "improved art pipeline" because artists have hated it in the past due to unfamiliarity with the format(s) used.

Using Constructor won't hurt, at the least you'll want to do a performance test of .dif vs .dts structures of your own, because in some instances a .dif will still work better than a .dts will. So you you will need to make that determination on your own. For my own tests (limited) I've done so far, I personally will probably continue to use about 10-20% .dif interiors in my project.

It has been said that the Interior format will be going away in a future version of Torque, so it hasn't been deprecated yet. If you've already started using Constructor and have created some Interiors but do decide that using .dts with the new culling system is of more benefit to you, don't feel like that was wasted time, because you will be able to re-use all of that data.... it's just not for me to say how that will be possible yet ;)
#10
06/23/2009 (6:39 pm)
I prefer Constructor to any dts modelling program to be honest, ok it has its issues but I still prefer it although I am now forced to use blender as constructor cant animate or export .dts models, i think if garagegames want to revive constructor and make it one hot program those issues should be looked into,

Portalling also helps keep your weather variables outside a building by the way, and i do think .dts buildings are now the way to go as they can be destroyed repaired or extended in game if its built in .dts and has the before mentioned animtation, models and code.

I`m not trying to be a clever c... I`m just trying to help =]

#11
06/23/2009 (8:06 pm)
Constructor wasn't designed to be able to animate or create dts models. It's not an "issue," Constructor just isn't a dts modeling program...
#12
06/25/2009 (12:01 pm)
I have a vague idea about CSG/BSP. Just that conceptually it uses primitives other than triangles, and can do intersections for negate vs. combine. However, I would guess it still uses triangles for GPU rendering (ie, is not software rendering). And just uses the shape data to do software (CPU) ray-casting type stuff (to see if an object is inside vs. outside).

However, I'm not exactly clear on if I should ever tell an artist (who wants to contribute 3d models) to use Constructor instead of 3ds max (maya, lightwave, etc). Especially since Torque 3D beta 3 exposes the portals to the editor.

This is why I was trying to find some more basic info about how exactly (in code) Constructor/dif is used by Torque 3D. And asking if Constructor is deprecated.

Thank you for the info and comments :-)
#13
06/25/2009 (12:34 pm)
I was always under the impression that you couldn't (or rather shouldn't) use DTS for interiors(buildings) because
(1.) DTS aren't always convex
(2.) DTS don't have inherent collision.

DIF interiors are always convex and have "built-in" collision.


Does importing a DTS into Constructor (then exporting as a DIF) create collision meshes?

#14
06/26/2009 (1:31 am)
1) is it required to use constructor for building with interiors (ie, for the building's walls that divide portal sections)

2) is it required (or better) to do it from-scratch inside constructor, as opposed to do it in 3ds max then import it... Or do the real walls in 3ds max (etc), and just add like a transparent .dif wall in constructor for separating the sectors (for portals)?

#15
06/26/2009 (5:11 pm)
Btw, this basic overview link was a huge part of what I was looking for:

www.garagegames.com/documentation/artist
-> docs.garagegames.com/artist/official/DTS%20vs%20Diff/Overview.html

Hope it helps someone...

Edit: I also saw Quark mentioned here: docs.garagegames.com/artist/official/Introduction%20to%20Asset%20Pipeline/Conten...

Edit: here's another good link:
docs.garagegames.com/artist/official/DTS%20vs%20Diff/Collision.html