Jump to content

Recommended Posts

Posted

Useful little function for getting global position of a pixel:

vec3 screenToWorld(in vec3 screencoord)
{
vec4 coord = vec4(((screencoord.x/buffersize.x)-0.5) * 2.0 * (buffersize.x/buffersize.y),((-screencoord.y/buffersize.y)+0.5) * 2.0,screencoord.z,1.0f);
coord.x *= coord.z / camerazoom;
coord.y *= coord.z / camerazoom;
return (cameramatrix * coord).xyz;
}

 

Usage:

	float depth = texelFetch(texture0, ivec2(texcoord*buffersize*AO_DOWNSAMPLING), 0).x;

vec3 worldCoord = screenToWorld(vec3(gl_FragCoord.xy,depthToPosition(depth,camerarange)))*1.0;

Let's build cool stuff and have fun. :)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...