This time:
- Coding Horror: Todon't
- GL Load Gen
- Storage Layout of Polymorphic Objects
- PowerVR Rogue
- A trip through Graphics Pipeline
Coding Horror: Todon't
Do we really need "todo lists"? Cannot we live without them? Often I have some ideas and projects that I would like to create. I usually write that down and hope that I start doing this... but for most of the time the list is getting bigger and bigger and no project is finished (or even started). Should I be mad about that? No! Simply accept that you cannot implement all the ideas that you have. Focus on the most important one - but do you really need a list for that?
By the way: look at this post: the-end-my-final-article. After several years of blogging (posts about motivation and improving yourself) author stopped. Reason: being more productive can become an obsession and it is more important to live in the the present (not in the future only on condition our goals are met).
GL Load Gen
This is a small piece of software that every OpenGL developer should love! Basically it creates code that embeds desired OpenGL version.
Some of my examples use GL 3.3 "core". I usually use GLEW to load needed extensions. But GLEW is sometimes to big (glew.h has above 700kb of size) - it can load all functions up to GL 4.3 so more space is needed. With glLoadGen I was able to create only two small files "gl_3_3.h" and "gl_3_3.c" (in total ~350 kb) and include this in my project. My executable got smaller and it worked just fine!
Storage Layout of Polymorphic Objects
Where is 'vptr" stored in memory? At the beginning of a class object, but what about derived classes? If A is base class of B (and both have virtual methods) then there is only one vptr pointer (not two). It is stored usually at the beginning of the whole object. Class B may add some new data member, but it uses vptr from class A.
PowerVR Rogue
'Rogue' is a new child of Imagination Technologies (company that I had opportunity to work for some short period of time :)). It is more efficient (in speed and power consumption) that the previous series. This article is rather an advertisement - there are lots of "it is awesome" and "jaw-dropping", but after reading one can get a general overview of the core. Basically in one GFX core they were able to put six computing clusters. The whole chip will support DX10 (and DX11.1 in near future), OpenGL ES 3.0 and OpenCL 1.*. That sounds great!
But all in all I look forward to seeing some real performance results and comparison (with latest Tegra and Adreno)
Here is some GL ES 3.0 Demo
Here is some GL ES 3.0 Demo
A trip through Graphics Pipeline
This is a huge series describing the graphics pipeline. The post comes from very productive person - Fabian Giesen who works for RAD Game Tools and is active member of a Demo Scene Group(farbrausch.com). In this blog series he gathered quite low level knowledge of current (as for 2011/2012) state of GPUs and he showed what is going on under the hood. The series consists of 13 articles - from general GPU overview to compute shaders and tessellation stuff. I am amazed of this huge effort.