ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
624 stars 73 forks source link

[TF2] Flesh Shader Parameter Support #6066

Open YoYoBobbyJoe opened 3 weeks ago

YoYoBobbyJoe commented 3 weeks ago

This is a formal request to add the tools necessary to implement the flesh shader. Currently, in TF2, it is impossible to use the $flesh shader parameter as it is intended because the point entity point_flesh_effect_target does not exist in TF2.

This shader parameter would have a very high use case in game modes like PASS Time where indicating the position of the JACK is critical; parenting a point_flesh_effect_target to the JACK and giving the arena's walls a $flesh parameter would help dynamically show where the JACK is around the walls much more clearly.

YoYoBobbyJoe commented 3 weeks ago

I'm no programmer, so feel free to let me know if I'm wrong here, but this seems like it would be a relatively simple implementation if it already exists in previous versions of the engine, and it certainly wouldn't interfere with any other features or mechanics.

Here's an example of something similar to what could be implemented using this shader parameter in PASS Time's sister game, Rocket League: https://youtu.be/cDSX0OT5Bew

Also, if you guys consider implementing this and you're feeling extra super generous, please consider LightmappedGeneric support.

JoriKos commented 3 weeks ago

please consider LightmappedGeneric support

If this can also be separately done you might wanna make it into its own issue, so it may be more visible

pivotman319-owo commented 2 weeks ago

corresponding code can likely be directly borrowed from ep2 via server/hl2/npc_vortigaunt_episodic.cpp lines 3354-3410 and client/episodic/flesh_internal_material_proxy.cpp.

the following shader source files from materialsystem/stdshaders will need to be built as part of the tf codebase: