Game Development Community

Torque Constructor 1.0.2 Released

by Matt Fairfax · in Constructor · 05/29/2007 (12:04 pm) · 24 replies

You can now download the updated Torque Constructor from your My Account page.

This update should fix a lot of the problems people were having with zones and dropping faces. It also exposes a number of new exporting options to help you to get the results you want.

The only other interface change is that the Export->Dynamic view was changed from showing the exported collision brushes to showing the fully lightmapped and textured exported polygons. This should help you to spot "chopped up" surfaces more quickly.

About the author

I am a Game Designer at PopCap who has worked on PvZ Adventures, PvZ2, Peggle Blast, and Bejeweled Skies. I am an ex-GarageGames employee who helped ship TGE, TGEA, Torque 3D, and Constructor.

Page «Previous 1 2
#1
05/29/2007 (12:31 pm)
This is finaly a great tool!

I was able to export my most complex DIF without trouble.

Then i exported a mess of overlapping, not on the grid, sloppy vertex edited, hunk of blocks and it actually worked, with only a few odd seams and that was to be expected!

As far as exporting for non TGE1.5.+ builds Constructor worked great. I can finally export all the DIF i have saved up...

P.S
Matt,
How do we use and what do they mean; the new export options?
#2
05/29/2007 (12:58 pm)
If you go to System->Preferences...->Export you'll see that the Export prefs have been expanded a little to look like this:

www.rustycode.com/constructor/constructor_export_prefs.jpg
Let me break these down a little more for you guys:

Save Info File - You guys may (or may not) have noticed when this pref was added with 1.0.1. When you export to a DIF you'll see that a text file (Plain Text or XML) is getting saved out along-side the new DIF with some extra info saved into it (like the textures the DIF uses). The idea here is to help make it easier on you guys to pull together all of the info and data you need to for sending the finished artwork off or for moving it from directory to directory.

Copy Brush Textures - Also added with 1.0.1. This option allows Constructor to automatically copy the textures used on the brushes to the export directory. This will save you from having to do this step manually.

Copy Mesh Textures - Same thing as the option above except that it copies the textures used on any of the static meshes in your scene.

Hidden Surface Removal - New with 1.0.2. This is a biggy. If you uncheck this, Constructor will no longer do a hidden surface removal pass on your geometry before exporting it. This has a couple of side effects (potentially bad if not handled correctly).

First, the most obvious side effect is that your geometry will no longer get "chopped" up. However, before everyone goes and disables this, you need to consider the other two side effects.

You will be rendering surfaces that will never be visibile (such as the bottom of a column). This could potentially hurt your framerate a great deal on some maps. On others though, it may reduce your surface count and actually help your framerate a little. You can combat this some by using the NULL texture on surfaces (NULL surfaces do not get rendered in the engine). The other potentially negative side effect is that brushes with overlapping, coplanar faces will now exhibit "z-fighting" rendering artifacts in the engine since both sets of polys will be rendered.

One last thing to keep in mind with this option. If you do disable it, but are using zones, it will still perform a HSR operation on the polys that are found to be in more than one zone. There simply isn't a way to support zones and no HSR without this concession.

Unchecking this pref will disable the Alternate HSR discussed below.

Detail Brush HSR - Added in 1.0.2. With map2dif, map2dif_plus, and Constructor 1.0.1 the detail brushes do not get "chopped up" by normal brushes but they do perform a hidden surface removal pass with the other detail brushes in the scene which sometimes cause undesirable behavior (and is why changing *all* of your brushes to detail never really helped things).

One of the things a lot of people liked about Constructor 1.0 was that it did not perform an HSR pass on the detail brushes which led to a greater amount of control by the artist over the "chopping". So, for Constructor 1.0.2, doing HSR on detail brushes is disabled by default. Keep in mind that having HSR off for detail brushes can cause the exact same issues that disabling them for all brushes causes: overdraw and z-fighting.

Alternate HSR - Added in 1.0.2. This is an interesting pref to play with. Constructor 1.0 and Constructor 1.0.1 had radically different hidden surface removal algorithms because the introduction of zones forced a lot of changes to how HSR was being performed in 1.0. A lot of artists really liked how the HSR in Constructor 1.0 worked so the decision was made to reintroduce it with a slight modification.

