float3 Frustum::Project(const float3 &point) const { float4 projectedPoint = ViewProjMatrix().Mul(float4(point, 1.f)); projectedPoint /= projectedPoint.w; // Post-projective perspective divide. return projectedPoint.xyz(); }
vec Frustum::Project(const vec &point) const { float4 projectedPoint = ViewProjMatrix().Mul(POINT_TO_FLOAT4(point)); projectedPoint /= projectedPoint.w; // Post-projective perspective divide. return FLOAT4_TO_POINT(projectedPoint); }