2010-06-04 2 views
3

Какие части трубопроводов выполняются с использованием процессора и которые выполняются с использованием графического процессора?Какие части графических трубопроводов выполняются с использованием CPU и GPU?

Чтение Wikipedia on Graphics Pipeline, может быть, мой вопрос точно не отражает то, что я прошу.

Ссылаясь на this question, какие «этапы» выполняются в ЦП и которые выполняются в графическом процессоре?

Edit:
Мой вопрос больше в какие части логических шагов высокого уровня, необходимых для отображения местности + 3D модели [из файлов] используется CPU/GPU вместо того, какие функции.

+2

Возможный дубликат: http://stackoverflow.com/questions/2713417/which-opengl-functions-are-not-gpu-accelerated –

+1

@xavier Спасибо! Это отличная тема. –

ответ

2

Какие части трубопроводов выполняются с использованием процессора и которые выполняются с использованием графического процессора?

Насколько я знаю ...
Это зависит полностью на аппаратной реализации, драйвера и OpenGL. Все, что вы можете делать в OpenGL, работает, но вы не можете быть на 100% уверенным, где происходит обработка - он удобно скрыт от вас (это на самом деле одно из преимуществ OpenGL).
Есть полнофункциональные эмуляторы OpenGL, например - mesa3d (несертифицированные). Поместите файл opengl32.dll (если вы находитесь в Windows) в свою папку программ, и все будет работать на процессоре.

Как правило, растеризация (последний этап конвейера - альфа-смесь, поместив пиксель, ztest) выполняется на аппаратном уровне. Получите старую видеокарту, и вполне возможно, что остальная функциональность будет работать на процессоре.Преобразования вершин, обработка вершин и даже стандартное освещение могут выполняться на процессоре (и они выполнялись на процессоре в течение длительного времени) - в зависимости от видеокарты. Тем не менее, я должен признать, что видеокарты без поддержки аппаратного TL (преобразования и освещения) довольно старые. AFAIK, трансформация и освещение всегда выполняются на процессоре, если карта поддерживает только полное аппаратное ускорение DirectX 7 (зависит от Windows-платформы).

Там может быть платформа-зависимый способ получить возможности видеокарты в OpenGL, хотя ..

Side Примечание: DirectX дает больше информации о возможностях карты, а также способы контроля, что происходит, где (то есть вы можете выбрать программное обеспечение T & L, даже если видеокарта поддерживает аппаратное ускорение - в некоторых случаях это может быть необходимо). Это связано с штрафом - DirectX менее гибкий, чем OpenGL, сложнее в использовании, сложнее экспериментировать, он доступен на меньших платформах, чем OpenGL, и беспокоится о том, какая функция поддерживается и на что не требуется время разработки.

1

Ответ зависит от того, какой GPU (поскольку они отличаются возможностями HW, особенно в интегрированных), но на современных неинтегрированных графических процессорах весь конвейер реализован в HW. Сюда относится отбраковка, z-сортировка и окклюзия.

Интегрированные чипсеты, такие как Intel, имеют меньше функций HW, например, они обычно выполняют трансформацию & с использованием программного обеспечения.

+0

Пожалуйста, не отвечайте на правильные ответы. –

+0

Современные интегрированные чипсеты могут выполнять T & L (ака обработка вершин) в аппаратных средствах. – Bahbar

0

Это зависит от конфигурации системы, по крайней мере, процессор должен выдавать команды на графический процессор (отправлять списки вершин, загружать текстуры и т. Д.), А графический процессор обычно выполняет все геометрические преобразования, освещение и т. д.

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

Если вы используете 3D-движок, он может также сделать некоторые предварительные оптимизации на процессоре, чтобы уменьшить количество треугольников, которые должен обрабатывать GPU, например, отбрасывание заранее определенных частей геометрии, которые, как известно, скрыты (например, с использованием таких двигателей, как IdTech BSP или порталов, таких как Unreal Engine).

Такие вещи, как перемещение и поворот сетки моделей (например, ходячие анимации), обычно выполняются в CPU, но в настоящее время я думаю, что тенденция будет заключаться в HW, чтобы ускорить их.

Что касается ссылки на wikipedia, все этапы, упомянутые здесь, обычно выполняются на графическом процессоре, но это зависит от программного обеспечения, выполняющегося в CPU, чтобы решить, какие полигоны будут отправляться на обработку (даже если они будут отброшены GPU позже, потому что они скрыты или выходят из просмотра frustrum).