I wrote a short collection of notes that describe how to use the Hammersley point set in 2d for generating fast sampling points on the hemisphere. The notes can be found at
http://holger.dammertz.org/stuff/notes_HammersleyOnHemisphere.html.
The Hammersley point set is one of the simplest quasi-Monte Carlo sampling patterns and in 2d it can be efficiently generated with a couple of bit operations (and some floating point multiplications). It is thus a good candidate when some 2d sampling pattern is needed inside a shader program and is a good alternative to using a look-up table in many applications. The article focuses mainly on generating sampling points on the hemisphere but the point set can of course be used for many other applications like shadow map filtering or screen space ambient occlusion.
Here is an image of the pattern for 16 points:
In the article above you can interactively change the number of points to see how the pattern behaves.
Showing posts with label Graphics. Show all posts
Showing posts with label Graphics. Show all posts
Thursday, November 8, 2012
Monday, October 29, 2012
Sparse Virtual Texturing Demo
I recently had some spare time to write a sparse virtual texturing demo using OpenGL. The current state of the demo can be seen in the video below.
Sparse virtual texturing is basically an out of core rendering technique that allows using textures that exceed available video memory by splitting them into small tiles and only load on demand the needed tiles.
During the development I also wrote up some notes regarding other work on this topic and on how I created my test data. These notes can be found at http://holger.dammertz.org/stuff/notes_VirtualTexturing.html.
So far the demo uses a 32256x32256 pixel virtual texture and 128x128 pixels per tile. It supports tri-linear filtering and asynchronous loading of tiles from disc.
To create the test data I used blender to bake a procedural texture and the lighting into the virtual texture. Some more details on the scene and the .blend file can be found at the link above.
Below is another video showing the same scene with a 16128x16128 pixel test texture.
Sparse virtual texturing is basically an out of core rendering technique that allows using textures that exceed available video memory by splitting them into small tiles and only load on demand the needed tiles.
During the development I also wrote up some notes regarding other work on this topic and on how I created my test data. These notes can be found at http://holger.dammertz.org/stuff/notes_VirtualTexturing.html.
So far the demo uses a 32256x32256 pixel virtual texture and 128x128 pixels per tile. It supports tri-linear filtering and asynchronous loading of tiles from disc.
To create the test data I used blender to bake a procedural texture and the lighting into the virtual texture. Some more details on the scene and the .blend file can be found at the link above.
Below is another video showing the same scene with a 16128x16128 pixel test texture.
Subscribe to:
Posts (Atom)