This version of HSR is less likely to drop/split faces but it isn't always the most efficient at removing hidden surfaces so you may get a little more overdraw (rendering faces that will never be visible). It does handle overlapping, coplanar faces so you won't have to worry about z-fighting. The slight modification I mentioned above is that it uses the newer HSR for surfaces that span multiple zones since there is no way to properly handle zones with the alternate HSR scheme. In general, this is only going to be a handful of surfaces and it appears to perform quite well.

Alternate HSR and Normal HSR will both be disabled if the Hidden Surface Removal checkbox is unchecked above.

Split Epsilon - Introduced with 1.0.1. This is the "magic number" that is used when creating the collision bsp tree and when pushing the polys into that tree in order to sort them into zones. Floating point innaccuracy means that we can never exactly compare two values so we have to use an "epsilon" to decide if they are close enough together to be "equal". This pref controls how far away from a plane a point has to be in order for the brush or polygon to be considered split by that plane.

All math/programming jargon aside, the lower this value is the more likely a brush will get split up by another brush's surfaces and the more likely you will lose surfaces during the hidden surface removal pass. However, if you push this pref too high then you can lose all of the benefits of the hidden surface removal (less overdraw and no z-fighting). Changing this value can go a long way to combatting bad exports but it also can be highly dependent on the size and complexity of the map so I left it controllable by the artists so that they can find their own sweet spots.

Tiny Split Epsilon - Introduced with 1.0.1. This is tightly related to the pref above. The Split Epsilon is used to control whether or not a brush or polygon is considered "split" while the Tiny Split Epsilon is used to control whehter or not that split is too small to be considered. Some things in the bsp create process and the hidden surface removal operation only use the Split Epsilon while other portions use both so I felt it was important to expose this one as well.

Practically, this number always needs to be higher than the Split Epsilon...generally only slightly higher. Again, this is a "magic" number that each artist can play with to get the best results for each scene.

Render During Export - Introduced with 1.0.1. Some of you may have noticed that if you full screen a single view while you export a big scene (like the cathedral) it would export a lot faster than if you had all four of the default views open. This is because we are doing rendering calls during the export (so that we can update the progress bar). We are doing a lot less than normal but it was slowing things down.

By unchecking this pref, you can get a dramatic increase in exporting speed but it can look a little odd when everything disappears out fo your scene for a short bit.

smoothingThreshold - Exposed in 1.0.2. You have always been able to access $pref::Constructor::smoothingThreshold but most people did not know it existed. This is the pref that controls what surfaces get smoothed together on brush creation and on export (during export all the brush surfaces are smoothed together while during creation only the surfaces that belong to the individual brushes are smoothed together since the brush can/will be moved and full scene smoothing is an expensive operation).

A value of 1.0 will completely disable smoothing while a value of 0.0 will force it to try to smooth all surfaces together. Any floating point value between 0 and 1 is valid.
#3
05/29/2007 (12:59 pm)
Hopefully that addresses everyone's questions about the new exporting prefs. If you need any more clarification or detail please let me know =)
#4
05/29/2007 (1:07 pm)
For those of us who are basically scared crapless of anything art-related, one huge "reset to defaults" button would be really nice. That way I could try tweaking stuff, but know that I wouldn't have to reinstall or futz on the filesystem to fix everything I busted.

This doesn't just apply to exporting. Simple stuff like all those views that come by default. Personally, I'd be a lot braver on messing with all these awesome features if I knew I had a painless way to un-do stuff *when* I break it horribly.

Gary (-;
#5
05/29/2007 (3:43 pm)
Thanks Matt, good export features documentation...

After 23 DIF exports and none of them suffering from any of the previously discussed problems, with only a few small brush re-works, this is the best new version to any GG product yet. Everything is working so perfectly.
#6
05/29/2007 (3:58 pm)
Quote:
Everything is working so perfectly

Well now you've gone and jynx'd it ;)

