3 ms·
From the paper: "We use the rasterizer as a potentially-visible set optimization to iterate only over pixels for which rays might intersect a voxel, and then ex
by gavanwoolery 8y ago
From the paper: "We use the rasterizer as a potentially-visible set optimization to iterate only over pixels
for which rays might intersect a voxel, and then execute a small ray tracer in the
pixel shader. That is, we “splat” billboards that give coarse visibility and compute
exact visibility in a pixel shader. This works for any pinhole perspective projection,
including eye rays and shadow rays, so we use it for the shadow map rendering pass
as well"
Neat - I used a similar technique [1] in the last iteration of Voxel Quest, but I only rasterized single points/pixels then raytraced them into filled cubes (was not efficient other than on fill rate). However I did not invent the technique (I'm not sure who did, but I first got the idea from talking to Florian Boesch [2])
[1] https://twitter.com/gavanw/status/717265068086308865 https://twitter.com/gavanw/status/717265068086308865
[2] http://codeflow.org http://codeflow.org
- billconan 8y agoI really liked the concept of Voxel Quest. did you stop the project? recently I saw two posts related to volume rendering, this and dreamworks' VDB. I immediately thought about voxel quest. I liked it supporting smooth surfaces, not like minecraft.
- gavanwoolery 8y agoStill working on it actively, although in the past two years I also dabbled with two other side projects (a node js / web gl / electron side-scroller game and a compiler). Progress is very slow due to real-life constraints but at least steady now. I will be presenting the newest progress soon. :)
- fesoliveira 8y agoWow, I am really happy to hear that! I have been following Voxel Quest for a few years now, and I was really sad when you stopped working on the project. Looking forward to see what are your new developments!
- edroche 8y agoAs an original KS backer, that is awesome news to hear! You produced a wonderful code base and I learned a ton from your blog posts and streams. Any thoughts of streaming/blogging about the progress in the future?
- gavanwoolery 8y agoI will definitely blog soon, may stream soon as well although it would be more of a coding stream than anything else.
- pcwalton 8y ago> We use the rasterizer as a potentially-visible set optimization to iterate only over pixels for which rays might intersect a voxel, and then execute a small ray tracer in the pixel shader. I was just thinking about doing this last weekend (in the context of drawing exact reflections off reflective surfaces defined by arbitrary meshes). Nice to see it actually works, at least for voxels! The fact that raytracing (onto a 2D plane) and rasterization are essentially isomorphic to one another is a powerful observation.
- pwang 8y ago> The fact that raytracing (onto a 2D plane) and rasterization are essentially isomorphic to one another is a powerful observation. Hasn't this been a pretty well-known perspective (no pun intended) for a couple of decades now?
- pcwalton 8y agoOf course, but it's only relatively recently that we've had the graphics APIs to make full use of that observation.
- vanderZwan 8y ago<notices username> Will this somehow turn into faster CSS and/or SVG render times for Firefox? :)