Josh Posted May 27, 2016 Share 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 My job is to make tools you love, with the features you want, and performance you can't live without. Link to comment Share on other sites More sharing options...
martyj Posted May 27, 2016 Share Posted May 27, 2016 I assume z references the distance into the screen in the camera normal's direction? Quote Link to comment Share on other sites More sharing options...
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.