Thanks for the new release GG.
#7
05/29/2007 (4:06 pm)
This is just awesome -- exactly what I needed.
#8
05/30/2007 (12:54 am)
Just read this and very impatient to try it...

@Matt: tnx for the great explanations Matt !!!

JoZ :-)
#9
05/30/2007 (1:45 am)
Thanks for all your great work, long life to GG ;)
#10
05/30/2007 (6:19 am)
Yay! A smoothing spinner! Looking forward to giving this a test run since 1.01 was crashing all over the place. Awesome stuff usual! This tool is just getting better and better!

Fredrik S
#11
05/30/2007 (6:27 am)
Fixed my problems with faces not showing up also. GJ & Thanks!
#12
05/30/2007 (7:45 am)
Well, this is odd: I have created a .dif in 1.0 and it works great, but when I move it to 1.0.2 and export it from there, it's like all the surfaces are removed.

More information: .dif was created in 1.0 first. Exported fine from there. I dabbled a little in 1.0.1 (I know I saved it a couple of times) but it kept crashing on export so I went back to 1.0. With 1.0.2 the crashes have disappeared but when I export it (File / Export as dif) it seems go ok, but when I use it in TGE (1.5.1) no surfaces are showing and the player will fall straight down. If I try to add another interior instance to the map, nothing shows up either in the viewport or the list.

The file size looks about the same as before so it's definitly writing something to the .dif file.

Export as Legacy .dif is working fine.

The file has been saved as .map from 1.0. I tried re-saving it as .csx from 1.0.2 but same problem occurs. All the new settings (discussed above) are at default.

While I search for a solution to this, I was wondering if anyone has experienced anything similar?

Edit: I tried exporting just a cube with one texture on it, and it doesn't show up at all either. Not in our modified version of 1.5.1 nor in stock 1.5.1 TGE. I am freaking out here! :)

Edit 2: Well, it seems Constructor 1.0.2 does NOT like TGE 1.5.1. Everything works fine in stock 1.5.2.

Thanks,
Fredrik S
#13
05/30/2007 (8:36 am)
Fredrik: The dif file format changed between Constructor 1.0 and Constructor 1.0.1, so in order to use the straight 'Export to DIF' option with Constructor 1.0.1 or 1.0.2, you will require TGE 1.5.2.
#14
05/30/2007 (9:32 am)
Gotcha. I must have missed that announcement. Thanks, Andy.

Fredrik S
#15
05/30/2007 (10:34 am)
I still having very serious issues with brushes created by the SPHERE tool... May be the tool need some correction?
Also the cone tool seems to give some issue but very little compared to those of the sphere tool, I'm pretty unable to get something good with it...
For my sphere or emisphere I had to use the cilinder tool, then extrude a face, on the new cilinder select the face and then scale it with planar scale then extruding it and so on... but at least in this way I was able to get a big emisphere done...
Maybe some improvement in the 1.0.3? :-P

JoZ ;-)
#16
05/30/2007 (11:58 am)
Joz, what type of SPHERE do you need? And what is it to be used for?

I ask because BSP is not the best things to try and make round smooth shapes with.

But, just for the record, i have had no troubles with Constructor SPHERE exports up to 12 sides and 12 segments, more then 12 DO start to show oddities. But 12 side 12 segments looks quite fine for BSP.
#17
05/30/2007 (12:37 pm)
Hi Caylo,
I'm having a lot of trouble with a 12x12 sphere but also using the default setting of 12x6 give me some problem especially if the sphere is too small (something I don't need) or to big...

I need to build sphere to made a dome building but with the tool sphere I can't get it done...

Further, also when managed to obtain a sphere, using planar scale or CSG Hollow produce all kind of problems with missing faces and odd lighting...

JoZ
#18
05/30/2007 (2:54 pm)
I will try a few things and report back in this thread, that you have already started.
#19
05/30/2007 (8:17 pm)
If I missed this already discussed, my apologies,

Does it do portals?
#20
05/31/2007 (1:38 am)
Something I'd like to see covered somewhere is the usage of all the entities you can find in the Constructor entitities list...

JoZ
Page «Previous 1 2