Major Pathos update, support for lightstyles, etc

Posted 2 months ago2024-10-12 15:11:05 UTC
I just wanted to create this journal to let everyone know that a new Pathos update has dropped. I've added a ton of new features, but mainly what a lot of people have been wanting to have, and that is support for the type of animated and switchable lights you had in Quake 1 and Half-Life! Yes, you no longer need to use env_dlight and env_spotlight to achieve this, but instead this is natively supported by Pathos now.

A list of the changes made:
- Merged custom normalmap feature from PR #43.
- Reformat PR #43 changes to be in line with Pathos coding standards.
- Fixed issue in PR #43 where the last set current water pointer would override any custom water normalmap textures.
- Merged "pos" and "maps" command from PR #38.
- Reformat PR #38 to be in line with Pathos coding standards.
- Fixed PR #38 to report player position in world, instead of the last view origin used for rendering.
- Implementation of Pathos BSP Version 2 format.
- Custom storage for ambient, diffuse light data, and light vectors.
- Add data variable in face data for potential lightmap scaling feature in the future.
- Add data variable in face data for potential smoothing groups feature in the future.
- Support added for Half-Life 1-type animated lights.
- Extend light and light_spot entities to support the animated/switchable lighting feature.
- Add FGD entries for styles to light and light_ entities.
- Optimize CBasicDraw class by adding support for rendering quads using indexes.
- Added func_particleblocker entity to specify select brush entities that particles can collide with.
- Modify ALD format to support animated lights along with bump mapping data generation.
- Modify renderer to support bump map data generation together with animated lights.
- Added function header comments in some files.
- Extension of file interface by adding a function to query the game folder name.
- Cleanup of model cache code that identifies and loads BSP files.
- Optimized beam rendering and vapor trail beam code to be more performant by rendering them as quads with indexes.
- Optimize vapor trail beam lighting retrieval code by only doing it once per a given distance.
- Optimized lightmap generation code by extending the AllocBlock code to extend both height and width from now on.
- Added debug cvar to enable dumping of lightmaps generated by BSP renderer.
- Added game_staminamodifier entity.
- Modify worldspawn entity to now send lightstyles to client.
- Fix worldspawn not calling base class's spawn function in derived function.
- Fix CGLSLShader not creating logs file folder when an error occurs, causing logs not to be created.
- Add bspconvert tool, which can convert Pathos V1 BSP files to Pathos V2 version.
- Extend entitytest2 map to showcase switchable lights.
- Move some BSP processing code to shared file.
- Move lightstyle code in renderer out of dynamic light class and into it's own.
- Optimize on lightstyle array code.
- Add compatibility code for V30 BSP and Pathos V1 BSP to support legacy bump map data storage solution.
- Clean up struct usage in BSP loading code to specifically use named structures for V30 and Pathos V1 BSP.
- Move lightstyle array code out of CEnvDLight and into server-side lightstyle class.

You can find the latest commits here:
- For Pathos: https://github.com/TheOverfloater/pathos-public/commit/5ea8844617eb125175550edbe34cb59898fc7acf
- For Pathos's version of VHLT: https://github.com/TheOverfloater/pathos-vhlt/commit/b59bac0943923d919059353bb725ee51b3f36b2f

2 Comments

Commented 1 month ago2024-10-19 05:28:16 UTC Comment #106456
Nice! I love the work you are putting into this!
I feel like, eventually, it'll be something that I can work up the courage to use and modify. :glad:
Commented 1 month ago2024-10-20 18:12:27 UTC Comment #106459
I'm glad you like the work being put into Pathos, remarks like these make it worthwhile to continue work on it.

You must log in to post a comment. You can login or register a new account.