CodeFlash is a tool to assist you in writing source code via code snippets. It supports most editors and provides templates for the important programming languages.
Since I couldnt find any code thats fast, memory efficient, free and for high quality, I developed my version of the quadric based edge collapse mesh simplification method. It uses a threshold to determine which triangles to delete, which avoids sorting but might lead to lesser quality. It is about 4x as fast as Meshlab and can simplify 2M -> 30k triangles in 3.5 seconds.
Game-GUI is easy to use and features TTF fonts, UTF8, skins, callbacks, alpha-blending, custom mouse pointers, multi-screen support and also includes a basic file-browser as well as a complete window manager. It is based on OpenGL/GLSL and includes samples for GLUT and QT5.
Visualization of Large Procedural Voxel-Terrains using ISO-Surfaces based on nested Clip-Boxes.
Sparse Voxel Octree Raycasting with Image Warping exploiting Frame-to-Frame Coherence in OpenCL.
CUDA based Voxel Raycasting - Paper: Efficient, High-Quality, GPU-Based Visualization of Voxelized Surface Data.
We present a novel skinned skeletal animation system based on spline-aligned deformations for providing high quality and fully designable deformations in real-time. Our ambition is to allow artists the easy creation of abstract, pose-dependent deformation behaviors that might directly be assigned to a large variety of target objects simultaneously. To achieve this goal, we introduce the usage of deformation styles and demonstrate their applicability by our animation system. We therefore enhance spline-skinned skeletal animation with two sweep-based free-form-deformation (FFD) variants. The two FFD variants are pose-dependent, driven by three textures and three curves, which can be designed by the artist. As the three textures are similar to height-maps, their creation is very intuitive. Once designed, the deformation styles can be directly applied to any number of targets for imitating material behaviors of cloth, metal or even muscles. Our GPU based implementation shows promising results for real-time usage, as about 30 Million vertices per second can be animated. The basic spline-skinning even reaches more than twice the speed and gets close to the performance of skeletal subspace deformation (SSD). Furthermore, our method can easily be combined along with other existing deformation techniques as pose space deformation or SSD.
Voxel Terrain Raycaster with Hitpoint Refinement and Screen Space Displacement Mapping The demo is an experiment to combine terrain raycasting of perlin noise generated terrain with screen space ambient occlusions (SSAO) and screen space displacement mapping (SSDM). The terrain is generated at the beginning of the demo as a 1024x256x1024 sized perlin noise volume data in CUDA, which is raycasted in the demo using distance functions for acceleration. To improve the quality, third-order texture filtering and hitpoint refinement using binary search are included. After the first hit is found, the screen-space normal vector is computed for shading and for the SSDM. The SSDM is not achieved using a stack of textures as this leads to problems in case of overlapping areas for large displacements. Instead, the SSDM is achieved in a post-process using a high-resolution triangle mesh with two triangles per pixel. That is the reason why sometimes articafts near the screen-boundary can be observed. The ones of you adept in CG may play around with the shader thats included. (Edit) Note: As the program generates the terrain as a 256MB PBO that is copied to the final texture, at least 768MB of GPU memory are recommended.
The generator is based on sine and triangle functions. It can generate static textures or animated textures.
ClipMap rendering by with culling of terrain chunks. The speed is at 1000-2000 fps now. The source is a bit longer but stayed around 200 lines for the main algo, which is easy to overview.
Splatting using OpenCL can reach more than 2 Bln Splats/s !
Experimental Code to Render a Voxel Volume using 6 Height Maps (+-XYZ) to define the Object. In the image below, each Buddha is rendered by 3 quads, where raycasting is performed in the pixel shader for each of the quads pixels.