Game Development Community

DIF: Some Faces Not Rendering in TGEA

by OmegaDog · in Constructor · 11/02/2008 (8:50 pm) · 15 replies

PC: Windows Vista 32U
TGEA 1.7.1
TConstructor 1.0.51

Grid Spacing: 1
Created in Top View Window

One Box (SQUARE) Alligned to Grid, SIZE: 20
Box CSG Hollowed Thickness 2
One 36 Side Cylinder a bit smaller then the box, SIZE 18 Centered in the box
Cylinder CSG Subtrated from the Box
Cylinder Deleted
Export DIF

Output rendered in TGEA:

All faces accounted for, tested via Collison & Rocket Shot. Some faces not rendering, you can see the terrain like looking out of a window.

webview.letterlogic.com/why.png
After recreating the same scene over and over(trying everthing I found in the forums), this is the best I could get one missing face. Durring some of the attempts to recreate there were as many as 10 missing faces.

webview.letterlogic.com/Round2why.png

#1
11/03/2008 (12:28 am)
One thing to try which helped loads with missing faces for us was to ensure that in the options (System -> Preferences), on the export Tab ensure that Hidden Surface Removal is unchecked. See if that helps you
#2
11/03/2008 (8:20 am)
Thanks for the reply, When the scene is exported with Hidden Surface Removal Unchecked all faces render. The problem is that another artifact shows up, for instance certain face are really brighter or really darker than the rest of the scene.

This also shows up on a scene that was made in Radient when exported from Constructor you will see some faces with the wrong light mapping which was expected beeing different software but you would think that scenes made in Constructor would light properly and render properly in Torque.
#3
11/03/2008 (8:52 am)
Click, on the missing faces in Constructor, and change them to DETAIL Brushes!
#4
11/03/2008 (11:52 am)
I have found that it is Constructor and my Geforce 9600 GT SuperClock($399), with a FireGL($750) the re-constructed dif output from constructor is flawless even when rendered on my Geforce.

Constructor must be relying on the video card to do the tessellation and game cards have poor precision for improved performance.

Whew! and Great !, now I can get back to CSG'ing!

Thanks for the replies & advise.
#5
11/04/2008 (11:23 pm)
I tried the trick of making the misbehaving faces and changing them to detail, but all that does is cause another brush nearby to start going crazy... :-(

This is pretty annoying, I have to essentially export after every brush is added to check make sure that Torque is playing nicely with it.
#6
11/05/2008 (9:16 am)
Guessing game indeed? But since I started using my ATI video card constructor is behaving.

Noticed something about the install that may help. Install clean 1.0.3 and upgrade to 1.0.51 skipping all other updates.

Noticed something about Geforce video drivers. When you turn you card setting to Quality this happens less when you turn you card setting to performance it happens a lot.

After 3days of CSG'ing, I have not had one exported dif that did not render flawlessly.

I'am 100% convinced that Constructor is behaving differently on different video cards and OS's. Not just in tesselating but in export of lod and hidden surface removal.
#7
11/05/2008 (9:46 am)
Quote:I'am 100% convinced that Constructor is behaving differently on different video cards and OS's. Not just in tesselating but in export of lod and hidden surface removal.
I agree 100% with you there.

You can also play with the values of Split Epsilon, Tiny Split Epsilon, and Smoothing Threshold.
#8
11/05/2008 (9:48 am)
Quote:
Grid Spacing: 1
....
Box CSG Hollowed Thickness 2

Try building your walls thicker, something like 8 units.
Use a grid spacing with an even number.
Manually edit errounious brush, attemting to controle where the BSP nodes are created. As in the very first example picture, copy that brush and past it back, edit the hight so you now have two brush in that place(not overlapping if you can help it).

Turn Hidden Surface Removal back on, this feature alone will increase your in game DIF performance eminsley. When a DIFF export with this function turned off, it tells me there is a problem with the DIF design and it should be fixed properly- not 'band aided'.
Try so leave Constructor settings as DEFAULT, they are often most optimal for final IN GAME performance, when changing settings fix a problem, it helps the designer know what may be wrong so it may be fixed.

@Matt Motsinger
Your fix is only exceptionable for YOUR computer. What do you expect to happen when your artwork is used on other hardware? Not to mention how unlogical your 'fix' and explanation for it is (at least to me, i just dont see it). I test all my artwork with a range of hardware from low GF4200, ATI Rage upto current level hardware. And have never witnessed anything behaving differently on different video cards, other then FPS and limitations of card hardware(ATI Rage have very poor zbuffer what is evident in multiple other 3D engines as well).
#9
11/05/2008 (2:21 pm)
Caylo,

Matt isn't saying that the DIF renders differently on different machines, he is saying that constructor exports differently on different machines. Once it has been exported to DIF, all of the behaviors are locked in, but some graphics cards when set to performance mode might be making some generalizations that cause the math to mess up or something.

I've personally noticed that when this export problem happens, if I look into the console, I see these things called Winding errors and that Constructor was somehow unable to find the next unwinding point.
#10
11/05/2008 (4:04 pm)
Ah, yes. I see.

Still 'Winding errors' do not have anything to do with hardware, less you consider math calculations a unique individual hardware property. BSP calculations do not have anything to do with graphic card hardware, this can be tested true by swapping any new-fangled 3D card with an old fashioned PCI non 3D video card (my case an Matrox Mystique). My DIF are still exporting the same as before, and this is from an old old SUPPER7 1.4AMD system with 512megs.
#11
11/05/2008 (4:20 pm)
Yes, they will export the same, I had to recreate all my scenes under the ATI card, just exporting will do nothing once the scnene is messed it is messed.
#12
11/05/2008 (4:36 pm)
OpenGL uses Video Hardware to prefrom most caculations and this is also known that not all hardware manufactures implement all OpenGL functions in hardware or in the same way. The is the main reason that top high end cards dont play games good(render perfect cost gpu cycles), not all hardware and IDC's are the same even when they boast the OpenGL standard.

One of my bigger scenes rendering in TGEA on a Area 51 R6

Geforce(Purchased 2008): 48 fps
FireGL(Purchased 2008): 16 fps

The FireGL cost twice as much as the Geforce.
#13
11/05/2008 (4:41 pm)
Video hardware is not used when exporting from constructor.

Turn off HSR in the options, and see if the problem goes away. if so, reply back here.
#14
11/05/2008 (8:03 pm)
TGEA is also DirectX render code. What may be why your expensive 'FireGL' is slow being its not optimized for DirectX.

I think the key here yourself have stated is "I had to recreate all my scenes ". Back in the day when BSP was a fresh new gaming technology many of us would spend weeks 'recreating' our scenes until they worked perfectly. This is still truth today less the fact Constructor have evolved into a very forgiving and easy to use tool. Understand BSP before blaming your tools for not working as you think they should, a few hours of BSP research on the internet is the best place to start learning how to use Constructor.
#15
12/29/2008 (10:55 am)
I ran into an issue like this a while back and it had to do with textures themselves. I don't know who it was that posted about this but it fixed it for me and has worked ever since. You have to select the face tool and select every face in the constructor model by dragging over the entire model (or if complex- holding shift and adding a few brushes until all are selected.) Then, click world to align the textures properly. If you resize, rotate or translate in any way you have to select these faces and make sure the textures are consistent. Save and close the program. Restart and then export. I have been using constructor for a while and a combination of the hidden surface removal tool, detail brushes and resetting textures has fixed pretty much every problem I have had. Hope this helps.