"I'll simply use Jolt Physics for this project", she says as she proceeds to write the "physics" from scratch instead.

I'll post a video later, but my splat renderer thingy now has a rudimentary character controller and ricochet :3

alright, here it is! my splat renderer, now interactive! and mangled by whatever video encoding Windows uses by default for screen recordings

CW strobing

I put it up on itch if anyone wants to mess around with it https://aeva.itch.io/vroom
Star Machine Experiment #10 by Aeva

Zip around an experimental rendering thingy.

itch.io

I recently overhauled my renderer to use fixed point for world space coordinates, and here's a speed test showing what that gets me :3

In this video, the camera immediately accelerates up to 600 miles per hour and holds that speed for a moment, then briefly accelerates up to 600 miles per second, and then slows rapidly back to a resting speed.

CW strobing

@aeva now figure out how to GI a world that big :P
@pupxel well, it's already a surfel renderer, so
@aeva *takes notes*
@pupxel if I were to add GI to the renderer, I'd probably do something similar to EA's method, but I probably wont bother with GI because I don't really need it for the game I'm making.
@aeva *nods and scribbles*
@pupxel are you familiar with surfel GI?
@aeva nope! I'm baby :P
SIGGRAPH 21: Global Illumination Based on Surfels

The SIGGRAPH presentation by Henrik Halen and Andreas Brinck presents global Illumination Based on Surfels (GIBS) – a solution for calculating indirect diffuse illumination in real-time.

Electronic Arts Inc.

@pupxel the gist is you place ephemeral surfels in screen space but attach them to world coordinates so they can remain stationary. These are then GI probes which propagate bounce lighting every frame. Thus, infinite* bounce lighting!

*with convergence time

@aeva 30min into the video and they already reference like 100 papers welp
@aeva my brain hurts lol
@pupxel cool technique yeah?
@aeva yeah but I don't got the 50 years to git gud lol
@pupxel it's a good thing they wrote down how to do it then :3
@aeva girl you should get some sleep :3

@pupxel !!!

I knew I was forgetting something

@aeva @pupxel your surfels wouldn't benefit a lot from temporal accumulation, though! πŸ˜…
@jon_valdes @pupxel "whoops all camera cuts" lol
@aeva @pupxel thinking about this, every temporally accumulated technique would be pointless here (TAA, GTAO, etc). Even SSR would fail to reproject anything when the motion vectors are of length 10^LOL

@aeva

Very cool reindeer, does santa know?

Santa has many reindeer, but none flashier than Rudolph, like this one.

@aeva
When does reindeer go splat?
@ipd same as a regular deer. car
@aeva
If that is an image of reindeer go splat, is very psychodelique.
@aeva when this renderer hits 600 miles per hour, you're gonna see some serious sh*t
@aeva Hmm. That's about 0.003*c, would there be enough blue shift to cause noticeable color changes of approaching objects?
@azonenberg oh!! That's a good idea! I hadn't considered adding blue shift :O

@aeva The challenge is that doing it right would require hyperspectral modeling of object colors (RGB wouldn't be enough).

Years ago in an undergraduate computer graphics class I played around with a volumetric flame renderer that used spectrally accurate representations of blackbodies, it's fun but definitely not trivial.

@azonenberg that sounds awesome though

@aeva Yeah.

The best idea I have is to first do your normal material shading, calculate the combined emitted/specular/diffuse etc intensity as a function of wavelength, then displace that resulting curve by the red shift and calculate the final RGB color as a weighted sum of RGB values for visible wavelengths.

@aeva Good stuff! For easier debugging, make sure by default you start the camera half-way to infinity, and also start the time 8 hours in.

If you start both near the origin, it just hides bugs.

@TomF That's why the warp speed jump is there right now, it always happens on startup. I'll switch it to a fixed, arbitrarily large offset once I'm bored of it. I need to tear out the floating point time yet, so that's still the wrong way for now >_>
@aeva Hmm, Vivaldi is refusing to let me download it, it says there's a virus in the zip.
(Apparently Trojan:Win32/Wacatac.B!ml according to MS Defender)
@kojack It's a false positive unless itch is tampering with downloads. The source code is here btw https://github.com/Aeva/tangerine/tree/chemical_lemonade/10_surfel_spray
tangerine/10_surfel_spray at chemical_lemonade Β· Aeva/tangerine

🍊. Contribute to Aeva/tangerine development by creating an account on GitHub.

GitHub
@kojack The program is a simple monogame game. It only accesses the file system to read shaders, and it does not access the network or anything like that. Modern antivirus software tends to be machine learning based with popular software exempted by hash, so I'm not really sure what I can really do about it :(
@aeva Yep, I assumed it was a false positive, just letting you know windows is blocking it.
@kojack I appreciate you letting me know. I'm going to look into submitting a false positive report later. Apparently this is a common problem with .net πŸ™ƒ https://github.com/dotnet/runtime/issues/33745
/p:PublishTrimmed=true activates Windows Defender with a false-positive. Β· Issue #33745 Β· dotnet/runtime

On NET.Core 3.1, Windows 10, VS 2019: /p:PublishTrimmed=true will cause Windows Defender to go berserk on my machine. /p:PublishTrimmed=false does not trigger any unexpected behavior. I do not have...

GitHub
@aeva Runs very well on my laptop when I turn off Defender. :)

@aeva @kojack

Yeah it's *super* fun when you're distributing expensive commercial software and it gets flagged as being a Trojan due to some random hash matching up.

Just oodles of good times, because most AV software is a total crock of shit.

Only way I know of to (mostly) prevent it is going to digital signing of the executable, which is also a huge pain.

@CliftonR @kojack πŸ™ƒ there's apparently some way to report false positives but it has to be done per anti-virus vendor

@aeva @kojack

And mostly it's through filling out vendors' web forms by hand, all different. It "does not scale" as the saying goes.

@aeva @kojack program on linux, no dumb virus scanners there yet.

@aeva @kojack thank you for sharing the branch! I had a look before but I couldn't find the right one

Looks very cool, I'm looking forward to the Honda Civic!