Well, tried so many UI kits, my own controls + MFC, cross-platform Qt, DevExpress, Prof-UIS, wxWidgets, and others, all have flaws and I hit ‘em hard… and it hurts… Right now I’m onto DevExpress, nice but damn slow to work with it, the VisualStudio designer is slow, it even generates copies of the exe file, as I did understand there is a bug that eats up gigabytes of hdd space on C:, also the start time is not that great, but the controls are very nice to work with and visually, but the development process is very slow because of the designer and compiling, plus I dont like that the designer puts event code as inline in the header files, working in C++ CLI .NET. One of my last resorts is now Codejock MFC library toolkit, I’ll post news on that, lets hope this one is a winner, or else I’ll have to get a supercomputer to develop under DevExpress .NET and VisualStudio, tho I’ve heard VS 2010 to be faster. Maybe…
PS: if you guys know some other UI kit, or have comments on the ones I’ve use(d) please do..
Archive for October, 2009
Editor GUI toolkit saga never ends, but it should
Sunday, October 25th, 2009Blog moved
Sunday, October 18th, 2009I have moved the blog on the 7thfactor.ro server, it feels better, all in one place, and more customizable, plus the subdomain is nicer and integrated into the developer area of the site.
Soft particles, heat haze and system textures
Saturday, October 17th, 2009There is a way to register and unregister system textures in the engine. A system texture is a texture used by the whole engine, examples: colorMap, depthMap, glowMap, shadowMap, heatMap, etc. Usually those textures are registered and created by the render pipeline manager.
You can for example get the depthMap system texture like this (C++):
1 2 3 4 | Texture* pDepthTex; pDepthTex = getGraphicsProvider()->getSystemTexture( "renderPipeline:depthMap" ); |
now you can use the depth texture in any devious way possible.
The soft particles use the depthMap to fade particle alpha color when they intersect other geometry, so it looks better. To render the depth map of a scene, all the geometry is rendered using a depth shader, where the depth is rendered only (black-near camera, white-far away).
Here is a comparison:
Heat haze is done this way: the scene color buffer is saved in a temp texture and a particle heat disturbance map (a normal map) is used to offset UV coordinates, fetching texels from the temp color texture:
Point sprites
Saturday, October 10th, 2009Point sprites are good to some degree, they’re fast… For some types of particle systems they do the job right. Right now in the engine there are 5 different render modes to display a particle system:
- CPU computed quads ( the camera-facing quads are computed on the CPU and filled into a vertex buffer each frame )
- Point sprites ( the vertex buffer is filled with only particle position, size and color )
- GPU based quad instancing ( we have only one quad in the vertex buffer, filled once, and then an instance buffer with particles info, in the vertex shader the quad is aligned and scaled )
- Scene nodes ( each particle is a scene node, the particle system controls the position/rotation/scale of the scene node )
- Instanced scene nodes ( the given scene nodes are instanced on the GPU, less bandwidth usage )
I have posted some point sprites movies on youtube:

