Light leaks and missing/flipped faces
by Andrew Brady · in Constructor · 08/26/2007 (12:21 pm) · 21 replies
Hello Guys,
I know these things have been asked before, though for the life of me I couldnt locate an answer. In my level, it seam's that .. at random, a brush face is cut up and a section of that face is either flipped so you cant see it, or it is missing entirely. (picture below)

At first I thought it might be portals but I have triple checked all my portals and they appear to be all working perfectly.
Now light leaks.. It doesnt seam to matter if a but-up brushes perfectly, or bury them into the ends of each other so they overlap.. I still at times get light leaks, even when there are no "lights" in the level at all.. almost randomly.
I used contructor 1.0.2 with TGEA 1.0.2 (contructor 1.0.3 still screwes up levels with portals so I do not use it yet)
Any help would be appreciated.
I know these things have been asked before, though for the life of me I couldnt locate an answer. In my level, it seam's that .. at random, a brush face is cut up and a section of that face is either flipped so you cant see it, or it is missing entirely. (picture below)

At first I thought it might be portals but I have triple checked all my portals and they appear to be all working perfectly.
Now light leaks.. It doesnt seam to matter if a but-up brushes perfectly, or bury them into the ends of each other so they overlap.. I still at times get light leaks, even when there are no "lights" in the level at all.. almost randomly.
I used contructor 1.0.2 with TGEA 1.0.2 (contructor 1.0.3 still screwes up levels with portals so I do not use it yet)
Any help would be appreciated.
About the author
www.andrewjbrady.com
#2
08/27/2007 (6:49 am)
The light "leaks" are probably not leaks so much as lightmaps that are being created at a higher setting. Try making them smaller.
#3
08/27/2007 (8:47 am)
Thanks David, I'll definitely try that. The flipped/missing parts of faces is throwing me for loops though. Hopefully, someone more knowledgeable than me on this issue will see this **crosses fingers**.
#4
08/27/2007 (9:27 am)
Save the map then exit Constructor. Now relaunch Constructor and reload your map. Export the map this should fix the missing faces and flip faces at least it did for me.
#5
Under preferences, are two specific settings, The first is split epsilon, and the second is tiny split epsilon. their explanations are as follows:
Split epsilon: the epsilon used for splitting brushes, poly's and vislinks.
Tiny split epsilon: The epsilon used to decide when a split is to small.
default seams to be 0.01 and 0.02 as listed above.
Could someone please give a more in-depth explanation of these two items, and if this could assist in my issues etc..
Thanks,
LK
08/28/2007 (10:42 pm)
Thanks for the advise. I have another question along these lines...Under preferences, are two specific settings, The first is split epsilon, and the second is tiny split epsilon. their explanations are as follows:
Split epsilon: the epsilon used for splitting brushes, poly's and vislinks.
Tiny split epsilon: The epsilon used to decide when a split is to small.
default seams to be 0.01 and 0.02 as listed above.
Could someone please give a more in-depth explanation of these two items, and if this could assist in my issues etc..
Thanks,
LK
#6
still looking into this.
08/28/2007 (11:11 pm)
After some further google searching I found this information:Quote: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.
still looking into this.
#7
test1:
split epsilon: .11
tiny " : .12
= interior level invisible/ cant enter it
test2:
.05
.06
= interior level invisible/ cant enter it
test3:
-.09
-.08
= interior level invisible/ cant enter it
test4:
changed th HSR setting to the alternative HSR
= Some mising faces reappeared.. others went missing
Still waiting to see if anyone can shed some more light on the missing faces issue.
08/29/2007 (6:09 am)
Did some testing..test1:
split epsilon: .11
tiny " : .12
= interior level invisible/ cant enter it
test2:
.05
.06
= interior level invisible/ cant enter it
test3:
-.09
-.08
= interior level invisible/ cant enter it
test4:
changed th HSR setting to the alternative HSR
= Some mising faces reappeared.. others went missing
Still waiting to see if anyone can shed some more light on the missing faces issue.
#8
08/29/2007 (2:17 pm)
Always seems to occur for me with I use subtraction...even on the simplest brushes (cube)...wish we had the ability to reset a flipped face....
#9
Neil
08/29/2007 (3:18 pm)
Have you guys tried turning off hidden surface removal, that stopped the holes for me, just need to work out the collision issues that have started, are these problems new to constructor?Neil
#10
08/29/2007 (9:28 pm)
Yes I have Deepeyed, but thank you. I think I will resort to manually cutting the faces in question to alter how the face is being.. adjusted. I'll tell what I find out.
#11
I can take the same .map, directly export it from a .map to dif and get one result.. and take that ,map, change it to a .csx then export it to dif.. and get totally different results. I guess my most basic question would be wtf?
Portals in that level will be 100 percent fine.. as long as I leave it in a .map format, but once that exact level is converted to a csx then converted.. several portals are bugged. If I take a .map, change the lightmap settings to ANYTHING other than the default 256, I either get graphical errors, False light burns, or entire sections of the level will disappear once you enter them. And No matter what I do (and that includes the save/open/shut/open/ etc..) I still get at least one r two faces cut poorly, than flipped/removed.
note, all of this is still using constructor 1.0.2. Using 1.0.3 with portals in them does not work.. ever.
What am I doing wrong/missing?
08/31/2007 (10:47 am)
Still testing....I can take the same .map, directly export it from a .map to dif and get one result.. and take that ,map, change it to a .csx then export it to dif.. and get totally different results. I guess my most basic question would be wtf?
Portals in that level will be 100 percent fine.. as long as I leave it in a .map format, but once that exact level is converted to a csx then converted.. several portals are bugged. If I take a .map, change the lightmap settings to ANYTHING other than the default 256, I either get graphical errors, False light burns, or entire sections of the level will disappear once you enter them. And No matter what I do (and that includes the save/open/shut/open/ etc..) I still get at least one r two faces cut poorly, than flipped/removed.
note, all of this is still using constructor 1.0.2. Using 1.0.3 with portals in them does not work.. ever.
What am I doing wrong/missing?
#12
Matt asked me to make an example map of some of the issues in another thread previously so I did.
The zip contains 6 items: a .map file, a .csx file which is the exact same thing as the .map, a dif created from the .map, and a dif created from the csx. Two jpg's are also included showing one of the major bugs I'm getting.. the disappearing sections. In both difs, the same thing happens. The missing faces seams to require alittle more detail than this very basic level has (nothing but afew hallways boz shaped). Also, I used the floor2.jpg from the starter textures that come with constructor for ease.
The link for the zip is : www.revictum.com/example/examplebug.zip
Here are some pics of other errors I've received in the last 20 atempts.



