Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


keym

Member Since 08 Dec 2010
Offline Last Active Nov 24 2013 03:53 AM

#5035832 SLERP issues

Posted by keym on 23 February 2013 - 01:15 PM

Bump. Still stuck.




#4991074 Deferred rendering basics

Posted by keym on 17 October 2012 - 04:19 AM

Hello,
I'm trying to implement deferred rendering and I'm stuck with this problem. I do all calculations in view space, I set the light position for testing to (0,0,0) - camera position. But the problem is when I look up or down the lighting changes to brighter or darker. It sounds like I have something wrong with matrices but I checked that many times and still no luck. I'm not sure if my reconstruction from depth is right because it's a new thing to me and I may be doing something wrong here. But on the other hand lighting doesn't change when I move backward or forward and keep the angle (so I guess position is correct?). Anyway I'm posting some pictures, maybe someone can figure out where I go wrong. For now I'm trying to compute lighting with geometry normals and then move with bump maps. To me my normals look too bright, pinkish, dull etc. when I compare them to normals from Killzone paper or other tutorials. Maybe this is the case?

Thanks for watching

Edit: I consider simplest scenario for now - only diffuse lighting, no attenuation, no specular and no ambient

This is how I recreate position from depth in light pass:
float z = f1tex2D(depth_map, texCoord);
float x = texCoord.x * 2 - 1;
float y = (1 - texCoord.y) * 2 - 1;
float4 vProjectedPos = float4(x, y, z, 1.0f);
//unproject the position from clip space to view space using inv. proj. matrix
float4 vPositionVS = mul(invProj, vProjectedPos);
float3 vsPos = vPositionVS.xyz / vPositionVS.w;

I use depth buffer to get depth or I can use depth encoded as color which is:
in vertex program:
outPosition = mul(ModelViewProj, position);
vDepthCS.xy = outPosition.zw;

and in fragment program I do division z/w and pack it as color but the result is the same as with depth buffer.

Attached Thumbnails

  • deferred.jpg
  • deferred.jpg



PARTNERS