- Some academic stuff ( < 1 fps :) )
- Physically based shading course
- Color course. Includes very interesting stuff about tone mapping from tri-Ace R&D
- Proceedings at acm.org. Requires an account to read papers, but abstracts can be read without it. Includes an interesting idea about frame interpolation in order to render at 30fps, but update screen at 60 fps
- NVIDIA @ Siggraph 2010.OpenGL 4, CUDA and new NVIDIA tools
- Beyond programmable shading. Presentations about rendering pipeline future (includes micropolygon rendering) and great presentation explaining how GPU shader cores work
- OpenGL and OpenCL from Khronos group
- DICE Siggraph papers
- Stylized rendering in Games
- Blog post about Valve presentation "Water Flow in Portal 2"
- Intel DX11 papers and demos
- Global illumination across industries Siggraph 2010 course
- Advances in Real-Time Rendering Siggraph 2010 course ("Water Flow in Portal 2" from that course)
- Siggraph links at Real Time Rendering
Wednesday, July 28, 2010
Siggraph 2010 papers
A small list of Siggraph 2010 papers (I'll try to keep it up to date):
Wednesday, July 7, 2010
VC++ and multiple inheritance
Today at work we were optimizing memory usage. At some moment we found out that size (on stack) of our basic data structures is x bytes bigger than summed size of their members. Every basic data structure was written following Alexandrescu policy based design - using inheritance from some templated empty classes. Let's see a simple example:
Compiler uses 4 byte aligment. Will this program print 4? That depends. Compiled by GCC it will print 4, but compiled by VC++ (2005-2010) it will print 8.
Every class in C++ has to be at least 1 byte of size in order to have a valid memory adress. With multiple inheritance sizeof(C) = sizeof(A) + sizeof(B) + some aligment. So VC++ behavior is correct, but not optimal. It's strange that it was reported to MS in 2005 and still they didn't fix it.
#include <stdio.h>
class A { };
class B { };
class C : public A, B
{
int test;
};
int main()
{
printf( "%d\n", sizeof( C ) );
return 0;
}
Compiler uses 4 byte aligment. Will this program print 4? That depends. Compiled by GCC it will print 4, but compiled by VC++ (2005-2010) it will print 8.
Every class in C++ has to be at least 1 byte of size in order to have a valid memory adress. With multiple inheritance sizeof(C) = sizeof(A) + sizeof(B) + some aligment. So VC++ behavior is correct, but not optimal. It's strange that it was reported to MS in 2005 and still they didn't fix it.
Subscribe to:
Posts (Atom)