Moments in Graphics
http://momentsingraphics.de/
A blog by Christoph Petersen-usThu, 02 Nov 2023 23:29:22 -0000http://backend.userland.com/rssBlogFinding Real Polynomial Roots on GPUsA recent paper of mine performs an intersection test in a ray tracing shader. To this end, I had to compute all real roots of a polynomial of moderately high degree (10 to 26). Overall, computing polynomial roots is an extremely well-studied problem where many highly accurate and reliable methods are available [Press2007]. However, implementations of such methods on GPUs are rarely found. After experimenting a bit with different options, I ended up implementing a recent polynomial solver proposed by Cem Yuksel [Yuksel2022]. I wrote my implementation from scratch in GLSL. A naive implementation has many nested loops or recursions and accesses arrays using loop counters. That is a recipe for register spilling, which is devastating to the performance of the shader. After a bit of puzzling, I ended up with an implementation that avoids this problem entirely. You can take a look at my implementation on Shadertoy and read on to learn more about how it works, why register spilling is an issue and how I resolved it.Tue, 31 Oct 2023 00:00:00 -0000
http://momentsingraphics.de/GPUPolynomialRoots.html
http://momentsingraphics.de/GPUPolynomialRoots.htmlBlogRay Tracing Spherical Harmonics GlyphsSpherical harmonics glyphs are an established way to visualize high angular resolution diffusion imaging data. Starting from a unit sphere, each point on the surface is scaled according to the value of a linear combination of spherical harmonics basis functions. The resulting glyph visualizes an orientation distribution function. We present an efficient method to render these glyphs using ray tracing. Our method constructs a polynomial whose roots correspond to ray-glyph intersections. This polynomial has degree 2k+2 for spherical harmonics bands 0,2,...,k. We then find all intersections in an efficient and numerically stable fashion through polynomial root finding. Our formulation also gives rise to a simple formula for normal vectors of the glyph. Additionally, we compute a nearly exact axis-aligned bounding box to make ray tracing of these glyphs even more efficient. Since our method finds all intersections for arbitrary rays, it lets us perform sophisticated shading and uncertainty visualization. Compared to prior work, it is faster, more flexible and more accurate.Fri, 01 Sep 2023 00:00:00 -0000
http://momentsingraphics.de/VMV2023.html
http://momentsingraphics.de/VMV2023.htmlPublicationReal-Time Ray Tracing of Micro-Poly Geometry with Hierarchical Level of DetailIn recent work, Nanite has demonstrated how to rasterize virtualized micro-poly geometry in real time, thus enabling immense geometric complexity. We present a system that employs similar methods for real-time ray tracing of micro-poly geometry. The geometry is preprocessed in almost the same fashion: Nearby triangles are clustered together and clusters get merged and simplified to obtain hierarchical level of detail (LOD). Then these clusters are compressed and stored in a GPU-friendly data structure. At run time, Nanite selects relevant clusters, decompresses them and immediately rasterizes them. Instead of rasterization, we decompress each selected cluster into a small bounding volume hierarchy (BVH) in the format expected by the ray tracing hardware. Then we build a complete BVH on top of the bounding volumes of these clusters and use it for ray tracing. Our BVH build reaches more than 74% of the attainable peak memory bandwidth and thus it can be done per frame. Since LOD selection happens per frame at the granularity of clusters, all triangles cover a small area in screen space.Thu, 01 Jun 2023 00:00:00 -0000
http://momentsingraphics.de/HPG2023.html
http://momentsingraphics.de/HPG2023.htmlPublicationPath tracing workshopNow that GPUs have ray tracing units, real-time path tracing is coming into reach. Applications beyond movie rendering and baking embrace it, and therefore more people need to know about it. At Intel, I recently offered a path tracing workshop to educate a broad audience of engineers on basics of the topic. I am happy to announce that we decided to make this workshop publicly available. If you know a few math and programming basics, you can watch 76 minutes of videos and solve some exercises on ShaderToy as you go. In the end, you will have written your own ray tracer and a path tracer on top of it! I simplified things as much as possible, but you will really write all key aspects of the path tracer and understand why they work.Tue, 20 Dec 2022 00:00:00 -0000
http://momentsingraphics.de/PathTracingWorkshop.html
http://momentsingraphics.de/PathTracingWorkshop.htmlBlogTemporally Stable Real-Time Joint Neural Denoising and SupersamplingRecent advances in ray tracing hardware bring real-time path tracing into reach, and ray traced soft shadows, glossy reflections, and diffuse global illumination are now common features in games. Nonetheless, ray budgets are still limited. This results in undersampling, which manifests as aliasing and noise. Prior work addresses these issues separately. While temporal supersampling methods based on neural networks have gained a wide use in modern games due to their better robustness, neural denoising remains challenging because of its
higher computational cost.Fri, 01 Jul 2022 00:00:00 -0000
http://momentsingraphics.de/HPG2022.html
http://momentsingraphics.de/HPG2022.htmlPublicationMy toy renderer, part 5: AnimationsI was not planning to have a fifth part in this series about my toy renderer but there were some interesting changes for our paper on vertex-blend attribute compression. The renderer now supports animations with linear vertex-blend animation (also known as skinning). That means there is a skeleton consisting of animated bones and those influence the mesh. I had to export these animations from Blender to my renderer and I wanted to keep it simple. Thus, the Blender exporter just dumps all bone transforms for each frame into one big texture that vertex shaders read directly. And as for other parts of the file format, there is some reasonable compression.Wed, 01 Jun 2022 00:00:00 -0000
http://momentsingraphics.de/ToyRenderer5Animations.html
http://momentsingraphics.de/ToyRenderer5Animations.htmlBlogPermutation Coding for Vertex-Blend Attribute CompressionCompression of vertex attributes is crucial to keep bandwidth requirements in real-time rendering low. We present a method that encodes any given number of blend attributes for skinning at a fixed bit rate while keeping the worst-case error small. Our method exploits that the blend weights are sorted. With this knowledge, no information is lost when the weights get shuffled. Our permutation coding thus encodes additional data, e.g. about bone indices, into the order of the weights. We also transform the weights linearly to ensure full coverage of the representable domain. Through a thorough error analysis, we arrive at a nearly optimal quantization scheme. Our method is fast enough to decode blend attributes in a vertex shader and also to encode them at runtime, e.g. in a compute shader. Our open source implementation supports up to 13 weights in up to 64 bits.Sun, 01 May 2022 00:00:00 -0000
http://momentsingraphics.de/I3D2022.html
http://momentsingraphics.de/I3D2022.htmlPublicationImage-based Visualization of Large Volumetric Data Using MomentsWe present a novel image-based representation to interactively visualize large and arbitrarily structured volumetric data. This image-based representation is created from a fixed view and models the scalar densities along each viewing ray. Then, any transfer function can be applied and changed interactively to visualize the data. In detail, we transform the density in each pixel to the Fourier basis and store Fourier coefficients of a bounded signal, i.e. bounded trigonometric moments. To keep this image-based representation compact, we adaptively determine the number of moments in each pixel and present a novel coding and quantization strategy. Additionally, we perform spatial and temporal interpolation of our image representation and discuss the visualization of introduced uncertainties. Moreover, we use our representation to add single scattering illumination. Lastly, we achieve accurate results even with changes in the view configuration. We evaluate our approach on two large volume datasets and a time-dependent SPH dataset.Fri, 01 Apr 2022 00:00:00 -0000
http://momentsingraphics.de/PacificVis2022.html
http://momentsingraphics.de/PacificVis2022.htmlPublicationfma: A faster, more accurate instructionWhen people look at my shader code, one of the most frequently asked questions is why I use the GLSL fma instruction (or its HLSL equivalent mad) so frequently. In spite of the punny title of this post, fma actually stands for fused multiply-add, i.e. it implements the formula fma(a,b,c)=a*b+c. It is faster than separate multiplication and addition because on most CPUs and GPUs it counts as one instruction. It also introduces less rounding error. The real question is whether you should rely on the compiler to use it as appropriate or not. This post explains why I don't and shows a few neat numerical tricks that benefit from fma.Wed, 01 Dec 2021 00:00:00 -0000
http://momentsingraphics.de/FMA.html
http://momentsingraphics.de/FMA.htmlBlogMatplotlib slidesI used to make my slides in Powerpoint. For my presentations at SIGGRAPH 2021 and HPG 2021, I tried something different. The whole slide deck is one big interactive matplotlib plot. Every bit is scripted in Python. They feature lots of animated and interactive plots. I am satisfied with how this experiment worked out. Lazily hacking together slides works better with Powerpoint but if you want a high-quality presentation with the best possible illustrations of mathematical concepts, this approach makes sense. This blog post provides some details about how I did it.Sat, 07 Aug 2021 00:00:00 -0000
http://momentsingraphics.de/MatplotlibSlides.html
http://momentsingraphics.de/MatplotlibSlides.htmlBlogShading with polyhedral lightsIn the past winter term at Karlsruhe Institute of Technology, I had the pleasure of supervising Bastian Urbach's bachelor thesis. His topic has been the generalization of methods for shading with polygonal lights to polyhedral lights. He has been highly motivated and creative. The result is an efficient method for GPU-accelerated real-time shading with convex or non-convex polyhedral lights (see Figure 1). Shading itself works either through linearly transformed cosines [Heitz2016] or through Monte Carlo integration. And it's implemented in Unity. Both the bachelor thesis and the implementation are now freely available on Bastian's blog. If that sounds interesting, go ahead and read his short blog post or the whole thesis. It's much like a concurrent work published recently at EGSR [Aakash2021] but there are pros and cons for both techniques. The blog post discusses those as well.Wed, 28 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/PolyhedralLights.html
http://momentsingraphics.de/PolyhedralLights.htmlBlogMy toy renderer, part 4: Ray tracingPart 4 of this series about my toy renderer is all about ray traced shadows. In particular, I discuss direct lighting with polygonal and linear lights for diffuse and specular surfaces. I have described the corresponding methods in two recent research papers but this post is written with a broader audience in mind. While the papers focus on the mathematical derivation of the algorithms, this post starts with some basics of physically-based rendering and explains in detail why there is a need for these algorithms and how they can be used in a renderer.Sun, 25 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/ToyRenderer4RayTracing.html
http://momentsingraphics.de/ToyRenderer4RayTracing.htmlBlogMy toy renderer, part 3: Rendering basicsPart 3 of this series about my toy renderer covers some basic techniques for rendering. My renderer does nothing fundamentally new on this front but some choices are a bit exotic. It is ultimately about real-time ray tracing, so everything should play nicely with that. Besides I want it to be slick and fast. Disregarding dear ImGui, the whole thing only makes two draw calls per frame. It uses a visibility buffer [Burns2013] and the same reflectance model for all surfaces [Lagarde2015]. A 3D table of linearly transformed cosines [Heitz2016] approximates this reflectance model when needed. It almost has a Shadertoy vibe since the bulk of all work happens in a single fragment shader for the shading pass. To get stratified random numbers, it uses a recent work [Ahmed2020] for 2D polygonal lights and my blue noise textures for 1D linear lights.Fri, 16 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/ToyRenderer3RenderingBasics.html
http://momentsingraphics.de/ToyRenderer3RenderingBasics.htmlBlogMy toy renderer, part 2: Scene managementPart 2 of this series about my toy renderer is all about scene data. The requirements are fairly lax, since I only care about static triangle meshes. For the most part, I want to be able to render the ORCA assets and a couple of scenes from Blendswap. However, I emphasized how much long compile times harm productivity in the previous post. All of that applies equally to load times since they interrupt work in a similar way. I want to be able to load huge scenes within seconds and I want to render them quickly. Besides results must be reproducible.Fri, 02 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/ToyRenderer2SceneManagement.html
http://momentsingraphics.de/ToyRenderer2SceneManagement.htmlBlogBRDF Importance Sampling for Polygonal LightsWith the advent of real-time ray tracing, there is an increasing interest in GPU-friendly importance sampling techniques. We present such methods to sample convex polygonal lights approximately proportional to diffuse and specular BRDFs times the cosine term. For diffuse surfaces, we sample the polygons proportional to projected solid angle. Our algorithm partitions the polygon suitably and employs inverse function sampling for each part. Inversion of the distribution function is challenging. Using algebraic geometry, we develop a special iterative procedure and an initialization scheme. Together, they achieve high accuracy in all possible situations with only two iterations. Our implementation is numerically stable and fast. For specular BRDFs, this method enables us to sample the polygon proportional to a linearly transformed cosine. We combine these diffuse and specular sampling strategies through novel variants of optimal multiple importance sampling. Our techniques render direct lighting from Lambertian polygonal lights with almost no variance outside of penumbrae and support shadows and textured emission. Additionally, we propose an algorithm for solid angle sampling of polygons. It is faster and more stable than existing methods.Thu, 01 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/Siggraph2021.html
http://momentsingraphics.de/Siggraph2021.htmlPublicationBRDF Importance Sampling for Linear LightsWe introduce an efficient method to sample linear lights, i.e. infinitesimally thin cylinders, proportional to projected solid angle. Our method uses inverse function sampling with a specialized iterative procedure that converges to high accuracy in only two iterations. It also allows us to sample proportional to a linearly transformed cosine. By combining both sampling techniques through suitable multiple importance sampling heuristics and by using good stratification, we achieve unbiased diffuse and specular real-time shading with low variance outside penumbrae at two samples per pixel. Additionally, we provide a fast method for solid angle sampling.Thu, 01 Jul 2021 00:00:00 -0000
http://momentsingraphics.de/HPG2021.html
http://momentsingraphics.de/HPG2021.htmlPublicationMy toy renderer, part 1: Keep it simplePart 1 of this series about my toy renderer covers the most fundamental design decisions. Over the years, I have written many renderers and for a long time their complexity kept growing. This time, I took the opposite route. I wanted to maximize the fraction of code that implements crucial functionality rather than wasting my time on bloaty infrastructure. The code that I wrote (excluding shaders) has 7575 lines at 345 kB. Not exactly a 4k intro but much smaller than any other real-time renderer I have used before. It takes ca. one second to compile and link and startup is also quick.Fri, 25 Jun 2021 00:00:00 -0000
http://momentsingraphics.de/ToyRenderer1KeepItSimple.html
http://momentsingraphics.de/ToyRenderer1KeepItSimple.htmlBlogMy toy renderer: OverviewAlongside my latest papers I released the underlying renderer as open source. It is a real-time deferred renderer with ray traced shadows based on Vulkan and written in C. As I wrote it, I had the liberty to try some unconventional designs and techniques. So I did, because that is an excellent way to learn new things. It also became the basis for our work on vertex-blend attribute compression.Thu, 24 Jun 2021 00:00:00 -0000
http://momentsingraphics.de/ToyRendererOverview.html
http://momentsingraphics.de/ToyRendererOverview.htmlBlogLinearly Transformed Spherical Harmonics ExpansionsIn my job at the Karlsruhe Institute of Technology, I usually supervise two bachelor or master theses per term (four per year). By handing out topics that have a sufficiently narrow scope but tap directly into current rendering research, I try to pass on my passion for this subject.Wed, 02 Dec 2020 00:00:00 -0000
http://momentsingraphics.de/LinearlyTransformedSH.html
http://momentsingraphics.de/LinearlyTransformedSH.htmlBlogVisual Analysis of Large Multivariate Scattered Data using Clustering and Probabilistic SummariesRapidly growing data sizes of scientific simulations pose significant challenges for interactive visualization and analysis techniques. In this work, we propose a compact probabilistic representation to interactively visualize large scattered datasets. In contrast to previous approaches that represent blocks of volumetric data using probability distributions, we model clusters of arbitrarily structured multivariate data. In detail, we discuss how to efficiently represent and store a high-dimensional distribution for each cluster. We observe that it suffices to consider low-dimensional marginal distributions for two or three data dimensions at a time to employ common visual analysis techniques. Based on this observation, we represent high-dimensional distributions by combinations of low-dimensional Gaussian mixture models. We discuss the application of common interactive visual analysis techniques to this representation. In particular, we investigate several frequency-based views, such as density plots in 1D and 2D, density-based parallel coordinates, and a time histogram. We visualize the uncertainty introduced by the representation, discuss a level-of-detail mechanism, and explicitly visualize outliers. Furthermore, we propose a spatial visualization by splatting anisotropic 3D Gaussians for which we derive a closed-form solution. Lastly, we describe the application of brushing and linking to this clustered representation. Our evaluation on several large, real-world datasets demonstrates the scaling of our approach.Thu, 01 Oct 2020 00:00:00 -0000
http://momentsingraphics.de/Vis2020.html
http://momentsingraphics.de/Vis2020.htmlPublicationUsing LyX to write ACM and Eurographics articlesIf you are familiar with my work, you may be surprised to hear that I barely ever write documents in LaTeX. All of my first author papers, as well as my bachelor, master and PhD thesis are written entirely in LyX. LyX is a text editor that generates LaTeX code for you. I appreciate it because it helps me get through the creative process of writing without distraction and aids my mathematical research through its excellent formula editor.Mon, 11 Nov 2019 00:00:00 -0000
http://momentsingraphics.de/UsingLyX.html
http://momentsingraphics.de/UsingLyX.htmlBlogRedesign of the blogOver the past year, I have gotten dissatisfied with the setup of my blog. Discoverability of posts was not particularly good, maintenance work began to outgrow the work for new content and I grew tired of the Wordpress layout. Rather than fixing each issue individually, I decided to turn the whole thing into a static HTML page generated by my own set of Python scripts. The resulting redesign will hopefully make it easier for you to find the posts you care about and to read them without distraction and for me to create them. The following post discusses the changes in more detail.Tue, 27 Aug 2019 00:00:00 -0000
http://momentsingraphics.de/MetaPost2.html
http://momentsingraphics.de/MetaPost2.htmlBlogVoid-and-Cluster Sampling of Large Scattered Data and TrajectoriesWe propose a data reduction technique for scattered data based on statistical sampling. Our void-and-cluster sampling technique finds a representative subset that is optimally distributed in the spatial domain with respect to the blue noise property. In addition, it can adapt to a given density function, which we use to sample regions of high complexity in the multivariate value domain more densely. Moreover, our sampling technique implicitly defines an ordering on the samples that enables progressive data loading and a continuous level-of-detail representation. We extend our technique to sample time-dependent trajectories, for example pathlines in a time interval, using an efficient and iterative approach. Furthermore, we introduce a local and continuous error measure to quantify how well a set of samples represents the original dataset. We apply this error measure during sampling to guide the number of samples that are taken. Finally, we use this error measure and other quantities to evaluate the quality, performance, and scalability of our algorithm.Thu, 01 Aug 2019 00:00:00 -0000
http://momentsingraphics.de/Vis2019.html
http://momentsingraphics.de/Vis2019.htmlPublicationUsing Moments to Represent Bounded Signals for Spectral RenderingWe present a compact and efficient representation of spectra for accurate rendering using more than three dimensions. While tristimulus color spaces are sufficient for color display, a spectral renderer has to simulate light transport per wavelength. Consequently, emission spectra and surface albedos need to be known at each wavelength. It is practical to store dense samples for emission spectra but for albedo textures, the memory requirements of this approach are unreasonable. Prior works that approximate dense spectra from tristimulus data introduce strong errors under illuminants with sharp peaks and in indirect illumination. We represent spectra by an arbitrary number of Fourier coefficients. However, we do not use a common truncated Fourier series because its ringing could lead to albedos below zero or above one. Instead, we present a novel approach for reconstruction of bounded densities based on the theory of moments. The core of our technique is our bounded maximum entropy spectral estimate. It uses an efficient closed form to compute a smooth signal between zero and one that matches the given Fourier coefficients exactly. Still, a ground truth that localizes all of its mass around a few wavelengths can be reconstructed adequately. Therefore, our representation covers the full gamut of valid reflectances. The resulting textures are compact because each coefficient can be stored in 10 bits. For compatibility with existing tristimulus assets, we implement a mapping from tristimulus color spaces to three Fourier coefficients. Using three coefficients, our technique gives state of the art results without some of the drawbacks of related work. With four to eight coefficients, our representation is superior to all existing representations. Our focus is on offline rendering but we also demonstrate that the technique is fast enough for real-time rendering.Mon, 01 Jul 2019 00:00:00 -0000
http://momentsingraphics.de/Siggraph2019.html
http://momentsingraphics.de/Siggraph2019.htmlPublicationSpectral Rendering with the Bounded MESE and sRGB DataIn a recent journal paper, we introduced a technique to represent reflectance spectra by an arbitrary number of Fourier coefficients. As a special case, we converted tristimulus data to three Fourier coefficients. After summarizing this work, we introduce the Fourier sRGB color space. It is defined in terms of Fourier coefficients but designed to behave similar to sRGB. Textures stored in Fourier sRGB support efficient spectral rendering but can be compressed with techniques designed for sRGB textures. Compression errors are similar to sRGB.Mon, 01 Jul 2019 00:00:00 -0000
http://momentsingraphics.de/MAM2019.html
http://momentsingraphics.de/MAM2019.htmlPublicationSampling projected spherical caps with multiple importance samplingThis blog post answers a question that Tomáš Davidovič from Weta Digital had about the recently published projected solid angle sampling for spherical caps. In Monte Carlo rendering, it is very common to combine several sampling techniques through multiple importance sampling. In this case, any of the sampling techniques may produce a sample and then you need to compute the probability density for producing this sample with each of the other techniques.Mon, 10 Jun 2019 00:00:00 -0000
http://momentsingraphics.de/SphericalCapMIS.html
http://momentsingraphics.de/SphericalCapMIS.htmlBlogSampling Projected Spherical Caps in Real TimeStochastic shading with area lights requires methods to sample the light sources. For diffuse materials, the best strategy is to sample proportionally to projected solid angle. Recent work in offline rendering has addressed this problem for spherical light sources, but the solution is unsuitable for a GPU implementation. We present a far more efficient solution. It offers results without noteworthy noise for diffuse surfaces lit by an unoccluded spherical light source while being only two to three times more costly than simple sampling of the solid angle. The core insight of the technique is that a projected spherical cap can be decomposed into, or at least approximated by, cut disks. We present an efficient method to sample cut disks and show how to use it to sample projected spherical caps. In some cases, our method does not sample exactly proportionally to projected solid angle but the deviation is provably bounded.Sat, 01 Jun 2019 00:00:00 -0000
http://momentsingraphics.de/I3D2019.html
http://momentsingraphics.de/I3D2019.htmlPublicationA brief postscript on moment-based order-independent transparencyBack in May, we published moment-based order-independent transparency (MBOIT) at the Symposium on Interactive 3D Graphics and Games 2018. This brief post follows up on two things; a similar but independent work and some missing code.Thu, 23 Aug 2018 00:00:00 -0000
http://momentsingraphics.de/MissingTMBOITCode.html
http://momentsingraphics.de/MissingTMBOITCode.htmlBlogGradient Estimation for Real-time Adaptive Temporal FilteringWith the push towards physically based rendering, stochastic sampling of shading, e.g. using path tracing, is becoming increasingly important in real-time rendering. To achieve high performance, only low sample counts are viable, which necessitates the use of sophisticated reconstruction filters. Recent research on such filters has shown dramatic improvements in both quality and performance. They exploit the coherence of consecutive frames by reusing temporal information to achieve stable, denoised results. However, existing temporal filters often create objectionable artifacts such as ghosting and lag. We propose a novel temporal filter which analyzes the signal over time to derive adaptive temporal accumulation factors per pixel. It repurposes a subset of the shading budget to sparsely sample and reconstruct the temporal gradient. This allows us to reliably detect sudden changes of the sampled signal and to drop stale history information. We create gradient samples through forward-projection of surface samples from the previous frame into the current frame and by reevaluating the shading samples using the same random sequence. We apply our filter to improve real-time path tracers. Compared to previous work, we show a significant reduction of lag and ghosting as well as improved temporal stability. Our temporal filter runs in 2 ms at 1080p on modern graphics hardware and can be integrated into deferred renderers.Wed, 01 Aug 2018 00:00:00 -0000
http://momentsingraphics.de/HPG2018.html
http://momentsingraphics.de/HPG2018.htmlPublicationMoment-Based Order-Independent TransparencyCompositing transparent surfaces rendered in an arbitrary order requires techniques for order-independent transparency. Each surface color needs to be multiplied by the appropriate transmittance to the eye to incorporate occlusion. Building upon moment shadow mapping, we present a moment-based method for compact storage and fast reconstruction of this depth-dependent function per pixel. We work with the logarithm of the transmittance such that the function may be accumulated additively rather than multiplicatively. Then an additive rendering pass for all transparent surfaces yields moments. Moment-based reconstruction algorithms provide approximations to the original function, which are used for compositing in a second additive pass. We utilize existing algorithms with four or six power moments and develop new algorithms using eight power moments or up to four trigonometric moments. The resulting techniques are completely order-independent, work well for participating media as well as transparent surfaces and come in many variants providing different tradeoffs. We also utilize the same approach for the closely related problem of computing shadows for transparent surfaces.Sun, 01 Jul 2018 00:00:00 -0000
http://momentsingraphics.de/I3D2018.html
http://momentsingraphics.de/I3D2018.htmlPublicationMoment-Based Methods for Real-Time Shadows and Fast Transient ImagingWir wenden die Theorie der Momente auf Probleme des Visual Computings an. Aus dieser Theorie entwickeln wir effiziente Algorithmen, die eindimensionale Verteilungen durch eine geschlossene Form aus ihren Momenten rekonstruieren. Solche Rekonstruktionen nutzen aus, dass die ursprünglichen Verteilungen keine negativen Massen beinhalten. Dadurch können sie vor allem bei Verteilungen, die um wenige Punkte lokalisiert sind, mit wenigen Momenten außerordentlich gute Rekonstruktionen erreichen. Wir wenden diese Verfahren auf Messwerte von AMCW Lidar Systemen an. So erhalten wir für jeden Pixel dieser Lichtlaufzeitkameras eine vollständige Rekonstruktion der Impulsantwort des Lichts und können insbesondere Interferenzeffekte beseitigen. Außerdem betrachten wir das Rendern von Schatten in Echtzeitanwendungen. Speichert man Momente in einer Shadow Map, kann man diese direkt filtern und so effizient Aliasing vorbeugen. Durch diese direkte Filterung wird auch die Darstellung von weichen Schatten und atmosphärischer Lichtstreuung ermöglicht.Tue, 01 May 2018 00:00:00 -0000
http://momentsingraphics.de/LNI2018.html
http://momentsingraphics.de/LNI2018.htmlPublicationMy dissertation is available nowMy dissertation has been published digitially and is now available in its entirety as a free download. Most results have been published before through my papers at i3D 2015, SIGGRAPH Asia 2015 and JCGT. Though, there is some entirely new material. Since I spent a lot of time writing it, there better be somebody to read parts of it. Below I'll try to wet your appetite.Sun, 31 Dec 2017 00:00:00 -0000
http://momentsingraphics.de/DissertationAnnouncement.html
http://momentsingraphics.de/DissertationAnnouncement.htmlBlogMoment-Based Methods for Real-Time Shadows and Fast Transient ImagingWe apply the theory of moments to develop computationally efficient methods for real-time rendering of shadows and reconstruction of transient images from few measurements. Given moments of an unknown probability distribution, i.e. the expectations of known, real random variables, the theory of moments strives to characterize all distributions that could have led to these moments. Earlier works in computer graphics only use the most basic results of this powerful theory.Fri, 01 Dec 2017 00:00:00 -0000
http://momentsingraphics.de/Dissertation.html
http://momentsingraphics.de/Dissertation.htmlPublicationDemo with non-linearly quantized moment shadow maps and moreMy recent paper on non-linearly quantized moment shadow maps promises an executable demo. Preparing that took a little longer than expected but to make up for the delay, the demo has plenty of new features. Most notably it now uses dear imgui and includes the applications of blue noise I blogged about earlier. Rather than showing off the new technique only, this demo is an extension of earlier demos, so it also features soft shadows, single scattering and shadows for translucent occluders.Tue, 05 Sep 2017 00:00:00 -0000
http://momentsingraphics.de/HPG2017Demo.html
http://momentsingraphics.de/HPG2017Demo.htmlBlogNon-linearly Quantized Moment Shadow MapsMoment shadow maps enable direct filtering to accomplish proper antialiasing of dynamic hard shadows. For each texel, the moment shadow map stores four powers of the depth in either 64 or 128 bits. After filtering, this information enables a heuristic reconstruction. However, the rounding errors introduced at 64 bits per texel necessitate a bias that strengthens light leaking artifacts noticeably. In this paper, we propose a non-linear transform which maps the four moments to four quantities describing the depth distribution more directly. These quantities can then be quantized to a total of 32 or 64 bits. At 64 bits, the results are virtually indistinguishable from moment shadow mapping at 128 bits per texel. Even at 32 bits, there is hardly any additional light leaking but banding artifacts may occur. At the same time, the computational overhead for the reconstruction is reduced. As a prerequisite for the use of these quantization schemes, we propose a compute shader that applies a resolve for a multisampled shadow map and a 9² two-pass Gaussian filter in shared memory. The quantized moments are written back to device memory only once at the very end. This approach makes our technique roughly as fast as variance shadow mapping with 32 bits per texel. Since hardware-accelerated bilinear filtering is incompatible with non-linear quantization, we employ blue noise dithering as inexpensive alternative to manual bilinear filtering.Sat, 01 Jul 2017 00:00:00 -0000
http://momentsingraphics.de/HPG2017.html
http://momentsingraphics.de/HPG2017.htmlPublicationJCGT extension out nowThe invited extension of our i3D 2016 paper is now published in the Journal of Computer Graphics Techniques. It discusses techniques for real-time soft shadows, single scattering and shadows for translucent occluders with some novel improvements. All of these techniques are based on moment shadow mapping and the paper also introduces improvements to moment shadow mapping itself.Thu, 30 Mar 2017 00:00:00 -0000
http://momentsingraphics.de/JCGTAnnouncement.html
http://momentsingraphics.de/JCGTAnnouncement.htmlBlogImproved Moment Shadow Maps for Translucent Occluders, Soft Shadows and Single ScatteringLike variance shadow maps, the recently proposed moment shadow maps can be filtered directly but they provide a substantially higher quality. We combine them with earlier approaches to enable three new applications. Shadows for translucent occluders are obtained by simply rendering to a moment shadow map with alpha blending. Soft shadows in the spirit of percentage-closer soft shadows are rendered using two queries to a summed-area table of a moment shadow map. Single scattering is rendered through one lookup per pixel in a prefiltered moment shadow map with six channels. As a foundation we also propose improvements to moment shadow mapping itself. All these techniques scale particularly well to high output resolutions and enable proper antialiasing of shadows through extensive filtering.Wed, 01 Mar 2017 00:00:00 -0000
http://momentsingraphics.de/JCGT2017.html
http://momentsingraphics.de/JCGT2017.htmlPublicationThe problem with 3D blue noiseAfter the previous blog post several readers (namely Morgan McGuire, Mikkel Gjoel and Bart Wronski) expressed interest in 3D blue noise. Thus, this blog post provides a database of such blue noise textures. It also explains why you might not want to use it. The post relies on concepts introduced in the previous post so you should read this one first.Tue, 31 Jan 2017 00:00:00 -0000
http://momentsingraphics.de/3DBlueNoise.html
http://momentsingraphics.de/3DBlueNoise.htmlBlogFree blue noise texturesDithering is almost as old as computer graphics but recently it has received quite a lot of attention among game developers. To name two examples out of many, Mikkel Gjoel spoke about its use in Inside at GDC 2016 and Bart Wronski wrote a blog post series about it. This attention is well-deserved.Thu, 22 Dec 2016 00:00:00 -0000
http://momentsingraphics.de/BlueNoise.html
http://momentsingraphics.de/BlueNoise.htmlBlogNew shadow demo with documented HLSL codeIt's time to deliver on a recent promise. Moment shadow mapping and its applications have seen quite a few minor but useful improvements lately. The GDCE 2016 lecture covered some of them but only marginally. This post provides a brand-new release of my shadow mapping demo with documented shader code including all these improvements.Sun, 25 Sep 2016 00:00:00 -0000
http://momentsingraphics.de/JCGT2016Demo.html
http://momentsingraphics.de/JCGT2016Demo.htmlBlogHow to solve a cubic equation, revisitedThis post covers a little gem worth sharing: The fastest solution to cubic equations with three real roots that I am aware of. It is also fairly robust and I implemented it in HLSL. It is based on the work by Jim Blinn [Blinn07b] but tweaked for double speed.Sat, 10 Sep 2016 00:00:00 -0000
http://momentsingraphics.de/CubicRoots.html
http://momentsingraphics.de/CubicRoots.htmlBlogUsing Markdeep for a WordPress blogIn response to Morgan McGuire's request this post will explain how I set up this blog using his handy Markdeep, MathJax and Wordpress. The blog is hosted on my rented server and when you request a page it usually won't make connections to any other hosts to keep you from being tracked. Most of this post is specific to Markdeep, so you may also find it useful if you have no plans to use Wordpress.Sat, 20 Aug 2016 00:00:00 -0000
http://momentsingraphics.de/MetaPost.html
http://momentsingraphics.de/MetaPost.htmlBlogOf posts to comeI've got a blog now and you're reading its first post. This is not the place to tell you what the blog is all about or to ramble about past publications (though, you can download all of them here, including code and demos). I'd rather look into the future and tell you what to expect.Thu, 11 Aug 2016 00:00:00 -0000
http://momentsingraphics.de/FirstPost.html
http://momentsingraphics.de/FirstPost.htmlBlogRendering antialiased shadows with moment shadow mappingShadow map aliasing is a common artifact in games. Moment shadow maps can improve on this situation. Similar to exponential variance shadow maps, they can be filtered and antialiased directly. However, they offer reduced light leaking and greater robustness at comparable cost. Since they scale well to high output resolutions, they are particularly attractive for virtual reality and 4k rendering.Mon, 01 Aug 2016 00:00:00 -0000
http://momentsingraphics.de/GDCEurope2016.html
http://momentsingraphics.de/GDCEurope2016.htmlPublicationBeyond Hard Shadows: Moment Shadow Maps for Single Scattering, Soft Shadows and Translucent OccludersBuilding upon previous works, we transfer the recently proposed moment shadow mapping to three new applications. Like variance shadow maps and convolution shadow maps, moment shadow maps can be filtered directly. Classically, this is used to filter hard shadows but previous works explore other applications. Prefiltered single scattering uses convolution shadow maps to render single scattering in homogenous participating media, variance soft shadow mapping uses variance shadow maps for approximate soft shadows and Fourier opacity mapping uses convolution shadow maps for translucent occluders. We combine these three techniques with moment shadow mapping to arrive at better heuristics with less computational overhead.Mon, 01 Feb 2016 00:00:00 -0000
http://momentsingraphics.de/I3D2016.html
http://momentsingraphics.de/I3D2016.htmlPublicationSolving Trigonometric Moment Problems for Fast Transient ImagingTransient images help to analyze light transport in scenes. Besides two spatial dimensions, they are resolved in time of flight. Cost-efficient approaches for their capture use amplitude modulated continuous wave lidar systems but typically take more than a minute of capture time. We propose new techniques for measurement and reconstruction of transient images, which drastically reduce this capture time. To this end, we pose the problem of reconstruction as a trigonometric moment problem. A vast body of mathematical literature provides powerful solutions to such problems. In particular, the maximum entropy spectral estimate and the Pisarenko estimate provide two closed-form solutions for reconstruction using continuous densities or sparse distributions, respectively. Both methods can separate m distinct returns using measurements at m modulation frequencies. For m=3 our experiments with measured data confirm this. Our GPU-accelerated implementation can reconstruct more than 100000 frames of a transient image per second. Additionally, we propose modifications of the capture routine to achieve the required sinusoidal modulation without increasing the capture time. This allows us to capture up to 18.6 transient images per second, leading to transient video. An important byproduct is a method for removal of multipath interference in range imaging.Thu, 01 Oct 2015 00:00:00 -0000
http://momentsingraphics.de/SiggraphAsia2015.html
http://momentsingraphics.de/SiggraphAsia2015.htmlPublicationMoment Shadow MappingWe present moment shadow mapping, a novel technique for fast, filtered hard shadows. Like variance shadow mapping it allows for the application of all kinds of efficient texture filtering and antialiasing to its moment shadow map. However it is designed to provide a substantially higher quality. Moment shadow maps store four moments of the depth within the filter kernel. Using this information, our efficient algorithm computes the sharpest possible lower bound as approximation to the shadow intensity. The choice to compute such a bound using four moments is based upon an automated evaluation of thousands of alternatives and thus known to be optimal. To reduce memory and bandwidth requirements we present an optimized quantization scheme to allow 16-bit quantization of moment shadow maps. Our evaluation demonstrates that moment shadow mapping produces high quality results with a single shadow map sample per fragment using 64 bits per shadow map texel.Sun, 01 Feb 2015 00:00:00 -0000
http://momentsingraphics.de/I3D2015.html
http://momentsingraphics.de/I3D2015.htmlPublicationMoment Shadow MappingKeywords: automated evaluation, filtered hard shadows, moment problem, shadow mapping, varianceMon, 01 Jul 2013 00:00:00 -0000
http://momentsingraphics.de/MasterThesis.html
http://momentsingraphics.de/MasterThesis.htmlPublication