Wednesday, July 23, 2008

Weapon Sight and Lock mode

i worked on some game play features that allows you to control your weapon more easy.
1. adding weapon sight on the screen so you know where you are aiming at also when you are aiming on game entity (for now bots) you will see the name of the bot and the distance near your sight icon.
note that each weapon have its own sight icon.
2. weapon lock mode, allows you to lock your weapon to your shoulder, and set your view with weapon sight for more accurate aiming, also it increase weapon accuracy while shoting.
here his few screenshots:
note: hud removed from those sceenshots.

bot name and distance

lock mode active

Monday, July 14, 2008

SSAO Integration

last time i was playing with SSAO effect inside render monkey, after i was pleased with the results i started to integrate it into my engine.
it was very easy to integrate it because my flexible material system, the only thing i needed to do is to scale the parameters to fit my scene scale.
i still think there is few tiny things to fix (i don't know if i would fix them), but still it adds very nice global illumination effect :)
here is few screenshots:

shadows without ssao

shadows with ssao

ssao texture at top left corner

Friday, July 11, 2008

Screen Space Ambient Occlusion (SSAO)

hi, since the game crysis (by crytek) every talks about it, so i thought to give it a try :)
ambient occlusion is a global shading method that computes how much a certain point need to be illuminated based on the surrounding objects.
in computer graphics we can calculated this by taking specific point in space and cast x rays in random directions from that point and for every ray hit we check add or subtract "illumination value" from that point based on the closeness of the object the ray hit.
the closest the surface we hit, the point will be less illuminated, so if we have a point in space surrounded by alot of objects the point will be darken while other point that does not have a lot of objects around will be lighten.
ssao approximate this by using the depth buffer, for every pixel we check/sample few pixels around and try to compute the amount of occlusion from those points based on the difference in the depth of the current pixel and the pixels around, this technique has a lot of tiny things to set up before you could make it looks good, because of that i'v chosen to use ati render monkey application to create and test my shaders.
i'm glade to say the after one day and a half i got it, and it looks very good.
here is a screenshot from my results: