<https://twitter.com/sebaaltonen/status/1300063944...
# of-graphics
g
https://twitter.com/sebaaltonen/status/1300063944846069761?s=21 thread/quote tweet rabbit hole of how the game engine for Dreams works with SDF’s and a lot of clever optimization
s
Good thread, I've been meaning the do a write up on various approaches non-triangle based renderers use
🍰 3
Useful advice for those of you using Vulkan that want high performance renderers https://zeux.io/2020/02/27/writing-an-efficient-vulkan-renderer/
d
Would anybody like to share links for "non-triangle renderers" that are also open source?
s
I will later
Do you want implementations or papers or both?
d
Thanks Scott. I want both implementations and papers. Whatever you've got, really.
s
Clayxels (https://assetstore.unity.com/packages/templates/systems/clayxels-165312) is an awesome Dreams inspired renderer for Unity. It's currently on sale as part of the Unity asset store Humble Bundle (https://www.humblebundle.com/software/unity-games-and-game-dev-assets-software) Speaking of Dreams there are quite a few talks about the technical implementation of Dreams. Starting with Learning from Failure from Siggraph 2015 (http://advances.realtimerendering.com/s2015/AlexEvans_SIGGRAPH-2015-sml.pdf), video from Ignite here (

https://www.youtube.com/watch?v=u9KNtnCZDMI

). This is a great talk because its one of the few that shows all of the various "failed" implementations and gives them equal time. The final one he presents as the answer is not actually the shipped Dreams renderer, and they shipped something that incorporates many of the ideas in the renderer. They also did a deep technical dive explaining Dream's architecture (not only rendering) here

https://www.youtube.com/watch?v=1Gce4l5orts

. This style of renderer takes a list of implicit signed distance field edits (signed distance function + operator, roughly the same as this list here https://iquilezles.org/www/articles/distfunctions/distfunctions.htm, but using max norm instead of L2 norm), evaluates them hierarchically, and caches the result in 8x8x8 volumes, basically building an octree These volumes are renderer as cubes, and the cached sdf is raymarched. In order to get the painterly look they also generate point splats at the boundary of the surface. Clayxels does something much closer to the Dream's renderer from the paper, and only splats points, no raymarching. A simple (CPU) example is here https://github.com/gheshu/Sculpt
👍 3