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

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

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

Комментарии

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

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

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

Автоматическое заполнение основной надписи

Два месяца назад мы рассказывали о том, как и для чего использовать Информацию о проекте  в Renga, какие свойства нужно создать, чтобы задать координаты участка. В самом конце той статьи внимательный читатель мог заметить, что информацию о проекте, здании и участке можно будет использовать при оформлении документации. Сегодня рассказываем, как это будет, ведь новый выпуск уже совсем скоро. Вы должно быть знаете, что в Renga версии 4.6 появились стили оформления , с помощью которых на лист чертежа можно добавить рамку, формы основной надписи и дополнительных граф. При изменении параметров листа рамка и штамп автоматически окажутся там, где им и положено быть. Однако в 4.6 формы не заполняются текстом. Мы продолжили работу над этой функциональностью и последние полтора месяца команда Lancelot трудилась над тем, чтобы основную надпись можно было заполнить прямо на чертеже. Так, щелкнув по форме, вы сможете заполнить ячейки необходимыми данными. При этом фо

Под крышей дома моего....

Крыша - это главный атрибут любого дома, а особенно частного загородного дома, коттеджа. Она не только призвана защищать его от дождя, снега и палящего солнца, но и является украшением дома и улицы, притягивает взгляд соседей и прохожих. В Renga Architecture инструмент Крыша позволяет строить самые разные модели крыши с помощью небольшого набора команд, но с первого взгляда не всегда ясно, как сделать её той или иной формы. Поэтому мы, Арина Соболева (инженер тех.поддержки) и Анастасия Тян (технический писатель), решили рассказать о разных тонкостях и нюансах работы с этим инструментом на примере нескольких загородных домов -  от простого к сложному. Проще всего в Renga Architecture создать четырехскатную вальмовую крышу. Здесь не надо менять никаких параметров, крыша строится по точкам, непрерывно (Рисунок 1). Рисунок 1 Чтобы её создать, один раз задаем Параметры сегмента (Рисунок 2) и указываем 4 точки по углам здания на 3D Виде. Построение крыши всегда