Linear Space Program
76 subscribers
162 photos
16 videos
11 files
49 links
Побочные эффекты игростроения на хаскеле.

https://icrbow.itch.io/

Чатик: @HaskellGameDev
Дискорд: https://discord.gg/vxpWtBA
Download Telegram
Awww yisss! Everything* I wanted feature-wise from this tileset:
- Map declared in Multicolor SDF (lava is the base layer, everything else is boolean'd together)
- 4-corner Wang tiles extracted from TileSetter project (no, I didn't do those 96 tiles by hand) (package pending)
- Per-tile attributes in the "free" vec4 slot. Here - tile speed (also used for passability).
- A* path-finding with per-tile travel costs (the truck on the screenshot prefers flat terrain as ridges are slow to crawl).

* I have unused alternative biome tiles... to spice up the landscape 😏
1
Screenshot_from_2023-05-08_15-04-49.png
215.7 KB
Visibility is surprisingly tricky. Lots of implementation options, semantic options and how to combine those.
Extracted tile "proxy" data from Tilesetter projects. Makes maps a little less bland even in extreme conditions.
1
This media is not supported in your browser
VIEW IN TELEGRAM
Subtleties of animation…
Had to slice the effect sprite into fg/bg parts and put them on different layers. And synchronize everything manually 😓
🎉2
End of part 1
😱21🔥1🤩1
Been fever-dreamin' some DIY material layering and light sources (before I get to the chapter 7 of the second book).

The amount of noise from emissive materials is.. ugh. Apparently this is why we bother with "light sources" instead of just dropping some light bulbs here and there.
🔥2
The next week, starting from AABBs and BVH

162s -> 26s -> 19s
(for a bit more complex scene)

Cubes are harder than they appear!
Found this little gem while testing UV generation code
🤩3🔥1
So, you're telling me now we're gonna add noise to the scene?
🔥1😱1
BVH is love, BVH is life 📦

Ramped up samples, bounces, and resolution and the rendering time is still less than the first attemts with the linear traversal of all objects in the world.

Converting interaction event into a single-constructor with additive, multiplicative, and scatter components helped a little too.

Also, skipped ray bouncing when attenuation drops below 10-bit range.
The limit practically remains to prevent infinite bounces between perfect mirrors.
1🔥1
The cat is out of the box[Goral84]!

[Goral84]: Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile. 1984. Modeling the interaction of light between diffuse surfaces. SIGGRAPH Comput. Graph. 18, 3 (July 1984), 213–222. https://doi.org/10.1145/964965.808601
🤩2
Spent 2 days trying to figure out a bug. Accidentally fixed something while tidying up the code, don't know what was the problem. I thought I've fixed the real bugs (a few times) and everything should be working, but nooooo....

For some reason C++ code decided to shadow the shit out of its variables and use distance domain where everything but one quantity was in the time domain already. I hate C++ for tutorial code dumps 🚮
😁5
Ray Tracing: The next week
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Sorry for all the numerical instability...

The video illustrates the need for a frame debugger a la RenderDoc.
Bounce depth, hit angles, pixel variance, etc.
🤩2🔥1
Leaves are green
But some of them blue
BVH debugging
I'm in you
1
4844403-objects.png
6.9 MB
130 -> 4844403 objects
7.5s -> 30s rendering time
1