Как создать четную сферу с треугольниками в OpenGL? - PullRequest
13 голосов
/ 30 декабря 2010

Существует ли формула, которая генерирует набор координат треугольников, вершины которых расположены на сфере?

Я, вероятно, ищу что-то, что делает что-то похожее на gluSphere.Тем не менее, мне нужно раскрасить разные треугольники в специфические цвета, так что кажется, что я не могу использовать gluSphere.

Также: я понимаю, что gluSphere рисует края вдоль линий с равными долготой и широтой,влечет за собой маленькие треугольники на полюсах по сравнению с их размером на экваторе.Теперь, если такая формула будет генерировать треугольники так, чтобы их различие в размерах было минимальным, это было бы здорово.

Ответы [ 2 ]

22 голосов
/ 08 декабря 2011

Для вычисления нормалей и уф-карты .

К счастью, есть удивительный трюк для вычисления нормалей на сфере. Если вы подумаете об этом, то нормали на сфере - это не что иное, как направление от центра сферы к этой точке !! Кроме того, если вы обдумаете это, , это означает, что нормали буквально равны точке ! то есть, это тот же вектор! - просто не забудьте нормализовать длину, для нормального.

Вы можете выиграть ставки на бар на этом: "Есть ли форма, где все нормали оказываются точно ... равными вершинам?" На первый взгляд, вы думаете, что это невозможно, никакой такой случайной формы не может быть. Но, конечно, ответом будет просто «сфера с радиусом один!» Хех!

Относительно УФ. На сфере это относительно просто, если вы проецируете на 2D «очевидным» образом, проекцией карты в «прямоугольном стиле» . В этом случае u и v - это просто долгота / широта любой точки, нормализованная до 0,1.

Надеюсь, это поможет!

Вот классическая веб-страница на все времена, которая прекрасно объясняет, как построить иосферу. http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html

5 голосов
/ 30 декабря 2010

Начните с единичного икосаэдра.Затем примените несколько однородных подразделений треугольников, нормализуя получающиеся вершины на расстоянии до начала координат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...