Josh Posted May 27, 2016 Posted May 27, 2016 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; Quote Let's build cool stuff and have fun.
martyj Posted May 27, 2016 Posted May 27, 2016 I assume z references the distance into the screen in the camera normal's direction? Quote
Recommended Posts
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.