I have many years of experience working with 4 other engines and I have never run into such issues. I need to know if it is something I am doing inappropriately, or is it the exporter (using legacy TGEA since it is the only one I am aware of that will handle portals, with constructor 1.0.2 and TGEA 1.0.2), or is it something in constructor itself.
I hope this clarifies things Matt, but if not, let me know and I will get you whatever you require.
Thanks
LK
08/31/2007 (4:08 pm)
Alright,Matt asked me to make an example map of some of the issues in another thread previously so I did.
The zip contains 6 items: a .map file, a .csx file which is the exact same thing as the .map, a dif created from the .map, and a dif created from the csx. Two jpg's are also included showing one of the major bugs I'm getting.. the disappearing sections. In both difs, the same thing happens. The missing faces seams to require alittle more detail than this very basic level has (nothing but afew hallways boz shaped). Also, I used the floor2.jpg from the starter textures that come with constructor for ease.
The link for the zip is : www.revictum.com/example/examplebug.zip
Here are some pics of other errors I've received in the last 20 atempts.
I have many years of experience working with 4 other engines and I have never run into such issues. I need to know if it is something I am doing inappropriately, or is it the exporter (using legacy TGEA since it is the only one I am aware of that will handle portals, with constructor 1.0.2 and TGEA 1.0.2), or is it something in constructor itself.
I hope this clarifies things Matt, but if not, let me know and I will get you whatever you require.
Thanks
LK
#13
is there any way to manually alter the lightmap information ?
08/31/2007 (4:43 pm)
I have something to add to Andrew's post:is there any way to manually alter the lightmap information ?
#14
09/01/2007 (8:52 pm)
I'm going to take it that other members do not have answers on how to fix these things(i know many people are having similar problems). Matt, I know your very busy, but I can not move forward with these issues popping up everytime to varying degrees. I have yet to export a single dif that didn't either have a flipped face, missing cut face, graphical errors, or entire sections invisible/glitching in and out of view depending on your position (when using portals.. which I need). I'll buy you two twinkies and pack of chicklets! :P
#16
09/04/2007 (12:15 pm)
I have received a few examples but haven't had time to look at them yet. I have a few higher priority tasks to complete before I can swing back to Constructor.
#17
09/04/2007 (8:32 pm)
Not a problem; I can relate. It's enough right now that it's in your list. :P
#18
09/21/2007 (11:11 pm)
It seams.. I can take a .map, export it and have some portaled areas work well.. and others disappear once you walk into them. Then, I can take the same .map, export it the exact same way I did previously, and get completely different results.
#19
Is there a similar setting in TGEA to achieve the same thing?
09/22/2007 (5:28 pm)
Here's another question.. maybe an easy out of sorts. For those of you familiar with Q3, in radiant you could alter the "distancecull" setting. What this did was tell the engine at what distance to stop drawing from the camera/player. Since this setting could be manipulated, you could set the furthest distance slightly further than your largest area in your level, keeping everything further from being drawn. Is there a similar setting in TGEA to achieve the same thing?
Torque 3D Owner Andrew Brady