Author Topic: PCS2 BSP experiments  (Read 6423 times)

0 Members and 1 Guest are viewing this topic.

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
PCS2 BSP experiments
ok, I desperately need people to do a few tests for me,
http://freespace.volitionwatch.com/blackwater/pcs2_BSPEX.zip
there are two builds in that zip, I need people to compare the in game performance, especially making sure there are not collision holes in either one of them, but also seeing if the game seems to run any faster or slower with one over the other, try to use your hungriest most polytastic models, (only do comparison tests between models that compile on both builds, the non-EX version has the fix-infinite-recursion code disabled amung other things, do mention if a model fails to compile on either build though) and put a lot of them into a test mission fighting each other with infinite waves. give me mean framerate differences and if you notice one causes framerates to be less consistent than the other this is also important. also in the "model comments" section, there are two stats I am very interested in, max BSP depth, and max polys per node, please relay this information along with the polycount of your largest submodel as soon as posable.

Please, the fate of _all man kind_ lays in your very hands! Go on! save the day! Get the girl! Do not let us down!

and do it quickly...
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline chief1983

  • Still lacks a custom title
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: PCS2 BSP experiments
Save the cheerleader!
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline Vasudan Admiral

  • Member
  • 211
    • Twisted Infinities
Re: PCS2 BSP experiments
I'll start testing when I get home in 4 hours time. I have 2 massive models I can test this with, one of them being a 230 000 poly test model which has no detail boxes. If that doesn't cut down the framerate, I don't know what will. ;)

What sort of trends are you expecting and/or hoping for?

Oh, and also while I'm here, does PCS2 or FS2 have a maximum polycount per object limit? PCS1 seemed to have one at about the 15 000 poly mark, above which it would fail to convert. Is that limit (or any other important limits for that matter) still in force with PCS2?
Get the 2014 Media VPs and report any bugs you find in them to the FSU Mantis so that we may squish them. || Blender to POF model conversion guide
Twisted Infinities

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
well with my modifications I was hopeing to get log2 complexity in the tree, that is for however many polygons there are in the tree it would take no more than log2(howevermenypolys) steps down the tree to get to them, most of my tests have shown slightly better than that, it won't make it compile much-if-any faster but it should make colision detection more eficent.

for a model with 230000 polys I would expect a max tree depth of 17 or thereabouts. which would make it 3 time slower than a model with 230 polys.

PCS is limeted by how much ram you have, FSO is limited to models with about 4.2 billion unique verts (verts than have the same position, lighting normals, and UV coords).

but in a practical sence I'd say about 50,000 is were the technology will let you go today.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Water

  • 210
Re: PCS2 BSP experiments
Do you have a preference for which FSO build it gets run under?

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
not realy, the most recent/stable one you have handy.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
I may have just thought of a way to use the BSP's structure to help build it'self faster.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
ok, I have updated the zip in the first post, I have included a third exeuteable which has an optomiseation which should help speed up compilation, though I figured out a large portion of the time spent is actually in creating a unique vertex list, which seems odd to me considering both the cob and pof formats have one to begin with.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Water

  • 210
Re: PCS2 BSP experiments
First build test only

115023 poly -- 40 objects -- smallest 4, largest 15810 poly -- radius 5726
----------------------------------------------------------------

pcs2 --  max Bsp depth 37 --- most polys in a single node was 1
Freespace xt build crash

pcs2_BSPEX -- crash with no error message. Didn't exit on the 15k object but a 9k object. (B2)
----------------------------------------------------------------

Split 15k object into 2 objects

Pcs2 --  max Bsp depth 32 --- most polys in a single node was 1

