Just a short tip this time. When debugging multi-threading applications it would be a bit easier when threads in Visual Studio had names like "Main Thread", "Rendering Thread", "AI Thread" etc. It would save a few seconds of guessing what is what. As debugging MT apps is rather difficult task by itself every way of making the pain smaller is good :)
Monday, 31 May 2010
Sunday, 30 May 2010
Orwig technique
The more familiar I got with GIMP (the post applies to Photoshop too :) ) and photography techniques, the more obvious for me it becomes that every graphics programmer should take some lessons in using it. Photoshop is a great source of various post-processing effects. Yesterday I came across tutorial about Chris Orwig's technique. I'm not linking to it as it is Polish language material only. The photographer showed how to enhance the image using it. It's very simple and is useful especially in situations when there are several light sources (strong ones).
Categories:
effects,
nGENE,
photography,
photoshopping games
Saturday, 29 May 2010
Time lapse photography
Time lapse photography or time lapse movies are what their names imply. This technique of photography can be described as the 'fast-forward' of time. You have to take a lot of photos (probably a few hundred or thousand) and then build the movie from them by putting them in order in which they were taken (eg. in the Movie Maker). Each of the photos is a single frame of a movie so with 30 frames per second you will need as many as 150 photos for a short 5 seconds movie (with Movie Maker you can have only 8 frames per second unfortunately! with Movie Maker Live it's even worse)! And there are time lapse movies lasting for many minutes. To have smooth and constant speed of movement it is required that photos are taken in the same interval (let's say every 10 seconds).
Monday, 24 May 2010
Heat & Haze effect
Heat & haze effect (or simply heat haze which seems to be more proper term even though the first one is more frequently used in regards to RT graphics) is the effect caused by the difference in air temperatures along the view vector. As the light from the object travels to the observer it is reflected and refracted differently by those different medias (reflection is of course caused by particles present in the air). If the air moves slightly (you know warm air travels up and cooler travels down) it can cause shimmering of some objects in the distance. Of course it is only visual impression. This effect can be noticed above hot ground (especially asphalt or scorched desert sand which can cause appearance of mirages) in summer when air seems to float just above it.
The same effect can be well seen if there are big differences in temperatures, eg. fire is hot but the air several meters from it is much cooler. However internal workings are exactly the same.
The same effect can be well seen if there are big differences in temperatures, eg. fire is hot but the air several meters from it is much cooler. However internal workings are exactly the same.
Friday, 21 May 2010
Debugging HLSL shaders
When developing for DirectX (or alternatively for XNA or XBox), PIX utility from Microsoft is one of the most important and useful tools for every graphics programmer (apart from tools from ATI/nVidia). Although its capabilities on PC are somewhat limited when compared to the XBox version, it still has a lot to offer. One of the features I like the most and will describe in this entry is shader debugging. It's nowhere near the features of Visual Studio debugger but still can come in handy at difficult times.
Sunday, 16 May 2010
Character animation. Part 3 - animation blending
With the skeletal animation basics covered in part 1 and part 2 of this tutorial it's time to dig deeper into character animation. This time I'm introducing animation blending - a useful technique to procedurally generate new animations and transitions between different animation clips (eg. walking and running) of key framed skeletal animation. Some concepts presented here apply to Inverse Kinematics too so stay focused.
Let's say you have a character which can run, walk and wave its hands while standing still. 3 animation clips is not much. Besides you would probably like to have animation with the character walking and waving a hand at the same time (but the artist didn't manage to create one unfortunately) and yet another useful thing would be to have smooth transition between walking and running clips instead of switching animations what would result in an ugly and artificial transition.
Welcome to the world of animation blending then :)
Let's say you have a character which can run, walk and wave its hands while standing still. 3 animation clips is not much. Besides you would probably like to have animation with the character walking and waving a hand at the same time (but the artist didn't manage to create one unfortunately) and yet another useful thing would be to have smooth transition between walking and running clips instead of switching animations what would result in an ugly and artificial transition.
Welcome to the world of animation blending then :)
Categories:
algorithms,
gameplay,
nGENE
Friday, 14 May 2010
Character animation. Part 2 - implementing skeletal animation
With the Collada animated meshes supported in nGENE* I finally have some time to post anything here. A long time ago I promised animation series but managed to write only one post so far. So it's high time to write something more. This time I will focus on the implementation details of a simple skeletal animation system on the GPU. Next post will be about animation blending. And then morphing will follow.
* Parsing animation was a real pain, believe me. Collada is good but exporters for Blender definitely are not. They're missing a lot of useful information and the exported file is larger and requires more work with it than it could be according to the Collada specification. Another problem I see now, is that Collada is pretty huge. I mean to write a fully working importer/exporter A LOT of work is required. There are so many options... many things can be achieved in more than one way (rotations for example... quaternions are of course possible but the other option to go is to use Euler angles with any order of the angles possible...).
* Parsing animation was a real pain, believe me. Collada is good but exporters for Blender definitely are not. They're missing a lot of useful information and the exported file is larger and requires more work with it than it could be according to the Collada specification. Another problem I see now, is that Collada is pretty huge. I mean to write a fully working importer/exporter A LOT of work is required. There are so many options... many things can be achieved in more than one way (rotations for example... quaternions are of course possible but the other option to go is to use Euler angles with any order of the angles possible...).
Tuesday, 4 May 2010
Royal Baths Park and the Rule of Thirds
Two days ago I made yet another attempt at photography (long walks are good for that). This time I went to the Royal Baths Park (Lazienki Krolewskie w Warszawie -> info for Polish readers to avoid any confusion :) ) and took pics of some animals and plants.
Saturday, 1 May 2010
Site - one year after
Not long time ago a year passed since I'd started this blog. Before that I was writing only in Polish language somewhere else. Switching to English was a wise decision it seems. I can share my ideas and results of my work (both in programming and photography fields) with a much wider audience and yet I get more feedback on them. This suggestions help me improve techniques I use, think more carefully about them or sometimes even made me to completely rethink some of them.
I hope that in general my posts are useful or interesting but I would be glad for any comments here about what you will prefer to read and what is boring/useless in my posts so I can improve their quality in the following year.
I have a lot of draft posts waiting for editing and publishing. They cover various areas like animation, multi-threading, gameplay and AI so stay tuned :)
I hope that in general my posts are useful or interesting but I would be glad for any comments here about what you will prefer to read and what is boring/useless in my posts so I can improve their quality in the following year.
I have a lot of draft posts waiting for editing and publishing. They cover various areas like animation, multi-threading, gameplay and AI so stay tuned :)
Subscribe to:
Posts (Atom)