Как компьютер отображает объект на экране?

18

Вся ли компьютерная графика отображается с использованием полигонов? Я имею в виду, что некоторые компьютерные геометрии математически представлены в форме уравнений (например, программное обеспечение САПР).

Должен ли компьютер сначала выполнить тесселяцию этих геометрий, прежде чем он сможет должным образом визуализировать визуализацию на экране, или существуют другие способы вывода изображения на экран без необходимости тесселяции объекта?

Редактировать: я думаю, более конкретно сосредоточены на GPU. Как доза GPU это делает? какие входные дозы ему требуются, то есть, с какими модельными форматами работает GPU? может ли он использовать точное математическое представление напрямую или дозировать тесселяцию самой модели перед тем, как фактически выполнить визуализацию для экранирования или для дозирования, для которой требуется графическая модель, для начала.

Кроме того, под тесселяцией я подразумеваю способ, которым компьютер разбивает математическое представление объекта на поверхностное приближение многоугольников (почти всегда треугольников). Чем больше полигонов используется, тем ближе поверхность к реальному объекту.

Faken
источник
4
Такой интересный вопрос!
r0ca

Ответы:

2

Это продолжение вашего комментария к ответу @ nik:

Подавляющее большинство CAD-систем используют полигоны (хорошо треугольники) для визуализации своих моделей.

Они будут хранить модели различными способами на основе моделей CSG (Конструктивная сплошная геометрия) или B-rep (Граничное представление), например, но когда дело доходит до отображения, они будут огранены, а треугольники отправлены в графический процессор для рисования. ,

Каждая система будет иметь свое собственное решение для разбиения модели на треугольники.

ChrisF
источник
7

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

Здесь также есть ссылка « Критическая история компьютерной графики и анимации» .
Вы можете перейти к интересующему разделу со страницы их содержания.


Обновление: мне интересно, основан ли ваш вопрос на концепциях, связанных с этим сайтом UnlimitedDetail .

Большинство современных 3D-графики основаны на так называемой многоугольной системе; это система, которая строит вещи из маленьких плоских форм, называемых полигонами.

...

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

и т.д...

Nik
источник
+1 за упоминание «Критической истории компьютерной графики и анимации». много читать, но очень интересно ;-)
Diskilla
Мой уровень любопытства обычно очень низок, вплоть до математики, лежащей в основе идеи (хотя я не ожидаю такого подробного ответа, я просто хочу узнать, в целом, что использует графический процессор). Что касается того, с чем связан мой вопрос, то он конкретно связан с программным обеспечением САПР и тем, как они конвертируют между своими математическими моделями и тем, что вы видите на экране (с помощью визуализации с помощью графического процессора). Почему? Мне просто интересно.
Снято
2

Если вы действительно хотите углубиться в механику графического процессора и методы рендеринга, то в Интернете можно найти следующую книгу:

GPU Gems 3, Addison-Wesley Professional (12 августа 2007 г.)

Графический процессор Gems 3 отредактирован Хьюбертом Нгуеном, менеджером по образованию разработчиков в NVIDIA. Хьюберт - графический инженер, который работал в демоверсии NVIDIA, прежде чем перейти на свою нынешнюю должность. Его работы представлены на обложках GPU Gems (Addison-Wesley, 2004) и GPU Gems 2.

GPU Gems 3 представляет собой набор самых современных примеров программирования на GPU. Речь идет о применении параллельной обработки данных. Первые четыре раздела посвящены графическим приложениям графических процессоров в областях геометрии, освещения и теней, рендеринга и эффектов изображения. Темы в пятом и шестом разделах расширяют сферу применения, предоставляя конкретные примеры неграфических приложений, которые теперь могут быть решены с помощью технологии параллельных данных GPU. Эти приложения разнообразны: от моделирования твердого тела до моделирования потока жидкости, от сопоставления сигнатур вирусов до шифрования и дешифрования, от генерации случайных чисел до вычисления гауссовских.

Предыдущие выпуски также онлайн и все еще очень достойны чтения:

Gem Gem: методы программирования, советы и рекомендации для графики в реальном времени, под редакцией Рандимы Фернандо, март 2004 г.

GPU Gems 2: Техника для графического и компьютерного интенсивного программирования, под редакцией Мэтта Фарра, март 2005 г.

Программирование вершин, геометрии и пиксельных шейдеров, второе издание, Вольфганга Энгеля, Джека Хоксли, Ральфа Корнмана, Нико Суни и Джейсона Зинка, декабрь 2008 г.

Последний - неровный набросок книги, но чрезвычайно ценный в некоторых местах. Глава по освещению Джека Хоксли дает подробные объяснения различных моделей освещения, а также рабочий код шейдера.

harrymc
источник
1

Рендеринг чего-либо всегда означает, что вы используете полигоны. Это даже используется художниками. Полигон означает плоскую фигуру. Чтобы создать нечто трехмерное, вы всегда берете несколько полигонов и соединяете их вместе. Чем больше плоских фигур вы используете, тем больше деталей вы можете добавить к трехмерной фигуре. Уравнения используются для расчета таких вещей, как, например, сияние объекта.

Чтобы полностью понять эту процедуру, вы должны прочитать статью в Википедии, которую уже упоминал ник .

ред .: я больше не уверен в своей интерпретации того, что вы подразумеваете под «тесселяцией объекта». Если возможно, не могли бы вы объяснить это подробно?

Diskilla
источник
Под тесселяцией я подразумеваю, что твердый объект разбивается на ряд плоских многоугольников (почти всегда треугольников), которые приближаются к поверхности объекта. Чем больше количество треугольников, тем ближе представление к фактической поверхности объекта.
Снято
1

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

Например, некоторые графические процессоры предоставляют полные интерфейсы представления трехмерного мировоззрения, в то время как другие менее способны.

ASIC (и не только) лежат в основе того, как GPU сегодня делают свое волшебство. Возможность заложить в кремний такие сложности, как полностью работающие виртуальные машины в подпрограмме, - вот что заставляет всю магию происходить. Помимо тесселяции, есть логика поверхности, теневое копирование и многое другое, которые обрабатываются в логике GPU.

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

PBR
источник