Estudando o código de three.webgpu.js , me deparei com os termos "profundidade linear", "profundidade de perspectiva" e "profundidade ortográfica". Sei que há uma diferença visual entre projeções de perspectiva e ortográficas, mas por que o viewZ
valor seria diferente entre as diferentes projeções? Além disso, profundidade linear é apenas outro nome para profundidade ortográfica?
Fui inspirado a fazer essa pergunta depois de estudar as funções viewZToOrthographicDepth
e viewZToPerspectiveDepth
, e perceber que não há nenhuma viewZToLinearDepth
função.
const viewZToOrthographicDepth = (viewZ, near, far) => viewZ.add(near).div(near.sub(far));
const viewZToPerspectiveDepth = (viewZ, near, far) => near.add(viewZ).mul(far).div(far.sub(near).mul(viewZ));
Nota: Estou me referindo especificamente aos valores de profundidade (z) entre cada tipo de projeção.