My occlusion test

Creating new content for Trespasser!

Moderators: TresCom Support Team, TresCom Board Managers, TresCom Developers

Post Reply
User avatar
machf
T-Rex Killer
T-Rex Killer
Posts: 12368
Joined: Thu Apr 24, 2003 11:20 pm
Location: Lima, Peru
Contact:

My occlusion test

Post by machf »

I've uploaded this file:

http://www.trescom.org/files/Levels/TestOcclusion.zip (6.3MB)

I made some tests with occlusion objects and founs some interesting results... but I'll comment later, right now I have to leave, I'll be returning in a couple of hours.
Visit The Carnivores Saga - a forum devoted to modding Action Forms' Carnivores, Carnivores 2 and Carnivores: Ice Age games
Tres WIP: updated T-Script Reference and File Formats documents
Sound name listings for the Demo (build 117), Retail (build 116), Beta 103, Beta 99, Beta 97, Beta 96, Build 55, PC Gamer Alpha (build 32) and E3 1998 Alpha (build 22) TPA files
User avatar
machf
T-Rex Killer
T-Rex Killer
Posts: 12368
Joined: Thu Apr 24, 2003 11:20 pm
Location: Lima, Peru
Contact:

Re: My occlusion test

Post by machf »

OK, I'm back.

First... small occlusion objects don't appear to work unless you're really close to them. Looks like the distance at which they work is proportional to their size... so, try to use large occlusion objects whenever possible. Use small ones only for doors and such - things where you just can't use larger ones.

Second... due to the way GeomAdd imports meshes, a square is turned into two separate triangles (meaning it consists of 6 vertices, 3 for each triangle, instead of only 4). That has the effect that the occlusion object doen't work as it should a the edge between the triangles. How can this be partially solved? By using TWO square instead of one, so that the diagonals lie at right angles. That way only the center of the square will have a small "filtration"... (we really need a new replacement for GeomAdd!)

Third... I still haven't determined how many occlusion objects are processed at the same time on-screen (while trying that, it was when I found out about the sizes). GUIapp has a slider that goes from 1 to 100 and is set by default to 25, I don't know if Trespasser uses the same value or not...
Visit The Carnivores Saga - a forum devoted to modding Action Forms' Carnivores, Carnivores 2 and Carnivores: Ice Age games
Tres WIP: updated T-Script Reference and File Formats documents
Sound name listings for the Demo (build 117), Retail (build 116), Beta 103, Beta 99, Beta 97, Beta 96, Build 55, PC Gamer Alpha (build 32) and E3 1998 Alpha (build 22) TPA files
User avatar
RexHunter99
Albertosaurus
Albertosaurus
Posts: 2197
Joined: Mon Apr 24, 2006 12:12 pm
Location: Australia
Contact:

Re: My occlusion test

Post by RexHunter99 »

machf wrote:OK, I'm back.

First... small occlusion objects don't appear to work unless you're really close to them. Looks like the distance at which they work is proportional to their size... so, try to use large occlusion objects whenever possible. Use small ones only for doors and such - things where you just can't use larger ones.

Second... due to the way GeomAdd imports meshes, a square is turned into two separate triangles (meaning it consists of 6 vertices, 3 for each triangle, instead of only 4). That has the effect that the occlusion object doen't work as it should a the edge between the triangles. How can this be partially solved? By using TWO square instead of one, so that the diagonals lie at right angles. That way only the center of the square will have a small "filtration"... (we really need a new replacement for GeomAdd!)

Third... I still haven't determined how many occlusion objects are processed at the same time on-screen (while trying that, it was when I found out about the sizes). GUIapp has a slider that goes from 1 to 100 and is set by default to 25, I don't know if Trespasser uses the same value or not...
More than likely Tres uses the same default value as GUIApp.
Lol I've been saying we need a new GeomAdd for a long time.
~ They told me humans weren't real... I proved them wrong.
ImageAnthropology ~ A beautiful tale.
EpicZen
Carnivores Hub ~ Need the full games without all the hassle of torrents or viruses? Run on over to EpicZen's Carnivores Hub!
User avatar
Draconisaurus
T-Rex Killer
T-Rex Killer
Posts: 14046
Joined: Mon Dec 06, 2004 5:21 pm
Antispam: No
Location: Isla Sorna
Contact:

Re: My occlusion test

Post by Draconisaurus »

Just noticing this. I did a test of the high-density Hillside Research Station area and discovered pretty much the same thing just the other week, that the smaller occlusion objects don't count for crap. Sadly a building with lots of windows and doors can't afford much more than that. Perhaps one of the reasons so many Tres windows are boarded up instead of having broken glass like the dam control building.

