GitHub - adobe/openpbr-bsdf: Adobe's reference implementation of the OpenPBR BSDF
Adobe's reference implementation of the OpenPBR BSDF - adobe/openpbr-bsdf
Adobe just released an Apache-2.0 licensed reference implementation of the OpenPBR Surface standard, extracted from their in-house Eclair renderer.
Neat trick: the reference implementation cross-compiles for C++, GLSL, Cuda, Metal, and Slang!
github.com/adobe/openpb...
09.03.2026 17:01
π 29
π 5
π¬ 0
π 0
Thank you!
23.02.2026 06:39
π 0
π 0
π¬ 0
π 0
__OG_TITLE__
__OG_DESCRIPTION__
In this demo, in addition to shadows from the procedural volume, I also add lighting to the analytical volume when calculating the light from the spot light. @XorDev shader fragcoord.xyz/s/fxz51u1k is from his new FragCoord tool
22.02.2026 21:45
π 1
π 0
π¬ 0
π 0
Procedural + analytic volumes
YouTube video by Vladimir Komarov
I'm continuing to experiment with fully procedural volumetrics. Added interaction with analytical volumes. Because of the difficulty in combining these two different volumes, I had to use dithering to create transparency. www.youtube.com/watch?v=h0b1...
22.02.2026 21:44
π 22
π 2
π¬ 2
π 0
Thanks!
15.02.2026 20:30
π 0
π 0
π¬ 0
π 0
Awesome shaders from @XorDev www.shadertoy.com/view/WXV3zt and www.shadertoy.com/view/3XtXzX
15.02.2026 19:39
π 1
π 0
π¬ 0
π 0
Procedural volumes prototype
YouTube video by Vladimir Komarov
Π‘reated the first prototype of a fully procedural volumetric that can run any custom shader (not just specifying density and phase function) in my path tracer. Problem of intersecting volumes is more difficult to solve here, I'll think about it some more.
www.youtube.com/watch?v=IqGi...
15.02.2026 19:39
π 22
π 1
π¬ 3
π 0
Shaders used shadertoy.com/view/3fKSzc
and shadertoy.com/view/WcKXDV
09.02.2026 20:36
π 1
π 0
π¬ 0
π 0
Support for custom environment light shaders
YouTube video by Vladimir Komarov
Added support for custom environment light shaders/materials in my path tracer and now I can use @XorDev
shadertoy magic as a light source. CDF mip chain for light sampling is rebuilt every frame.
www.youtube.com/watch?v=p_1T...
09.02.2026 20:36
π 22
π 0
π¬ 3
π 0
I just released my video about the engine (and game) I've been working on.
The engine is based on dynamic SDFs, and the video describes how it works and what it makes possible.
Link in the reply!
This is my first YouTube video and it took forever - please repost!
06.01.2026 19:53
π 266
π 51
π¬ 13
π 2
Ever seen one of these, and wondered *why* they work? π§΅
This is a so-called Bitonic sorting network, and the illustrations show the two common ways to implement them. From an implementation point of view the two methods are effectively the same, so which one you pick just comes down to preference.
20.12.2025 00:24
π 39
π 10
π¬ 2
π 0
Our #SIGGRAPHAsia 2025 paper "Sample Space Partitioning and Spatiotemporal Resampling for Specular Manifold Sampling" improves #realtime #caustics rendering.
Project Page: graphics.cs.utah.edu/research/pro...
@daqilin.bsky.social @tizian.bsky.social
14.12.2025 22:12
π 52
π 12
π¬ 1
π 0
The z-buffer and depth testing (aka z-testing) have been the dominant way of hidden surface elimination for over 50 years, introduced but not implemented in W. StraΓer's PhD thesis in 1974, and actually implemented in Ed Catmull's PhD thesis in the same year. 1/4
30.11.2025 15:51
π 54
π 11
π¬ 5
π 0
I push to GPU array of instances info including double3 pos. Every frame I fill bvh instances with float3 (camera relative) from global double3 pos buffer in compute shader and rebuild tlas relative to camera. I do it for all tlas bvhs. Also I do some work on CPU for other structures e.g. light tree
25.11.2025 10:16
π 2
π 0
π¬ 0
π 0
Thank you! I thought about "frame selected" many times while recording the videoπ
23.11.2025 14:12
π 1
π 0
π¬ 1
π 0
Double support for positions
YouTube video by Vladimir Komarov
I finally added double support for positions in my engine and I can now draw objects at enormous distances from each other. This only cost ~15% scene graph update perf on CPU and it's almost free for GPU since everything is drawn relative to camera using float
www.youtube.com/live/eYZ6wS9...
22.11.2025 23:56
π 31
π 0
π¬ 2
π 0
Thank you! I don't have an end goal yet but there is a bunch of functionality I want to implement
06.10.2025 20:56
π 0
π 0
π¬ 0
π 0
Async scene loading
YouTube video by Vladimir Komarov
Finally got around to implementing async scene loading in my engine. DX12 async compute for BLAS + background threads for bvh command list and resource loading. A lot of pain with synchronizing all of this and the ability to delete objects during loading
www.youtube.com/watch?v=kkWa...
05.10.2025 16:19
π 17
π 0
π¬ 1
π 0
I store the texture with additional roughness separately with BC4 compression. Unfortunately in the case of a material with a custom shader additional complications are added, for example when a normal blend is needed.
05.08.2025 19:15
π 3
π 0
π¬ 1
π 0
Because of texture streamer it became necessary to almost always use mip maps, so I had to do basic normal map filtering, otherwise the surfaces become too shiny and flat. Only roughness without anisotropy for now. Images in order: mips disabled/enabled/+filtering. More below...
05.08.2025 19:15
π 10
π 0
π¬ 1
π 0
And in this case you don't need sampler feedback, min mip textures and tile management.
20.07.2025 19:47
π 0
π 0
π¬ 0
π 0
In the end I decided to try simple mips streamer and it works much better and memory savings are almost the same (because for tiled mode I load a bit more tiles than necessary, otherwise sometimes there are filtering artifacts in the process of loading new tiles).
20.07.2025 19:47
π 3
π 0
π¬ 1
π 0