by gdm413229 » Mon Jun 17, 2019 8:16 am
By default, ZDBSP doesn't build REJECT tables due to the modern machines being much stronger than the i486 chips used way back in '94. One handy feature for ZDBSP is a proper REJECT builder for slaughtermap authors due to the ridiculously high monster count and for authoring maps intended for the vanilla DOOM executable. [vanilla DOOM can't load an incorrectly-sized REJECT table and using a zero-filled REJECT will be slow on monster LoS calculations!]
REJECT tables could be built using a variant of GZDoom's BLOCKMAP-based line-of-sight algorithm. The variant used to build the REJECT tables will use an imaginary surveyor whose only purpose is to fill out the table depending on what sector the surveyor is on, and all the sectors the surveyor sees in a 360 degree full circle. The surveyor uses a brute-force way of getting the REJECT tables correct with the BLOCKMAP-based LoS algorithm of ZDoom family ports. Certain REJECT builders will traverse the BSP tree for line-of-sight determination, which is slow and inefficient compared to the BLOCKMAP-based LoS system in ports from the ZDoom family. The finishing condition of the REJECT building process is governed by comparing how many sectors the imaginary surveyor has been in to the map's sector count, and the process is finished when the two values are equal.
REJECT tables in GZDoom will have performance benefits for high-sector slaughtermaps as the sheer sector and monster count (5 to 8 figure sector count and many legions of monsters!) will bring the BLOCKMAP-based LoS algorithm to it's knees.
The REJECT builder is optional and is unused by default. To activate the REJECT builder, pass the
command line switch to ZDBSP alongside your target WAD file.
By default, ZDBSP doesn't build REJECT tables due to the modern machines being much stronger than the i486 chips used way back in '94. One handy feature for ZDBSP is a proper REJECT builder for slaughtermap authors due to the ridiculously high monster count and for authoring maps intended for the vanilla DOOM executable. [vanilla DOOM can't load an incorrectly-sized REJECT table and using a zero-filled REJECT will be slow on monster LoS calculations!]
REJECT tables could be built using a variant of GZDoom's BLOCKMAP-based line-of-sight algorithm. The variant used to build the REJECT tables will use an imaginary surveyor whose only purpose is to fill out the table depending on what sector the surveyor is on, and all the sectors the surveyor sees in a 360 degree full circle. The surveyor uses a brute-force way of getting the REJECT tables correct with the BLOCKMAP-based LoS algorithm of ZDoom family ports. Certain REJECT builders will traverse the BSP tree for line-of-sight determination, which is slow and inefficient compared to the BLOCKMAP-based LoS system in ports from the ZDoom family. The finishing condition of the REJECT building process is governed by comparing how many sectors the imaginary surveyor has been in to the map's sector count, and the process is finished when the two values are equal.
REJECT tables in GZDoom will have performance benefits for high-sector slaughtermaps as the sheer sector and monster count (5 to 8 figure sector count and many legions of monsters!) will bring the BLOCKMAP-based LoS algorithm to it's knees.
The REJECT builder is optional and is unused by default. To activate the REJECT builder, pass the [code]-true-reject[/code] command line switch to ZDBSP alongside your target WAD file.