Search Unity

How to calculate non linear depth?

Discussion in 'Shaders' started by quizcanners, Mar 30, 2015.

  1. quizcanners

    quizcanners

    Joined:
    Feb 6, 2015
    Posts:
    109
    If I do this:

    Code (CSharp):
    1. half depth=tex2Dproj(_CameraDepthTexture,UNITY_PROJ_COORD(i.projPos)).r;
    I get depth from CameraDepthBuffer. How can I calculate this depth before rendering to CameraDepthBuffer?

    I can do:

    Code (CSharp):
    1. proj=ComputeScreenPos(o.pos)
    To get linear depth (proj.z). And

    Code (CSharp):
    1. LinearEyeDepth(depth);
    To get linear eye depth from camera depth. So I think there is a way to get camera depth from linear depth, like reverse function to the one above.

    How to get this depth?
     
  2. quizcanners

    quizcanners

    Joined:
    Feb 6, 2015
    Posts:
    109
    Figured it out:

    Code (CSharp):
    1. i.projPos.z/i.projPos.w