OpenGL / JOGL: интенсивность света и время рендеринга, они связаны с размером модели? - PullRequest
0 голосов
/ 31 января 2012

Для приложения JOGL у меня есть модель объекта в реальном размере. Моя модель немного большая (ее можно окружить сферой радиусом 3 метра). Работая над этим, несколько вопросов озадачили меня:

  1. Влияет ли размер модели на время рендера? Точнее, если я уменьшу свою модель в 0,01 раза, у меня будет более быстрый рендер? (уменьшение модели перед импортом и без использования glScale)
  2. Предположим, я осветляю свою сцену источником света, который имеет определенную интенсивность. Если я масштабирую (вверх / вниз) мою модель, чтобы получить такой же внешний вид, я должен также масштабировать свою интенсивность света?

1 Ответ

3 голосов
/ 31 января 2012
  1. Зачем это? Вершины модели являются просто числами и обрабатываются графическим оборудованием, независимо от того, какими числами они являются. Таким же образом они всегда преобразуются текущей матрицей преобразования, независимо от того, является ли это масштабной матрицей или просто тождеством. Но это имеет значение, насколько велика ваша модель на экране (или если она даже видна). Поскольку чем больше пикселей покрывает ваша модель на экране, тем больше операций растеризации и фрагментов (фрагментный шейдер или текстурирование с фиксированной функцией). Но опять же, это различие может не повлиять на общую производительность, когда время растеризации и обработки фрагмента перевешивается временем обработки вершины (которое, в свою очередь, не заботится о размере модели или видимости).

  2. Я не понимаю этого вопроса. Интенсивность света полностью не зависит от размера модели. Конечно, модель меньшего размера реагирует на свет иначе, чем модель большего размера, но это не имеет никакого значения, если вы предварительно масштабируете свою модель или используете glScale, преобразуйте ее во время выполнения.

...