POF Constructor Suite 2

From FreeSpace Wiki
Jump to: navigation, search

POF Constructor Suite 2 is a significant rewrite of POF Constructor Suite written cooperatively by Kazan and Bobboau. Kazan first started writing PCS2 when he recognized significant shortcomings in PCS1 - the fixed limit on polygon size, difficulty in adding support for new file types, the inferior CPU-hogging render window, user-friendliness issues and well as platform lock on windows. PCS2 in now stable. For a list of POF subsystem properties used in PCS2 see Subobject_and_subsystem_properties.

In 2022, a new program for .pof file editing created by Asteroth and named POF Tools, was released.

Download Links

PCS2 builds can be downloaded from the thread on HLP.

Development used to be hosted on Sourceforge but now continues on GitHub.


PMF? What is PMF?

PCS 1.x used POF as its internal format, which caused a lot of problems and limited the features. So PCS2.x uses its own format called PMF (PCS2 Model Format) internally.

A POF load goes like this:

  1. Open file
  2. Read into instance of "POFHandler" PCS1/PCS2's POF editing library
  3. Translate POF into PMF
  4. Discard POFHandler instance

A save goes the opposite direction.

Purge the BSP Cache? What is the BSP Cache?

When PCS2 loads a model (.cob, .pof, etc), it has to translate that model into PMF—its internal format. In POF the geometry is stored in a Binary Space Partition tree (aka BSP)—this must be translated into the PMF geometry format [which is very flexible unlike the very inflexible BSP].

When writing the POF, it must translate the PMF geometry back into POF geometry—which compiles BSP compilation, which is the part of POF saving that takes a long time. Now when you simply open a model and edit a fire point and save it again, there is no reason to do a recompile, as it gets you nothing. However, due to the PMF format being internal, this would be required as it must translate back to POF.

The solution to this is the BSP Cache. When it loads a model created by the latest version of PCS2 or by Volition's compiler BSPGEN, it will save a copy of the POF BSP in memory while that file is loaded, so when saving it says "Do I have a cache for this submodel?" If so, it skips compilation and uses the cached copy.

Sometimes when it's suspected that something is wrong with the geometry, bounding boxes, etc. I'll ask you to do "Data->Purge BSP Cache" which will clear the cache making it recompile on save.

Caveat: PCS2 versions prior to RC2d occasionally would cache when they shouldn't.


PCS2 Documentation Project


I found a bug

Post it on HLP in the PCS2 builds thread.

Collada Importer

In June 2008, a post concerning a cash prize for Collada support in PCS2 was made on the Hard-Light forums. You can view information about the Collada Importer, which has been primarily developed by Spicious and a very eager league of testers.