Freespace loads ok - missing faces and stuff like previous pcs2 builds (with this model)
FPS - approx equavalent to pcs1 (didn't test too hard)
Collision detection -- FPS - less drop with this one (firing weapons at it)
previous was a 75% drop  - this one less than 50% drop

pcs2_BSPEX -- crash with no error message. Still crashed at same object (B2) (I actually reduced it to 8k for this test)
--------------------------------------------------------------------------

Note:
both builds stop loading if they encounter a group containing no mesh but 2 sub groups with mesh
----sub Group
--------sub group with mesh
--------sub group with mesh
Pcs1 didn't have a problem with this. I think previous pcs2 was ok as well, but didn't check to confirm

 

Offline Water

  • 210
Re: PCS2 BSP experiments
third executable fails even earlier.

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
ok, I'm making an update if the third one still fails email me a cob.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
First build test only

Freespace loads ok - missing faces and stuff like previous pcs2 builds (with this model)
the hell? is this a problem with the model or PCS? can you give me the cob or a screen shot at least?
FPS - approx equavalent to pcs1 (didn't test too hard)
slightly disapointing, but not totaly unexpected, FSO doesn't currently use the BSP tree for rendering
Collision detection -- FPS - less drop with this one (firing weapons at it)
previous was a 75% drop  - this one less than 50% drop
good, it does have a noticeable improvement. were there colision holes you could fine?

Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Water

  • 210
Re: PCS2 BSP experiments
Freespace loads ok - missing faces and stuff like previous pcs2 builds (with this model)
FPS - approx equavalent to pcs1 (didn't test too hard)
Collision detection -- FPS - less drop with this one (firing weapons at it)
previous was a 75% drop  - this one less than 50% drop

Ignore this part from previous post.
Just tested using pcs1 - both have similar missing faces and collision detection. I scaled the whole model up instead of using pcs cob scaling - not sure what else I changed.

Going to see if i can find an earlier model that was stable under pcs1

 

Offline Water

  • 210
Re: PCS2 BSP experiments
Found an earlier file
pcs1 - didn't spot any missing faces in a quick fly around.
pcs2 - missing faces - bsp depth 29
pcs2_bspex - crash.

Edit: that was the first version of pcs2_bspex.
« Last Edit: July 02, 2007, 08:25:46 am by Water »

  

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
I just caught a crash bug, I'm going to do a little more testing then upload a new zip then passout on my keyboard.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Vasudan Admiral

  • Member
  • 211
    • Twisted Infinities
Re: PCS2 BSP experiments
Ok, given them all a pretty thorough testing with that huge model, and well...it doesn't look too great. :(

In this model there are sixty 3840 poly spheres arrayed around a parent object - a cube. All the sphere's are set up as separate subobjects of that cube.
COB scale factor in all programs was 1.00.
Each test involved opening from the SCN and then saving as POF, closing and reopening PCS2 to get the in PCS2 results, then going in-game to get the in game results.

Here's the source SCN file these came out of: http://sectorgame.com/ti-file-dump/VasudanAdmiral/test2.zip (copy & paste link)

====PCS1:====
==Model Comments:==
Input was: 61 Materials, 61 Groups, 64 Lights, and 61 PolyGroups.
Started with 115328 and ended with 115328 points, in 230412 and 230412 faces respectively. Compile time was 228.656000 seconds.

==Results:==
In PCS2:
- Correctly displayed
- BSP debug mesh
- 61Mb POF file

In game:
- Consistant 47FPS (though it was slowly dropping, I suspect a memory leak in FS there)
- Fully collidable mesh
- All visible polys were shootable
- No holes


====PCS2 Normal Build====
==Model Comments:==
PMFSaveToPOF: Compiled on PCS 2.0 Beta with PCS 2.0 Compiler Version 1 RC2
max BSP depth was 22
most polys in a single node was 1

==Results:==
In PCS2:
- Incorrectly displayed - massive holes all over model. ("Holy Snowballs Batman!!")
- BSP debug mesh
- 42Mb POF file (probably smaller due to massive holes)

In game:
- Consistant 47FPS again
- Nothing but the cube in the centre was collidable
- All visible polys were shootable
- Huge holes visible in PCS2 are also present in-game



====PCS2 BSPEX Build====
==Model Comments:==
PMFSaveToPOF: Compiled on PCS 2.0 Beta with PCS 2.0 Compiler Version 1 RC2
max BSP depth was 16
most polys in a single node was 1

==Results:==
In PCS2:
- Incorrectly displayed - massive holes all over model again
- BSP debug mesh (looks leaner)
- 38Mb POF file

In game:
- Consistant 45FPS
- Nothing but the cube in the centre was collidable
- All visible polys were shootable
- Huge holes visible in PCS2 are also present in-game



====PCS2 BSPEX2 Build====
==Model Comments:==
PMFSaveToPOF: Compiled on PCS 2.0 Beta with PCS 2.0 Compiler Version 1 RC2
max BSP depth was 16
most polys in a single node was 1

==Results:==
In PCS2:
- Incorrectly displayed - massive holes all over model again
- BSP debug mesh (almost same as previous)
- 38Mb POF file

In game:
- Consistant 44FPS
- Nothing but the cube in the centre was collidable
- All visible polys were shootable
- Huge holes visible in PCS2 are also present in-game
Get the 2014 Media VPs and report any bugs you find in them to the FSU Mantis so that we may squish them. || Blender to POF model conversion guide
Twisted Infinities

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
posted while I was again...will give that a look.
[edit] that scene you posted is forbiden[/edit]
[more edit]oh, copy paste, nevermind then[/more edit]

ok, I am uploading a new zip with a new version of EX2 with a crash bug fixed and sevral other improvements over the first few itterations. it should be genorateing exceptionally effectent BSPs now, make sure there are no holes. and it should be compileing it a lot faster. we may have to do a rather large restructureing of how geometry is stored.

eehh man I've been up for like 24 hours.

I think the no colideing with anything but the middle bit is because we arent takeing subobjects into ac**** when calculateing bboxes, unless I screwed that up, but I never messed with that...
you might want to try makeing the sphere's in the corners part of the main hull, that would work around that for the moment.

what the hell the bounding volumes are like shifted out...

...that would explain those holes, I think I know what's causeing that...
« Last Edit: July 02, 2007, 10:44:32 am by Bobboau »
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: PCS2 BSP experiments
ok, I MUST go to sleep now, but I think I may have fixed the missing poly issue, the won't colide with children outside it's own bbox issue remains. so be aware of that.
http://freespace.volitionwatch.com/blackwater/pcs2_BSPEX2.zip
I think that build should rock very hard.
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline Kazan

  • PCS2 Wizard
  • 212
  • Soul lives in the Mountains
    • http://alliance.sourceforge.net
Re: PCS2 BSP experiments
unless you changed the behavior bob before you started tweaking on this "missing polygons" in the POF meant "****ing A! you tried to make me go into infinite recursion, screw that!"

IE "Bad geometry" was simply truncated

PS: inside a single BSP tree all a sortnorms children MUST fit within it's bounding box - hence in GenerateTreeRecursion the calls to grow node's boundbox to make sure they include node->front and node->back

[edit]
*faceplant* what did you do to my bounding box functions! there was a reason there were two seperate ones (one for an individual polygon and one for multiple)
« Last Edit: July 02, 2007, 03:22:12 pm by Kazan »
PCS2 2.0.3 | POF CS2 wiki page | Important PCS2 Threads | PCS2 Mantis

"The Mountains are calling, and I must go" - John Muir

 

Offline Kazan

  • PCS2 Wizard
  • 212
  • Soul lives in the Mountains
    • http://alliance.sourceforge.net
Re: PCS2 BSP experiments
i've reverted your changes to the bounding box functions

MakeBound(vector3d &Max, vector3d &Min, kaz_vector<int> &polylist, kaz_vector<pcs_polygon> &polygons) is for making a bounding box that fits around an entire group of polygons

BoundPolygon(vector3d &Max, vector3d &Min, int polygon, kaz_vector<pcs_polygon> &polygons) is for a single polygon

MakeBound(...) uses BoundPolygon(...)


there is quite a large possibility that what you did broke bounding boxes
PCS2 2.0.3 | POF CS2 wiki page | Important PCS2 Threads | PCS2 Mantis

"The Mountains are calling, and I must go" - John Muir