Skip to content

Conversation

@AdamTadeusz
Copy link
Contributor

@AdamTadeusz AdamTadeusz commented Apr 14, 2025

Description

Changes in NeoAssets

Discord discussion

Change proposal document

Improves the contrast of thermals in darker areas by increasing the base brightness multiplier of thermals so darker colours match the original more closely, and then adding a brightness nerf threshold above which the brightness is toned down so that brighter areas still match the original more closely.

Gave trailparticles and simpleparticles a boolean which, when set to true, will draw those particles as white when using thermals so that they show up in thermals more. This is a novel feature and has some implications on gameplay, from adding more visual clutter to the screen when using thermals, to also improving a players situational awareness by making it easier to see where bullets are landing, highlighting environmental hazards like fire.

Player ragdolls, player gibs, grenade projectiles and weapons now also show up in thermals (the last already did when it was the active weapon of a player), ragdolls gibs and grenade projectiles cool down over time, weapon temperature falls when without an owner (on the floor), and grows to a threshold when carried by a player, increasing even further when fired. This is visible both on the weapon model, and on the world model (in the original this is only visible on the view model). The rate at which objects cool down is fixed for all entities that do so, set at 5 seconds per unit which closely resembles the rate at which corpses cool down in the original (though I only eyeballed this), a weapon that is as hot as possible due to continuous use would cool down fully in 7.5 seconds if then immediately dropped.

(for devs) the temperature field counterintuitively is hotter the lower its value, as this was originally just the lifetime of a player corpse, with a player corpse being colder the longer its lifetime. I may change this if it becomes a problem to understand.

Some notes about the shaders:

  1. I tried the srgb conversion in the thermalvision shader, I don't know if I used it incorrectly but it gave me wildly different results instead of nudging the colour slightly, I think the colours look fine now with the tweaks without the srgb conversion
  2. There is a bunch of changes to the include files for all of the custom neo shaders that I've added to the new buildneoshaders bat file. I didn't make these changes by hand, thus I'm assuming this was done automagically by misyltoads new shader building process? I didn't look into it but everything still works? I should probably see if either misyltoad or anyone else mentioned this in the 2013 source sdk github but those files were mostly copy and paste anyway I don't think we added any custom stuff there so again probably safe to ignore
  3. I also added neo shaders that I wasn't working on in this PR, which I assume as part of some changes to the shader build workflow means those also generated some files that we didn't have / or had but not in the right spot.

Linked Issues

@AdamTadeusz AdamTadeusz marked this pull request as draft April 14, 2025 18:53
@AdamTadeusz AdamTadeusz added the Changes in neoAssets This PR depends on changes in the neoAssets repository. The relevant PR should be in the description label Apr 14, 2025
@AdamTadeusz AdamTadeusz added the Enhancement New feature or request label Apr 22, 2025
@AdamTadeusz
Copy link
Contributor Author

I think people mostly either are happy with the change or want to see it in action, so I'll mark this as ready for review

@AdamTadeusz AdamTadeusz marked this pull request as ready for review April 22, 2025 12:24
@AdamTadeusz AdamTadeusz requested a review from a team May 13, 2025 10:22
@brysondev brysondev requested review from a team, Masterkatze and nullsystem May 15, 2025 03:57
@DESTROYGIRL
Copy link
Contributor

Dummy corpses and server-side corpses also do not have the fade out effect

@AdamTadeusz
Copy link
Contributor Author

Dummy corpses and server-side corpses also do not have the fade out effect

how do I into server side corpse

@DESTROYGIRL
Copy link
Contributor

how do I into server side corpse

I'm pretty sure these are just prop_ragdolls and are created via CBaseCombatCharacter::BecomeRagdoll

@AdamTadeusz
Copy link
Contributor Author

@DESTROYGIRL I think dummy ragdolls are server ragdolls, so this should hopefully have fixed all your issues. Also I had a commit in neoassets that I forgot to push which fixed the name of a material to the one thats used here

@AdamTadeusz
Copy link
Contributor Author

interestingly enough bryson's review wasn't dismissed and the commit is showing up as being committed 2 months ago, probably because the commit was created 2 months ago and only now pushed? Seems like a serious vulnerability if I can create a commit before putting a pr up for review and then wait until I get 2 approvals before quickly pushing the local commit. Or maybe it just looks like that because brysons approvals aren't considered anymore

@DESTROYGIRL
Copy link
Contributor

interestingly enough bryson's review wasn't dismissed and the commit is showing up as being committed 2 months ago, probably because the commit was created 2 months ago and only now pushed? Seems like a serious vulnerability if I can create a commit before putting a pr up for review and then wait until I get 2 approvals before quickly pushing the local commit. Or maybe it just looks like that because brysons approvals aren't considered anymore

I'm pretty sure it's the latter all his reviews are invalid now so I guess they don't get dismissed either

@DESTROYGIRL
Copy link
Contributor

@DESTROYGIRL I think dummy ragdolls are server ragdolls, so this should hopefully have fixed all your issues. Also I had a commit in neoassets that I forgot to push which fixed the name of a material to the one thats used here

You can test the server sided ragdolls if you get threadplate from NeotokyoRebuild/neoAssets#50 and suicide over the elevator
I don't think they're the same thing, but I'll test it out soon

Copy link
Contributor

@DESTROYGIRL DESTROYGIRL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dummy ragdolls worked but not server ragdolls. I got them to show by just copying what you did with C_ClientRagdoll::DrawModel and pasting it into C_ServerRagdoll in ragdoll.cpp

Edit: this will probably make every newly created ragdoll show in thermals though, so every ragdoll placed in the map or created via a template. They are used very rarely in nt maps as a whole so probably not an issue if they fade out before people spawn

@AdamTadeusz AdamTadeusz requested a review from DESTROYGIRL June 30, 2025 09:09
DESTROYGIRL
DESTROYGIRL previously approved these changes Jul 1, 2025
@DESTROYGIRL DESTROYGIRL requested a review from a team July 3, 2025 18:56
Copy link
Collaborator

@blaberry blaberry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving the design doc, read through the code, lgtm.

Copy link
Contributor

@Masterkatze Masterkatze left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@AdamTadeusz AdamTadeusz merged commit 8c50153 into NeotokyoRebuild:master Jul 6, 2025
7 checks passed
@AdamTadeusz AdamTadeusz deleted the 198_hotThings branch July 6, 2025 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes in neoAssets This PR depends on changes in the neoAssets repository. The relevant PR should be in the description Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Corpses do not fade out in thermal vision

5 participants