| |
| † news/blog † |
|
« | ‹ Prev |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Next › | »  |
| |
| Sun 10 May 09 - 3D - SSAO implementation |
|
I've recently combined two techniques and added Screen Space Ambient Occlusion in my engine. Thanks to ArKano22 (from GameDev.net forums) and Leadwerks (from opengl.org forums) for sharing their code to the public.
Here is a screen illustrating the SSAO factor:
|
|
| |
| |
| Sun 26 Apr 09 - MUSIC - Best songs ever |
|
During our lifetime we explore many different worlds. Music is one of them and its fucken magical!!!
In this exploration we have encountered a variety of great songs. The majority of them are good but only for certain moments and mood. Another category is our favorite songs, songs that we never get bored listening, songs that remain our favorites throughout the years. Here is a list of my favorite songs:
1. Born Dead Buried Alive ( Hypocrisy, Death Metal )
2. Sorgens Kammer Del 2 ( Dimmu Borgir, Black Metal )
3. Magic Loves Infinity ( Septic Flesh, Symphonic Gothic Metal )
4. Tyrannical ( Rotting Christ, Black Metal )
5. In Cosmic Installation ( Black Winter, Black Metal )
6. Fuel for Hatred ( Satyricon, Black Metal )
7. Over Old Hills ( Summoning, Symphonic Black Metal )
8. Khazad Dúm ( Summoning, Symphonic Black Metal )
9. The Sword of the Witcher ( Vader, Death Metal )
10. Sign Of An Open Eye ( Gorgoroth, Black Metal )
Enjoy the music, its a great antidote!!
Horns up! |
|
| |
| |
| Sat 04 Apr 09 - My current projects and tools |
|
I havent updated the projects page for two years or so. Its not that Im not active (despite being in the greek army) its because Im working on a big project. The project is a 3d engine. It started as a simple skeletal animation project and now its something bigger. Unfortunately its not even remotely close to completion because I keep adding stuff. Recently for example I had the bright idea to convert the renderer in order to support deffered shading. If I keep adding stuff all the time I wont create something complete, ever. Fortunately I love the project and it keeps me going for quite some time now.
Now for a few details about the engine. It supports meshes (own format), models with skeletons and vertex weights (my format also). The exporters of the meshes and models are in blender's python API and I wrote them myself. I also used blender to export skeleton animations in a format of my own. A particle engine is also present but unfortunately in an incomplete state. I implemented collision detection but for now it has been used only for frustum culling. An asset manager is also present to help us to manage the runtime data. Material and shader scripts are complete. I also implemented a memory manager so I can test memory leaks and other stuff. In a demo phase I have shadowmaping, projected lights, deffered shading, global illumination system and a few other minor stuff.
My tools for this project are completely open. Firstly I run in ubuntu linux. My dev tools are the gnu C++, OpenGL 2.1 for 3D API, SDL for OS abstraction, Code::Blocks as C++ IDE, glew for OpenGL extensions, Blender for modeling and asset creation and I also use some Doom3 assets I found in the CD.
Im hopping to show more stuff in the following months and release the source code ofcource. |
|
| |
| |
| Mon 09 Feb 09 - Benchmarking your C++ code in a frequency scaling capable CPU
|
|
The two most popular ways to benchmark your code is either by using an external tool called profiler or by using a clock()-like function inside the the code itself. Both ways, under some circumstances, may lead to variable and misleading results when CPU with frequency scaling capabilities is present. The question is why is that happening, but before answering that we have to tell a few things about CPU frequency scaling.
The majority of the current CPUs work in a range of frequencies depending on the work load the have to carry, this happens so we can save precious energy. If the CPU is idle the frequency is lower (and thus the energy consumption) and when the CPU is needed for a CPU incentive task the frequency gets higher. An other important aspect of frequency scaling is that the changes between “energy mode” and “normal mode” don't happen instantly. The time between a switch is triggered by the OS and its pretty unpredictable.
Imagine now that we have a C++ code with the CPU intensive function “foo” that we want to benchmark:
...
clock_t ticks = clock(); //line 1: get the cpu ticks before exec of foo
foo(); //line 2
cout << clock() - ticks << endl; //line 3: print the difference
...
If the CPU is in energy saving mode before line 1 the foo may be executed in a lower than expected frequency. This automatically means more time spend inside foo. An other case is when CPU is in normal mode before line 1 (for some reason). The execution time of foo will be faster compared to the first case.
To solve the problem we simply have to disable the energy saving mode. To do that we go to our BIOS and change the appropriate setting. Unfortunately this is not always a solution. Firstly many laptops dont offer that kind of option and secondly its pretty stupid to change a BIOS setting every time we have to benchmark. Another simple solution is to execute CPU intensive code before line 1 so we can force the normal mode before entering foo.
In this bunch of lines we stated that there is a potential drawback when benchmarking code. This doesnt happen often and may be a minor problem for large pieces of code. Keep it in mind though.
|
|
| |
| |
| Mon 29 Dec 08 - Microsoft: The king for how long? |
|
A few years back the situation in Personal Computing was pretty straightforward. Windows was the leading platform and Microsoft the unchallenged king. Simple as that. As we move forward certain changes drove the market in new uncharted roads. Even though MS is still the king its difficult to predict how this big but un-flexible giant will adapt to the new playground.
Before going deep and analyze these changes we have to state the importance of PC gaming for Windows platform. Note that the 99% of the games are using Microsoft's Direct3D graphics API and thus gaming is a “MS only” product. Gaming is a big reason why people start with Windows and one of the biggest advantages for MS. The kids make their first contact with computing though games and thus Windows. Bottom line, if PC gaming cease to exist in it's current form then Windows will be in serious danger.
Ok now its a good time to see what are those changes in the market and why they are so important for the future of MS.
1) PC gaming in distress. PC gaming appears to be in critical state. Piracy is making everything difficult and the market is slowly shifting towards the consoles. MS also driving some of these changes with its XBOX consoles. Is MS digging its own grave?
2) Laptops. Laptops, notebooks and mobile PCs in general are gaining high acceptance the recent years. The prices drop, the competition is healthy and for the first time laptops surpassed the desktop sales. Despite their advantages, laptops are not gaming platforms. More important the are slow, especially notebooks, and the need a fast OS to run smoothly. To sum up, they dont play games and they need a fast an versatile OS. The buyer faces a binary choise: The -almost 8 years old- WinXP or a fast and lightweight Linux distro. It is a fact that for the very fist time we see computers with Linux preinstalled.
3) Competition. Six years after WinXP, Vista followed. Many disappointed by the lack of innovation, the slow computer response and the useless and craptastic interface. People all around the web were asking ways to get rid of their preinstalled Vista in their newly acquired laptop. Where windows failed others came to fill the gap. Linux and MacOS shaped very well over the years, both innovating and expanding their horizons. It is a fact that Windows loose ground in favor of Mac and Linux. Apart from operating systems MS faces harsh competition in other territories also. Examples are: browsing, office suites, web applications and many more. If people change their habits and move closer to multiplatform solutions then a switch to another OS is more probable.
4) GPGPU APIs (CUDA, OpenCL etc). Without analyzing much, GPGPU is a technology that makes video accelerators to act like a general processor unit (like our CPU) and thus executing abstract code. If these technologies gain acceptance many will try to write their own graphics API. OpenGL and Direct3D will face a serious threat. DX3D facing a threat means MS faces it also. It is a fact that MS did not agree to adapt OpenCL as an open standard.
5) The most hated. As the years progressed MS came to be the most hated company in computing. Failed promises, marketing tricks, monopolistic tactics, war against open source and many more placed MS in this position. Over the years the market treats MS with depreciation. It is a fact that Steve Balmer is aware of that. To verify look up a recent interview of his.
In this new era the market is changing rapidly. MS is forcing some of these changes either from making mistakes or pushing the market in a certain direction. Bottom line is that slowly but steady Mac and Linux are gaining ground. Will this continue? Will MS continue to be the unchallengeable leader? We will see over time.
|
|
| |
| |
| |
|
« | ‹ Prev |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Next › | »  |
|
|
|