As for being imported as triangles, believe me on this, you can import them with their vertices welded. There are a few important points to remember with this when working with Tres and our utilities, if you care to hear them:
  • Many or most TPM files imported with the current TPM-import script into Max will, for whatever reason, lose all or most of their vertex weld data and become split into triangles. Some do not, such as some dinosaur meshes, and I don't understand what makes that difference except that fan-made models seem 100% likely to have this happen.
  • Everything imported or exported into anything as 3DS will get its faces exploded (verts unwelded), so don't use this format at any stage.
  • To weld the vertices of an exploded mesh in Max, simply open Vertex-subobject, select all, and Weld Selected. This will remove any element groups there might have been for smoothing, so if there was something more complicated than stand-alone flat faces, you'll want to select the portions of mesh to have their own element and Detach As Element.
  • If a TPM is exported from Max, and the vertices in the Max scene are all welded, it will have those vertices welded in the TPM file and in the level after GeomAdd has imported it. If this were not true, we would never have any proper smoothing for new models, which is not the case.
  • It could be deceiving because if you export your custom occlusion object from the level as TPM and import it into Max, its faces will be exploded, as described above, so you'd be unable to tell if it was that way in the level.
  • If all those steps are followed and it still appears that only triangular faces are being computed for occlusion, that would seem to mean that vertex welding doesn't effect it, but I suspect it does.
Bottom line, I've found the occlusion system to be sadly inadequate for anything but huge objects inside the terrain (which it's essential for). For places with buildings full of objects, it's best to use the culling/cachemul system to stop them from rendering out of view. HRS will demonstrate this when it's released.
User avatar
RexHunter99
Albertosaurus
Albertosaurus
Posts: 2197
Joined: Mon Apr 24, 2006 12:12 pm
Location: Australia
Contact:

Re: My occlusion test

Post by RexHunter99 »

Draconisaurus wrote:Just noticing this. I did a test of the high-density Hillside Research Station area and discovered pretty much the same thing just the other week, that the smaller occlusion objects don't count for crap. Sadly a building with lots of windows and doors can't afford much more than that. Perhaps one of the reasons so many Tres windows are boarded up instead of having broken glass like the dam control building.

As for being imported as triangles, believe me on this, you can import them with their vertices welded. There are a few important points to remember with this when working with Tres and our utilities, if you care to hear them:
  • Many or most TPM files imported with the current TPM-import script into Max will, for whatever reason, lose all or most of their vertex weld data and become split into triangles. Some do not, such as some dinosaur meshes, and I don't understand what makes that difference except that fan-made models seem 100% likely to have this happen.
  • Everything imported or exported into anything as 3DS will get its faces exploded (verts unwelded), so don't use this format at any stage.
  • To weld the vertices of an exploded mesh in Max, simply open Vertex-subobject, select all, and Weld Selected. This will remove any element groups there might have been for smoothing, so if there was something more complicated than stand-alone flat faces, you'll want to select the portions of mesh to have their own element and Detach As Element.
  • If a TPM is exported from Max, and the vertices in the Max scene are all welded, it will have those vertices welded in the TPM file and in the level after GeomAdd has imported it. If this were not true, we would never have any proper smoothing for new models, which is not the case.
  • It could be deceiving because if you export your custom occlusion object from the level as TPM and import it into Max, its faces will be exploded, as described above, so you'd be unable to tell if it was that way in the level.
  • If all those steps are followed and it still appears that only triangular faces are being computed for occlusion, that would seem to mean that vertex welding doesn't effect it, but I suspect it does.
Bottom line, I've found the occlusion system to be sadly inadequate for anything but huge objects inside the terrain (which it's essential for). For places with buildings full of objects, it's best to use the culling/cachemul system to stop them from rendering out of view. HRS will demonstrate this when it's released.
Now that you mention it, it does sound correct. If you unweld a vertice, the floating-point implementation isn't 100% accurate and thus, some co-ordinates are different to others... this is demonstrated in many games with dynamic terrain, you can sometimes see seams because the triangles don't use the same vertices as their neighbours...
~ They told me humans weren't real... I proved them wrong.
ImageAnthropology ~ A beautiful tale.
EpicZen
Carnivores Hub ~ Need the full games without all the hassle of torrents or viruses? Run on over to EpicZen's Carnivores Hub!
User avatar
tatu
-=TresCom Website Manager=-
-=TresCom Website Manager=-
Posts: 5088
Joined: Fri Jun 24, 2005 9:40 pm
Antispam: No
Location: Sweden
Contact:

Re: My occlusion test

Post by tatu »

(Trespasser with CE patch)
I did myself a small test of this as I am working on the Town level. For some reason it doesn't seem like occlusion work properly even when they are large. It seems like they only don't render a small part behind them. Or is this how they are meant to work? (and why does the terrain have occlusion if they don't work anyway?)
TresOccTest.png
TresOccTest.png (1.13 MiB) Viewed 6093 times
The bungalow is the only thing that doesn't render, but everything else behind it does.
Active project: Trespasser: Isla Sorna
Status:
BE-PH1: Released
PH2-IT: Pre-released
PL-SUM: In production

"...there used to be more benches, but InGen's workers removed them during the evacuation in the name of framerate."
Post Reply