воскресенье, 22 июля 2012 г.

Инстансинг. Часть вторая, псевдоинстансинг.

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

Инстансинг. Часть первая, прокси и инстансы.

В предыдущих статьях мы с вами рассмотрели способы вывода низкополигональной геометрии и оценили производительность разных подходов. В этих статьях шла речь об объектах, составленных из нескольких полигонов, таких как частицы, буквы, спрайты, элементы GUI и прочее. Так же мы рассмотрели и более сложные случаи - системы частиц, основное отличие которых состояло в их количестве и динамичности. Но есть и другой класс объектов, в него попадают объекты с количеством полигонов более сотни, это могут быть всякие скамейки, столы, вазы, астероиды, столбы, модели в стратегиях, актеры и прочее. В некоторых случаях это могут быть примитивы (шар, тор, цилиндр и прочее), но чаще это отдельные модели. Для начала давайте определим отличительные черты таких объектов, относительно рассмотренных ранее элементов GUI.

вторник, 17 июля 2012 г.

Частицы. Часть четвертая, полевые испытания.

Часть первая, и снова тесты
Часть вторая, если очень хочется
Часть третья, миллионы частиц
Часть четвертая, полевые испытания

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

Частицы. Часть третья, миллионы частиц.

Часть первая, и снова тесты
Часть вторая, если очень хочется
Часть третья, миллионы частиц
Часть четвертая, полевые испытания
В предыдущей части мы с вами разобрали основные методы визуализации частиц, так же определились что время вывода частиц является сумой времени необходимого на передачу этой частицы в видеопамять и времени, необходимом для вывода этой частицы. Но это в идеальном случае, если предположить что у нас уже имеется готовый массив с координатами. Обычно это не так.

Частицы. Часть вторая, если очень хочется.

Часть первая, и снова тесты
Часть вторая, если очень хочется
Часть третья, миллионы частиц
Часть четвертая, полевые испытания
В предыдущей части статьи мы с вами выяснили что нужно любыми доступными средствами уменьшать объем передаваемых по шине данных, пускай даже за счет увеличения нагрузки на GPU. Но что можно сократить в четырехугольнике? Точно не количество вершин :)

Частицы. Часть первая, и снова тесты.


Часть первая, и снова тесты
Часть вторая, если очень хочется
Часть третья, миллионы частиц
Часть четвертая, полевые испытания


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