К основному контенту

О разработке графической подсистемы

Наша команда, помимо разработки новых функций программы, непрерывно работает над улучшением производительности всех продуктов Renga. Для этого мы используем современные средства сбора характеристик программы (профилирование), изучаем и внедряем новые технологии и пишем тесты производительности на существующую функциональность. Всё это позволяет сделать программный продукт более отзывчивым и удобным для повседневного использования. О том, как мы разрабатываем графическую подсистему, рассказывает наш специалист по компьютерной графике - Евгений Коростелев.
Каждое приложение, визуализирующее виртуальную сцену (в нашем случае, модели зданий, проекции и чертежи), реализует этап расчета кадра изображения. Как правило, этот этап состоит из нескольких десятков стадий, которые в некоторых ситуациях могут требовать много вычислительных ресурсов, т.е. существенно замедлять приложение. Примером является стадия отправки команд на отрисовку - последовательность команд рисования (draw call) и передача данных на графический конвейер (адресация геометрии, свойства материала, матрица аффинных преобразований). Каждый вызов команды рисования объекта занимает процессорное время, состоящее, по большей части, из времени взаимодействия между приложением и драйвером видеокарты. Поэтому мы уменьшаем их количество. Таким образом, одним из методов увеличения скорости работы Renga является отправка команд только для геометрических объектов, попадающий в пирамиду видимости. Но мы не ограничиваемся этим, поскольку иначе приложению не хватит производительности на больших проектах.
В одном из первых обновлений мы внедрили технику дублирования геометрии, называемую геометрический инстансинг. Эта технология позволяет нам отрисовывать за одну команду рисования все копии объекта, различающиеся лишь пространственным положением и некоторыми свойствами материала. Таким образом мы задействуем соответствующие аппаратные возможности видеокарт и тем самым уменьшаем время расчета кадра. Применение инстансинга на современных видеокартах позволяет рисовать десятки тысяч копий объекта за приемлемое время.
В текущей версии Renga геометрический инстансинг поддерживается на следующих объектах: заполнители окон и дверей, лестницы и армирование объектов. В следующем выпуске это список будет расширен твердотельными (C3D) и триангуляционными объектами. На таких объектах, как стены, балки, перекрытия, кровля инстансинг не применяется, поскольку большинство из них имеет различные геометрические формы, обусловленными сопряжениями и подрезкой. Технология инстансинга полезна на тех объектах, которые имеют свыше десяти геометрических копий.
Работа над улучшением графической подсистемы продолжается, и мы надеемся, что в следующих версиях работа с Renga будет ещё более комфортной и впечатляющей. В последующих публикациях мы познакомим вас с другими аспектами этого непрерывного пути.

Комментарии

Популярные сообщения из этого блога

Освой электрику в Renga

UPD: 13.11.2024 Добрый день! Принципы проектирования всех инженерных систем в Renga одинаковы, однако каждая из них достойна отдельного внимания. В этой заметке мы расскажем и наглядно покажем на примере однокомнатной квартиры, как проектировать электрику в Renga. Надеемся, что вы попробуете повторить приведенную ниже инструкцию и это поможет вам оценить возможности Renga. Начинаем проектирование электрики с установки осветительных приборов, выключателей и розеток. Их можно размещать только на стенах, перекрытиях, колоннах и балках. Также хорошо, если перед проектированием электрики в модели расставлена мебель, если речь идет о жилых помещениях, или оборудование в промышленных. Модель квартиры, в которой будет происходить дальнейшая работа, уже подготовлена. Итак, скачайте проект, в котором расставлена мебель, и приступим. Откройте проект в любой редакции Renga. Щелкните правой кнопкой мыши на пустом месте и выберите Режим измерения > Кубический . Это необходимо, так как рас...

Как применять расчётные характеристики помещений

Последнее время очень часто задают вопросы про расчёт площади помещений. В этой заметке разберём, какие характеристики есть у помещений в Renga, как они рассчитываются и как их применять. Сначала рассмотрим способы построения помещений. Обозначить помещение можно: Автоматически по точке. В этом случае границы помещения будут определены автоматически по замкнутому контуру, в котором указана точка. При изменении конструкций, образующих контур, все расчётные характеристики помещения будут автоматически пересчитываться. Особенности работы именно с автоматическими помещениями мы рассматривали в заметке Нюансы работы с автопомещениями . С помощью способов построения Автоматически по подобию, Прямая по двум точкам, Дуга по трем точкам, Дуга по начальной точке, радиусу и конечной точке, Окружность по центру и радиусу. Способы построения Прямая по двум точкам, Дуга по трем точкам, Дуга по начальной точке, радиусу и конечной точке можно комбинировать ...

Версионирование Renga

Хотим поговорить о версиях Renga. Кто-то говорит, что работает на версии 5, а кто-то на версии 7. Иногда встречаются и те, кто работает на версии 4. Давайте разбираться, как версионируется Renga, и можно ли “работать на версии 5”.