我正在编写一个着色器,它需要了解点与原点之间的距离。这是我最初的行:
float distanceToOrigin = sqrt((pow(a_Position.x,2.0)+pow(a_Position.y,2.0)+pow(a_Position.z,2.0));
但是这样做会导致顶点在场景的某些区域消失。
用这条线代替这条线来计算曼哈顿而不是欧几里得距离会产生我期望的曼哈顿距离的结果。
float distanceToOrigin = a_position.x + a_position.y + a_position.z;
为什么第一行可能会产生意想不到的结果?