Я пишу шейдер, который требует знания расстояния между точкой и началом. Это линия у меня был изначально:Почему эта линия GLSL для вычисления расстояния дает непоследовательные результаты, когда эта работа работает так, как ожидалось?
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;
Почему первая строка производит неожиданные результаты?