GPU рендер на сферу - PullRequest
       3

GPU рендер на сферу

3 голосов
/ 01 августа 2010

Я пытаюсь написать оптимизированный код, который визуализирует трехмерную сцену, используя OpenGL, на сферу, а затем отображает развернутую сферу на экране, то есть создает планарную карту чисто отражающей сферы. В математических терминах я хотел бы создать проекционную карту, где ось x - это полярный угол, а ось y - это азимут.

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

Мне кажется, это довольно утомительный подход. Интересно, есть ли способ использовать это с помощью шейдеров или каким-нибудь GPU-умным методом.

Спасибо

S.

Ответы [ 3 ]

0 голосов
/ 01 августа 2010

Вы, похоже, запрашиваете отображение сферы в OpenGL .У NeHe есть учебник по отображению сферы, который может быть полезен.

0 голосов
/ 01 августа 2010

Я могу дать вам два решения.

Первый - сделать стандартную визуализацию для текстуры, но с кубической картой, прикрепленной в качестве буфера назначения.Если ваше оборудование достаточно новое, это можно сделать за один проход.Это будет иметь дело со всей необходимой математикой в ​​HW для вас, но перераспределение данных кубических карт не является идеальным (довольно много искажений, если углы).В большинстве случаев этого должно быть достаточно.

После этого вы визуализируете квад на экране, а в шейдере вы отображаете свои UV-координаты на векторы xyz, используя сферическое отображение staightforwad.HW вычислит для вас, какую сторону кубической карты выбрать, с какой UV.

Вторая более или менее такая же, но с пользовательской деформацией и меньшей поддержкой HW: двойные параболоиды .Двух параболоидов может быть недостаточно, но вы можете немного изменить уравнения и сделать 6 проходов.Проход рендеринга тот же, но на этот раз вы сами выбираете правильную текстуру и вычисляете UV.

0 голосов
/ 01 августа 2010

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

...