Advances in Real-Time Rendering in Games
Beyond Programmable Shading
State-of-the-Art: Interactive Global Illumination
Destruction and Dynamics for Film and Game Production
Filtering Approaches for Real-Time Anti-Aliasing
Production Volume Rendering
Compiler Technology for Rendering
Liquid Simulation with mesh-based Surface Tracking
NVIDIA Slides , Videos
OpenGL BOF Slides
Introduction to Modern OpenGL Programming
OpenCL BOF Slides
Also a great list with more posters and talks is available on Stephen Hill's Blog
There is also my talk on Interactive Indirect Illumination Using Voxel Cone Tracing :-)
Among interesting things, the shader_atomic_counters, conservative depth, instanced transformed feedback, the integration of shader_image_load_store and more !
And congrats to Christophe for his first credit in the spec :-D
"Interactive Indirect Illumination Using Voxel Cone Tracing" paper accepted at Pacific Graphics 2011
On my INRIA webpage:
Also, don't forget to attend my talk if you are going to Siggraph 2011 !
I started to compile links to websites where free 3D models can be found. If you know other good websites, feal free to post them in the comments :-)
Static models and scenes:
- Great collection of models for scientific publications on Morgan McGuire webpage: http://graphics.cs.williams.edu/data/meshes.xml
- 3D Render challenge: http://www.3drender.com/challenges/
- Crytek: http://www.crytek.com/cryengine/cryengine3/downloads
- Keenan Crane : http://www.cs.caltech.edu/~keenan/models.html
- Sibenik model: http://hdri.cgtechniques.com/~sibenik2/download/
- AIM@Shape : http://shapes.aimatshape.net/
- Characters Creative Common: http://artist-3d.com/
- Characters: http://www.3dvalley.com/3d-models/characters
- Blender files: http://www.blendswap.com/3D-models/category/featured/
- Archive 3D: http://archive3d.net/
Animated models and scenes:
- Ingo Wald: http://www.sci.utah.edu/~wald/animrep/
- MIT CSAIL 1: http://people.csail.mit.edu/drdaniel/mesh_animation/index.html
- MIT CSAIL 2: http://people.csail.mit.edu/drdaniel/dynamic_shape/index.html
- MIT Animals and Face: http://people.csail.mit.edu/sumner/research/deftransfer/data.html
- Face data: http://grail.cs.washington.edu/software-data/stfaces/index.html
- Pants: http://www.ryanmwhite.com/research/cloth_cap.html
The paper ha been published at Pacific Graphic. You can find the authors version of it on my research page:
[Update 30/06/2011]: Benoit Rogez wrote a very good article about our approach on 3DVF (in French) : here
[Update 10/06/2012]: More details on the algorithm and the fast voxelization and octree construction can be found in my GTC 2012 presentation.
Indirect lighting (global illumination):
High quality video: http://artis.imag.fr/Membres/Cyril.Crassin/GIVoxels/Siggraph11_GI1.mov
High quality video: http://artis.imag.fr/Membres/Cyril.Crassin/GIVoxels/Siggraph11_AO1.mov
Full story here :-D
This can be described as vicious circle of generalization:
- We want the code to be as generalized as possible.
- We design everything future-proof and extendible.
- When a feature request arrives, we’re doomed we need to change a lot of code.
- Because everything was designed as generalized as possible.
- goto 1;
GDC 2011 is over now and presentations start to appear on-line :-)
Khronos on OpenGL: http://www.khronos.org/library/detail/2011-gdc-opengl
More links can be found on this blog: http://msinilo.pl/blog/?p=724
This is the season of the new game engines : Dice Frostbite 2, Crytek CryEngine 3 and Epic Unreal Engine 3 !
Here it is, CUDA 4.0 RC just got released to NVIDIA Registered developers.
Interesting stuff from the CUDA manual:
- Layered Textures Support (GL_TEXTURE_1D/2D_ARRAY) : New tex.a1d/.a2d modifiers in PTX. But unfortunately the surface instruction do not support them yet, Grrrr
Layered textures are created using cudaMalloc3DArray() with the cudaArrayLayered flag. New cudaTextureType2DLayered/ cudaTextureType2DLayered texture sampler types and tex1DLayered()/tex2DLayered() access intrinsics.
- New .address_size PTX specifier : Allows to specify the address size (32b/64b) used throughout a PTX module.
- Inline PTX assembly: This feature was already present since CUDA 2.x but was not officially supported. It's now fully supported and documented :-D
- Driver API, new thread-safe stateless launch API function cuLaunchKernel(): cuLaunchKernel(kernelObj, blocksPerGrid, 1, 1, threadsPerBlock, 1, 1, 0, 0, args, 0);
- FERMI ISA documented and supported by cuobjdump.
- Enhanced C++: Support for operators new and delete, virtual functions.
There is also the support for direct peer-to-peer communication between GPUs and mappping multiple GPUs (and potentially other third party devices like network/infiniband) memory into the same address space in order to provide direct memory access (Unified Virtual Addressing, UVA). Virtual functions should also now be supported, along with the New and Delete functions for dynamic memory allocations from kernels.
Update: CUDA 4.0 RC released to registered developers
Slides are available there: http://bit.ly/cuda4features
Among the interesting novelties I did not see before, it seems inline PTX will be officially supported with this release ! Also the dissasembler (cuobjdump) that were previously limited to Tesla ISA now support Fermi ISA disassembly. Take a look as the manual for the list of supported instructions.
Today, I would like to invite you to follow an awesome new participating game development blog called #AltDevBlogADay. This blog has been founded in January by Mike Acton who is engine director at Insomniac Games, and group together many very good game developers who publish one article each day on the website.
Here is a short list of the article I particularly liked and I advice you to take a look at, among those already published:
- Aliasing, the silent killer
- Forward vs. Deferred Rendering: why/when forward rendering still matters
- Think low level, write high level
- Preparing for Parallelism
- Intuition for Gamma Correct Rendering
- Link time sorting
- Research tastes better when served with source
- Managing Decoupling
- Radix Sort for Humans
- Non Virtual Interfaces
- The Virtual and No-Virtual
- Refactoring for Task Concurrency
- Performance metaprogramming
- The Rendering Equation - A Pictorial Introduction
- Managing Coupling Part 2 — Polling, Callbacks and Events
- Alternatives to malloc and new
- Data Structures: One size does not fit all
- NVIDIA Announced Project Denver : A fully integrated CPU+GPU chip dedicated to high-performance computing and based on ARM cores. It is designed to power future products ranging from personal computers to servers and supercomputers. It looks like NVIDIA's answer to AMD Fusion and is also clearly a "we don't believe in the future of x86 architectures" launched to the industry. I really believe this is the right approach to bring high performance CPUs to all market segments. Thanks to the rise of mobile and tablet like devices, we may finally see the end of the hegemony of the x86 architecture. I really hope that it will not be the last dinosaur from NVIDIA ;-)
- gDebugger is now free !
- “Principles of Digital Image Synthesis” book is now free for download. And a nicely formated PDF can be found here.
- Data-Oriented Design - Links and Thoughts : The concept of Data-Oriented Design (DOD) as opposed to Object Oriented Programming (OOP) is a concept that is emerging and gaining popularity among the game developers community lately. The idea is that instead of building performance sensitive parts of applications around classes that represent individual objects with ineficient -non-cache coherent- memory access patterns, it is more efficient to build them by thinking in terms of data flows and memory access patterns. That's a concept that may not be unfamiliar to GPU developers :-D
- Overtime vs Productivity : Two very interesting blog posts by Allan Mckay that discuss on how people work, why we often get burned out and how to avoid this.
- A lot of very interesting technical documentations about NVIDIA GPUs and coming from reverse engineering of various hardware can be found on pscnv Git repository. Pscnv is a fork of the nouveau project, an open source driver for NVIDIA GPUs.