суббота, 10 декабря 2011 г.
четверг, 8 декабря 2011 г.
SSAO: First steps
Today's results - fancy Screen Space Ambient Occlusion!
It searches pixel's surroundings to check pixel's occlusion, after
that blurs results and blends with the screen.
Video with a water:
Some additional effects like Light Scattering (God rays ) remains to implement
and I can finally start work on the game!
вторник, 6 декабря 2011 г.
Finally water!
пятница, 2 декабря 2011 г.
четверг, 1 декабря 2011 г.
Atmospheric Scattering
среда, 30 ноября 2011 г.
HDR finally done
понедельник, 4 апреля 2011 г.
Color transformations
Color transformations as Post-Process is added into Glow engine.
Currently supported transformations are contrast, brightness, black and white, red, green, blue shifts, saturation will be added later. All transformations work in a same step, so adding, for example contrast to brightness will not slow down it in 2 times.
Transformations added as scene property, and can be accessed from script.
Image:Adjusted brightness:
Blue and Green shifted, to create Matrix movie look
Black and white:
Antialiasing
Antialiasing is finally implemented in Glow engine.
It's implemented by Directionally Localized AA algorithm,implemented in The Force Unleashed 2. It's operates in image space and works as post-process, finding edges by High-Pass filter and blur it with 5x5 (and 16x16 for long edges) kernel.
Looks cool .. my images long time suffered from jaggies .. not now)
Antialiasing is off:
Antialiasing is on:
понедельник, 21 марта 2011 г.
четверг, 10 марта 2011 г.
среда, 9 марта 2011 г.
четверг, 3 марта 2011 г.
Just screen
среда, 2 марта 2011 г.
Debugging in Glow Engine
Lights debugger:
воскресенье, 20 февраля 2011 г.
среда, 2 февраля 2011 г.
TBB adopted
воскресенье, 30 января 2011 г.
moving to Intel Threading Blocks
среда, 26 января 2011 г.
воскресенье, 23 января 2011 г.
понедельник, 17 января 2011 г.
Memory Management in the Glow engine
Memory management is very important thing in a console world. We can forget about it on a PC (at least for several hours without leaks, but consoles are restricted, so we should consider that after some time, allocation of memory will return NULL (or exception, depending on compiler). Also fragmentation is serious problem after allocation of many small objects. So with the plans to move on mobile devices, we decided to develop system for memory management.
New memory manager is implemented for Glow engine. Separate optimized singlethreaded heaps with pools for small objects for every module of the engine (physics, ai, navigation, sounds etc) are added instead of the single common C++ heap.
Special heap for transferring messages between modules, memory leak debugging, shared pointers (boost c++ library) for memory arrays.
Allocator for STL containers was implemented, so every memory allocation in the specific module goes from the module heap. STL containers and strings are evil force of a memory fragmentation, so process for removing every STL container from code is started. Some vectors are replaced by special Stack vector container, based on boost::array with restricted dynamic grow. Also major part of constant std::string was replaced with const char* equivalent (with memory allocated from constant string pool) and "copy on create if exists" usage.
Memory debugger UI, with rendering of memory fragmentation, information about allocated blocks - count, amount, overhead.
Remaining part for the memory manager implementation - garbage collector for Geometry.
January release date was very optimistic, so we moved release of alpha version to Spring, 2011. Major parts are ready, but there are many small task to polish editor and engine.