An apparatus to derive topology information comprising: a projector configured to illuminate a scene by projecting shifted versions of a fringe pattern onto the scene; a camera configured to capture images of the illuminated scene, each image comprising a distinct array of pixels arranged in rows in a first spatial direction and columns in a second spatial direction; a processor configured to derive topology information of the scene, wherein to derive the topology information of the scene, the processor is configured to: analyze the captured images to obtain phase information associated with one of the pixels; and estimate a surface normal for the pixel using a partial derivative of the phase information associated with the pixel in the first spatial direction and a partial derivative of the phase information associated with the pixel in the second spatial direction by: determining a tangential vector of a surface patch of the scene associated with the pixel using a first vector perpendicular to an illumination direction and a projected fringe direction and a second vector perpendicular to a viewing direction and an observed fringe direction; and determining the surface normal using the tangential vector and a comparison of the lengths of a gradient vector defined by the partial derivatives in the first and second spatial directions and a gradient vector defined by partial derivatives of a phase of the projected fringe pattern in the first and second spatial directions of the fringe pattern. a projector configured to illuminate a scene by projecting shifted versions of a fringe pattern onto the scene; a camera configured to capture images of the illuminated scene, each image comprising a distinct array of pixels arranged in rows in a first spatial direction and columns in a second spatial direction; a processor configured to derive topology information of the scene, wherein to derive the topology information of the scene, the processor is configured to: analyze the captured images to obtain phase information associated with one of the pixels; and estimate a surface normal for the pixel using a partial derivative of the phase information associated with the pixel in the first spatial direction and a partial derivative of the phase information associated with the pixel in the second spatial direction by: determining a tangential vector of a surface patch of the scene associated with the pixel using a first vector perpendicular to an illumination direction and a projected fringe direction and a second vector perpendicular to a viewing direction and an observed fringe direction; and determining the surface normal using the tangential vector and a comparison of the lengths of a gradient vector defined by the partial derivatives in the first and second spatial directions and a gradient vector defined by partial derivatives of a phase of the projected fringe pattern in the first and second spatial directions of the fringe pattern. analyze the captured images to obtain phase information associated with one of the pixels; and estimate a surface normal for the pixel using a partial derivative of the phase information associated with the pixel in the first spatial direction and a partial derivative of the phase information associated with the pixel in the second spatial direction by: determining a tangential vector of a surface patch of the scene associated with the pixel using a first vector perpendicular to an illumination direction and a projected fringe direction and a second vector perpendicular to a viewing direction and an observed fringe direction; and determining the surface normal using the tangential vector and a comparison of the lengths of a gradient vector defined by the partial derivatives in the first and second spatial directions and a gradient vector defined by partial derivatives of a phase of the projected fringe pattern in the first and second spatial directions of the fringe pattern. determining a tangential vector of a surface patch of the scene associated with the pixel using a first vector perpendicular to an illumination direction and a projected fringe direction and a second vector perpendicular to a viewing direction and an observed fringe direction; and determining the surface normal using the tangential vector and a comparison of the lengths of a gradient vector defined by the partial derivatives in the first and second spatial directions and a gradient vector defined by partial derivatives of a phase of the projected fringe pattern in the first and second spatial directions of the fringe pattern.