Heat Vision using Neon

So I had a neat little concept I thought neon was capable of and it turned out pretty nicely.
Someone needs to make a game like this :stuck_out_tongue:

Skip to 0:20 for heat vision:
Also note how you are able to see the NPC through the thin wooden wall

awesome sauce

Share demo place with us? :smiley:

When Iā€™ll finish an actually playable non-hacky version

Iā€™ve always loved how humans portray ā€œHotā€ with ā€œCoolā€ colors, and ā€œCoolā€ with ā€œHot colorsā€.

In the real world, Blue requires a much higher frequency of light, which is hotter. Red colors are much cooler then blues.

[quote] Iā€™ve always loved how humans portray ā€œHotā€ with ā€œCoolā€ colors, and ā€œCoolā€ with ā€œHot colorsā€.

In the real world, Blue requires a much higher frequency of light, which is hotter. Red colors are much cooler then blues. [/quote]

wat uh yeah sure but also found in the real world:

I was able to accomplish something similar to this for The Stalker: Reborn.
The Stalker has the ability to see players through walls.

Every time the RenderStepped event fires, I take the position of the each limb (defined as pos), and convert it to a screen position (defined as toViewport), and then I convert that screen position into a world position (defined as toWorld). If toWorld is visible on the camera, I calculate the scale of the part at a depth of 0.75 studs.

The result is an extremely tiny character which is really close to the camera, which almost perfectly resembles the character being viewed through the wall.

Unfortunately, this effect becomes very costly to performance when there are 9 other people on the camera (it can lead to my frame-rate dropping to around 30 :()

Hereā€™s a video of the effect from an earlier prototype of the game:

3 Likes

errrā€¦ Your framerate dropped to 30? I think you were doing something wrong.

Yeah, probably.
I think the biggest problem is that Im updating it per part instead of per character, so Im doing probably 6x more calculations than necessary.
Iā€™ll try to rework the code to change this.

Nice effect though. Well done.

Too bad it has no effect on people with quality settings lower than 10 :frowning:

Yeah, probably.
I think the biggest problem is that Im updating it per part instead of per character, so Im doing probably 6x more calculations than necessary.
Iā€™ll try to rework the code to change this.[/quote]

Instead of updating it per render step, try to only update when they are in your camera frame (Iā€™m assuming you already did this), and update if theyā€™re walking (use the torsoā€™s velocity or something).

Yeah, probably.
I think the biggest problem is that Im updating it per part instead of per character, so Im doing probably 6x more calculations than necessary.
Iā€™ll try to rework the code to change this.[/quote]

Instead of updating it per render step, try to only update when they are in your camera frame (Iā€™m assuming you already did this), and update if theyā€™re walking (use the torsoā€™s velocity or something).[/quote]ā€™

If the Changed event would actually fire when the Velocity changed, that would we helpful.
At the moment it doesnā€™t.

@Clone

Why not only update every so many frames?

[quote] @Clone

Why not only update every so many frames? [/quote]

A delay of one frame is very noticeable in motion, a delay of three frames for motion would be a sin, his point with the Velocity was that you could tell when motion was occurring or not, and could render it then so you didnā€™t have the downside.

[quote] @Clone

Why not only update every so many frames? [/quote]

Because if I donā€™t, the perspective illusion breaks because its not being viewed from the right angle.
Thereā€™s no reliable way for me to check when positions and stuff are changing Iā€™m afraid.

This looks amazing.