Русский
Русский
English
Статистика
Реклама

3d graphics

Перевод vulkan-tutorial. Урок 1.1 Вступление

14.10.2020 20:13:37 | Автор: admin

В связи с тем, что у меня не так много времени для ресерча каких-то новых штук и написания статей о них, я решил перевести серию уроков по Vulkan. Надеюсь, что мои переводы будут кому-то полезны и не очень плохого качества. Для начала обучения прошу под кат.


Автор оригинала дал свое согласие на перевод. Так же, когда я доперевожу все статьи и у меня будет время отформатировать их для github, он добавит русский перевод на свой сайт.


В этой части не будет ничего технического, так как я решил сохранить структуру оригинала. Будет рассказано немного о Vulkan, структуре уроков, ссылки на книги и тд.


Содержание

Часть 1. Вступление


  1. Общее вступление
  2. Краткий обзор
  3. Настройка среды разработки

Часть 2. Первый треугольник


  1. Базовая структура
  2. Hello window
  3. Базовый графический пайплайн
  4. Отрисовка
  5. Создание своего Swap Chain

Часть 3. Vertex buffer


  1. Введение
  2. Создание Vertex Buffer
  3. Staging Buffer (промежуточный буфер)
  4. Index Buffer

Часть 4. Uniform Buffer


  1. Layout и Buffer
  2. Pool и Set

Часть 5. Текстуры


  1. Загрузка изображений
  2. Image View и Image Sampler
  3. Комбенированние Image Sampler

Часть 6. Буфер глубины
Часть 7. 3D Модели
Часть 8. Mipmaps
Часть 9. Multisampling


Описание


В этих уроках вы научитесь основам Vulkan графичекого и вычеслительного API. Vulkan это новый API созданный компанией Khronos group (создатели OpenGL), он предоставляет улучшенную абстракцию для программирования графики на современных видеокартах. Новый интерфейс поможет лучше описать как ваше приложение будет работать с графическим процессором, что потенциально может увеличить производительность и уменьшить неожиданные ситуации связанные с поведением драйвера по сравнению с существующими API, такими как OpenGL и Direct3D. Идеи, лежащие в основе Vulkan, аналогичны идеям Direct3D 12 и Metal, но Vulkan имеет одно неоспаримое преимущество полную кросс-платформенность, что позволяет разрабоатывать приложение одновременно под Linux, Windows и Android.


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


Вывод Vulkan не для всех. Он создан для программистов, которым нужно больше производительности, не смотря на более сложный и кропотливый процесс написания приложения. Если вы заинтерисованы разработкой игр больше, чем программированием компьютерной графики, то вы можете и дальше использовать OpenGL или DirectX, в любом случае они по-прежнему поддерживаются и не будут вытесненны Vulkan(ом) в ближайшее время. Как альтернативу, можно использовать какой-то игровой движок (Unreal Engine, Unity и тд.), который будет использовать Vulkan, но предоставит вам свою высокоуровневую абстракцию над базовым API.


Теперь, давайте рассмотрим что вам надо для изучения Vulkan:


  • Видеокарта и драйвера совместимые с Vulkan (NVIDIA, AMD, Intel)
  • Знание C++ (понимание RAII, основы языка)
  • Компилятор с поддержкой C++ 17 (Visual Studio 2017+, GCC 7+, Or Clang 5+)
  • Опыт работы с 3D графикой

Рекомендую обновить драйвера на видеокарту.

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



Мы будем ипользовать С++, но вы так же можете писать и на чистом С. Если будете использовать С, вам придется использовать другую библиотеку для линейной алгебры, так же самостоятельно структурировать код, так как мы будем использовать классы для структурирования кода и RAII для управления времинем жизни ресуров. Так же существует альтернативная версия руководства для разработчиков на Rust.


Для того, что бы рзработчикам на других языках было проще понять, как работать с базовым API, мы будем использовать С версию Vulkan API. Однако, вы можете использовать C++ API, который немного упростит жизнь и поможет избежать некоторых ошибок.



Посмотри на котика и расслабься :)

E-Book


Так же вы можете скачать это руководство в формате електронной книги (нет ру]есского):



Структура уроков


Для начала мы разберемся с тем как работает Vulkan и по шагам разберем, что нам нужно для отрисовки нашего первого треугольника на экране. Мы будем продвигаться маленькими шажечками, смысл которых поначалу вбудет вам не очень понятен, но потом вы поймете их роль когда увидите картину в целом. Следующим шагом будет настройка среды разработки Vulkan SDK, GLM для линейно алгебры и GLFW для создания окна. В уроках будет показано, как настроить все под Windows + Visual Studio и Ubuntu Linux + GCC.


После чего мы реализуем все основные компоненты для отрисовки нашего первого треугольника. Каждая глава будет иметь примерно следующий вид:


  • Введение. Описание концепции и ее цели.
  • Разберём все нужные нам функций API для использование в нашей программе.
  • Абстрагируем вызовы API внутри наших функций.

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


Как упоминалось ранее, Vulkan API достаточно низкоуровневый с множеством настроек, что даёт ваммаксимальный контроль работы графического конвеера. Это вынуждает нас повторно выполнять большое количество шагов по многу раз. Что бы этого избежать, мы будем стараться выносить такой функционал в отдельные вспомогательные функции.


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


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


На сайте с оригиналом статьи, есть раздел коментариев под основным блоком.

Vulkan это все еще новый API и best practices еще не внедрены. В случае, если у вас появились какие-то советы, отзывы об учебнике или самом сайте, не стесняйтесь и оставляйте ваши запросы или исправления (можно пулл-реквесы на GitHub). Так же можно следить за обновлениями руководства в репозитории.


После выполнения ритуала с рисованием треугольника, мы начнем расширять нашу программу. Будем добавлять текстуры, модели и тд. Если у вас уже был опыт графического программирования, то вы знаете, что пред тем как на экране что-то появится нужно выполнить много шагов инициализации, создания буферов и тд. В Vulkan этих шагов напорядок больше, но не волнуйтесь, каждый шаг легко понять и вы поймете, что не один из них не является лишним. Могу обрадосвать, переход от скучного треугольника до отрисовки полноценной 3D модели с текстурами, не потребует такого большого количества шагов и усилий от нас.


Как правило, рисование треугольника в программировании графики, это как написание Hello world! при изучении языка.

Если вы столкнетесь с какими-либо проблемами, следуя руководству, сначала проверьте FAQ, чтобы увидеть, есть ли там ваша проблема и ее решение. Если решение так и не было найдено, не стесняйтесь обращаться за помощью в разделе комментариев в главе.


От переводчика:
Ребят, кому интересен данный цикл статей, поставте лайк или отпишите в комменты, что бы я знал нужно оно или нет. Если вы заинтерисованы, то постараюсь быстро перевести следющую статью.
Так же буду очень рад, если вы будете сообщать мне о всех ошибках, опечатках и предложениях по улучшению переводов. Перевод и написание статьи заняло у меня около дня и никто кроме меня ее не проверял так что могут встречаться ошибки и опечатки.

Подробнее..

Хитрости работы с MeshLab устранение ошибок в 3D моделях

20.02.2021 20:08:41 | Автор: admin

MeshLab является довольно популярной программой для манипуляции и визуализации трехмерных моделей, предоставляющий широкий набор инструментов. Он среди прочего предоставляет возможности по восстановлению и устранению проблем и ошибок в 3D моделях. О некоторых таких возможностях я бы хотел рассказать в статье. Кого заинтересовало, прошу под кат.

Довольно популярной проблемой при работе с 3D моделями является возникновение отверстий (holes, gaps). Такие проблемы возникают из-за несовершенной процедуры реконструкции сцены или недостаточной точности и качества 3D камер типа Microsoft Kinect.

Мы можем восстановить поврежденные поверхности моделей и закрыть дыры в программе Meshlab. Meshlab включает специальный фильтр для задачи закрытия отверстий в 3D моделях.

В начале откроем Meshlab и импортируем модель: File > Import Mesh.

Здесь показан пример модели с отверстием

Применим фильтр. Откроем в верхнем меню Filters > Remeshing, Simplification > Close Holes

Откроется диалог настройки параметров

Введем значение для параметра Max size to be closed и нажмем Apply. В моем случае хороший результат дало значение 210.

Результат применения фильтра

Выглядит неплохо, не правда ли?

Как мы видим не нужно писать специальный скрипт для закрытия отверстий. Все работает "из коробки".

Решение проблемы с дубликат вершины в модели

После применения фильтра Close Holes при экспорте модели в obj файл могут возникнуть вершины-дубликаты, т.е. вершины с одинаковыми координатами. Это может привести к некорректной обработке модели при использовании библиотек типа OpenMesh.

Давайте создадим obj файл со следующим содержимым:

v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
f 0 1 2
f 1 2 3

Создадим скрипт test_duplicates.py с использованием библиотеки OpenMesh (туториалы по ней можно посмотреть здесь)

import openmesh as om import numpy as npmesh_3 = om.read_trimesh('duplicate_vert_test.obj')print('Test duplicate vertices')for i, vh in enumerate(mesh_3.vertices()):    print('Vertices adjacent to vertex ', i)    for vh_n in mesh_3.vv(vh):        print(vh_n.idx())

Запустим его

Vertices adjacent to vertex  021Vertices adjacent to vertex  102Vertices adjacent to vertex  210Vertices adjacent to vertex  3Vertices adjacent to vertex  4

Добавим дубликат вершины

v 0 0 0
v 1 0 0
v 0 1 0
v 1 1 0
v 1 0 0
f 0 1 2
f 4 2 3

Здесь мы добавили еще одну вершину с координатами 1 0 0.

Запустим скрипт еще раз

Vertices adjacent to vertex  0Vertices adjacent to vertex  132Vertices adjacent to vertex  213Vertices adjacent to vertex  321Vertices adjacent to vertex  4

Сейчас мы видим, что для вершины 0 нет соседних вершин, зато для вершины 3 появились две соседние вершины 2 и 1. Кажется, что вершина 4 перетянула к себе всех соседей вершины 0, с которой имеет одинаковые координаты.

Попробуем удалить дубликаты вершин на модели из примера выше. Импортируем модель

Здесь мы видим множество цветных граней.

Применим специальный фильтр для удаления дубликатов вершин

Filters -> Cleaning and Repairing -> Remove duplicate Vertices

Результат применения фильтра

Если мы применим фильтр на нашей первоначальной простой модели после экспорта модели мы получим obj файл следующего содержания

vn 0.000000 -nan(ind) 0.000000
v 0.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 1.000000 0.000000 0.000000
vn 0.000000 0.000000 -0.785398
v 0.000000 1.000000 0.000000
vn 0.000000 0.000000 -1.570796
v 1.000000 1.000000 0.000000
# 4 vertices, 0 vertices normals
f 4//4 2//2 3//3
# 1 faces, 0 coords texture

На этом все. Удачи в использовании MeshLab для манипуляции с 3D моделями и до новых встреч.

Подробнее..

Советы и трюки SOLIDWORKS

02.06.2021 10:16:01 | Автор: admin

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

В этой заметке мы ответим на некоторые наиболее актуальные вопросы. Минимум воды, максимум пользы. Итак, начинаем наш краткий ликбез.

1. Как установить существующую библиотеку материалов

Файлы с расширением .sldmat содержат сведения о механических и физических свойствах материалов. Если вы скачали библиотеку с сайта i-tools.info, следующие 5 шагов помогут вам ее установить. Для добавления библиотеки необходимо открыть любую деталь в SOLIDWORKS:

1. В дереве конструирования FeatureManager нажимаем правой кнопкой мыши на Материал.

2. Выбираем пункт Редактировать материал.

3. В левом поле открывшегося окна кликаем в любом месте правой кнопкой мыши и выбираем Открыть библиотеку.

4. Выбираем директорию, в которой находится файл .sldmat, либо копируем его в папку с пользовательскими материалами SOLIDWORKS. Уточнить папку, выбранную по умолчанию, можно в разделе Настройки пользователя Месторасположение файлов Отобразить папки для Базы данных материалов.

5. Выбираем файл с расширением .sldmat и нажимаем кнопку Открыть.

Библиотека установлена! Если она не отображается в окне, необходимо закрыть и вновь открыть окно редактирования материала.

2. Можно ли работать на любом компьютере с установленным SOLIDWORKS, используя лишь свою лицензию?

ДА! Это называется онлайн-лицензирование SOLIDWORKS Online Licensing. Вам потребуются лишь компьютер с доступом в интернет и SOLIDWORKS выше версии 2018 года.

Данная функция важна пользователям, которые сталкиваются с ошибками активации лицензий SOLIDWORKS или которым необходимо использовать одну лицензию SOLIDWORKS на нескольких компьютерах.

Можно сказать, это лицензия SOLIDWORKS, которая находится в облаке.

3. В чем отличие SOLIDWORKS Simulation Standard и пакета Simulation Standard, входящего в SOLIDWORKS CAD Premium?

a) В SOLIDWORKS CAD Premium нельзя строить диаграмму усталости, усталостные напряжения и получать количество циклов до разрушений.

b) В SOLIDWORKS Simulation Standard доступен анализ тенденций, то есть построение зависимостей в результатах различных повторов статического исследования. Например, меняя нагрузку, можно отслеживать напряжение, перемещение и т.д.

4. Как показать основные плоскости компонентов в сборке?

Для этого нужно включить Просмотр плоскостей:

А затем выбрать значок Скрыть / Показать основные плоскости:

5. Как выбирать спрятанные грани, не применяя функцию Скрыть деталь?

Например, вам нужно выбрать грань для создания сопряжений. Самый простой способ навести курсор мыши на спрятанную грань и нажать клавишу Alt (деталь, которая закрывает нужную вам грань, станет прозрачной), а если деталь спрятана глубже, нажмите Alt еще раз.

6. Как посмотреть на деталь из сборки, не открывая деталь отдельно?

Нажимаем правой кнопкой мыши на интересующую нас деталь и выбираем функцию Окно предварительного просмотра компонента.

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

Хотите узнать больше? Подписывайтесь на наш YouTube-канал и изучайте SOLIDWORKS самостоятельно. Нужно обучение с профессионалами? Переходите по ссылке и выбирайте курс.

Автор: Максим Салимов, технический специалист ГК CSoft, solidworks@csoft.ru

Подробнее..

Симуляция волос и тканей с Unity Cloth на мобильных устройствах

28.09.2020 10:23:58 | Автор: admin


Многие разработчики рано или поздно сталкиваются с задачей достичь реалистичного поведения тканей или волос. Для этого есть целый ряд технологий, однако далеко не все из них подходят для мобильных платформ. Обычно мобильные разработчики запекают анимации, потому что это наименее затратно. Мы же поговорим о симуляции в реальном времени о модуле Unity Cloth.



Unity Cloth это система, основанная на симуляции физики тканей, которая работает вместе с SkinnedMeshRenderer. Она позволяет управлять широким набором параметров, такими как жесткость растяжения или кручения, степень затухания (величина, отвечающая за то, насколько быстро ткань придет в равновесие), симуляция ветра, взаимодействие внутренних столкновений (self-collision), трение, воздействие гравитации, влияние и взаимодействие коллайдеров и пр.

Одна из команд краснодарской студии Plarium изучила применимость Unity Cloth для мобильных устройств.

Часть 1. Симуляция тканей


Мы начали со стресс-тестов, чтобы оценить допустимые границы использования параметров модуля на мобильных устройствах. Первым исследуемым образцом стал высокополигональный многослойный меш накидка с количеством вершин ~ 10k, треугольников ~ 7k. На объект было добавлено 19 капсульных коллайдеров по форме частей тела персонажа. Остальные настройки по умолчанию.

На графике ниже представлена задержка исследуемых метрик в миллисекундах в зависимости от количества инстансов объекта. Тестируемое устройство Xiaomi Mi5 (4 ядра, 2.15 ГГц, 3 ГБ ОЗУ).



Xiaomi Mi5 не самый слабый девайс, но уже на нем видны серьезные потери производительности. На менее мощных устройствах (Lenovo A536, Quad-core, 1.3 ГГц, 1 Гб ОЗУ) они становятся катастрофическими. Далее будем оценивать результаты, которые демонстрирует наиболее слабый девайс.



На одно только обновление физики тканей приходится 775 мс из 800. Попробуем исключить влияние коллайдеров.



Вычисления столкновений коллайдеров сильно снижают перфоманс, при 25 инстансах на сцене присутствовало максимум 475 коллайдеров.

Следующее измерение проведем относительно низкополигональной однослойной модели (153 вершин, 256 треугольников) с меньшим количеством инстансов (до 9) и меньшим количеством коллайдеров (до 8).





Посмотрим, какое влияние оказывают расчеты коллайдеров. Построим соответствующие зависимости на примере одного инстанса объекта на разных устройствах (помимо уже задействованных девайсов берем Asus ZenFone 5, Dual-core, 2 ГГц,1 Гб ОЗУ).



Получившиеся функции хорошо аппроксимируются полиномиальной функцией 2 степени.

Видно, что с низкополигональными объектами ситуация на порядок лучше. На самых древних устройствах на один инстанс объекта в среднем приходится около 1 мс (против ~ 3 мс для высокополигональной модели при прочих равных параметрах), что довольно неплохо.

Далее посмотрим, как влияют на производительность дополнительные параметры.

В тестах использовался однослойный меш чуть большей, чем в предыдущем измерении, детализации (~ 450 вершин, ~ 800 треугольников). В компонент Unity Cloth был добавлен 1 капсульный коллайдер, исследовался 1 инстанс объекта, варьировались дополнительные параметры внутренних столкновений и влияния ветра.





Дополнительная симуляция ветра, как и расчеты внутренних столкновений, ухудшают производительность.

Это особенно ощутимо на более сложных моделях. Проанализируем влияние дополнительных параметров жесткости (растяжение, кручение) и затухания на мешах с количеством вершин ~ 10 000 и ~ 500 с 1 капсульным коллайдером.



Ниже представлены результаты, полученные на наиболее слабом девайсе (Lenovo A536) с варьированием параметров в каждом из замеров.

1. Жесткость: Растяжение и скручивание выкл.
Low-poly: 1.67 мс. High-poly: 145.32 мс.

2. Жесткость: Растяжение вкл. / Скручивание выкл.
Low-poly: 1.79 мс. High-poly: 160.44 мс.

3. Жесткость: Растяжение выкл. / Скручивание вкл.
Low-poly: 1.90 мс. High-poly: 172.19 мс.

4. Жесткость: Растяжение и скручивание вкл.
Low-poly: 1.92 мс. High-poly: 194.50 мс.

5. Жесткость: Растяжение вкл. / Скручивание выкл. Влияние ветра вкл.
Low-poly: 1.69 мс. High-poly: 165.73 мс.

6. Жесткость: Растяжение вкл. / Скручивание выкл. Затухание вкл.
Low-poly: 1.69 мс. High-poly: 172.75 мс.

7. Жесткость: Растяжение вкл. / Скручивание выкл. Влияние ветра вкл. Затухание вкл.
Low-poly: 1.76 мс. High-poly: 173.10 мс.

8. Жесткость: Растяжение вкл. / Скручивание выкл. Внутренние столкновения вкл.
Low-poly: 2.01 мс. High-poly: Unity Crash

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

  • Симуляция ветра добавляет ~ 9% от общей задержки метрики.
  • Симуляция затухания добавляет ~ 12% от общей задержки метрики.
  • Симуляция сжатия/скручивания добавляет ~ 1315% от общей задержки метрики.
  • Симуляция внутренних взаимодействий добавляет ~ 1216% от общей задержки метрики (при малых количествах вершин. Сделать замер с большим количеством не удалось: нагрузка оказалась слишком высокой даже для ПК).

Часть 2. Симуляция волос



Модель с ресурса cgtrader.com

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



Изломы объясняются тем, что близлежащие вершины заходят за удаленные (показано стрелкой). Изломов и перекручиваний избежать не удалось даже с использованием расчетов взаимодействий внутренних столкновений. Делаем вывод, что Unity Cloth для объемных тел не подходит.



Настройки симуляции:

  • Params 1: 3 коллайдера, жесткость включена на растяжение и скручивание, ветер и внутренние столкновения отключены, затухание отключено;
  • Params 2: 3 коллайдера, жесткость включена на растяжение, ветер и внутренние столкновения отключены, затухание отключено;
  • Params 3: 1 коллайдер, жесткость включена на растяжение, ветер и внутренние столкновения отключены, затухание отключено.

Показатели производительности двух слабых устройств сопоставимы друг с другом, Xiaomi дает лучшие результаты.

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

Краткие выводы о компоненте Unity Cloth


  • Неплохо справляется с простыми однослойными объектами (флаги, накидки, покрывала и скатерти).
  • При работе со сложными объектами требует высокой точности настройки.
  • При работе с объемными телами дает изломы.
  • Для некоторых вариантов симуляции имеющихся настроек недостаточно. Например, нельзя устанавливать свои значения гравитации: Graphics Settings используются по умолчанию.
  • Применение модуля затрудняется из-за багов в некоторых версиях Unity (подробнее в разделе Bug Story).

Заключение


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

Если вы все же намерены использовать Unity Cloth на мобильных платформах, то обратите внимание на следующие рекомендации:
  • Меньше вершин выше производительность. Используйте меши с минимально допустимым для вас количеством вершин.
  • Сократите количество одновременно живущих объектов на сцене, которые подвергаются симуляции.
  • Выберите минимальное количество коллайдеров, с которыми будет взаимодействовать ткань, либо, если возможно, не используйте их вообще.
  • Используйте только те параметры компонента, которые необходимы для решения конкретной задачи, так как они тоже снижают производительность.

Bug Story
Вероятно, с какой-то из упомянутых ниже проблем вы уже сталкивались. По найденным багам мы формировали обращения в Unity Support.

Баг 1. В версии Unity 2018.4.4f1 компонент Cloth переопределяет Bounds в SkinnedMeshRenderer, что приводит к некорректному отображению как в редакторе, так и на устройствах.



В результате у 8 из 9 роботов пропали накидки. Ниже представлен скриншот с Xiaomi Mi 5.



Исправлено в версии 2018.4.8f1.

Баг 2. В версии 2018.4.8 в режиме редактирования Constraints улетают гизмо, из-за чего их невозможно выбрать/отметить. Точные шаги для воспроизведения бага определить не удалось, приводим примерные:
  • выберите объект с компонентом и войдите в режим редактирования Constraints;
  • измените что-нибудь, примените изменения и выйдите из режима;
  • запустите Play Mode и выйдите из него;
  • откройте режим редактирования у компонента Cloth.



Баг исправлен в версии 2018.4.14f.
Подробнее..

Известный гонщик людям с ампутированными конечностями это не приговор

20.05.2021 10:09:10 | Автор: admin

Травма

В 2008 году Шульц подписал контракт с новой командой. Во второй гонке Международной серии чемпионов (ISOC) по снокроссу он засиделся на старте и решил приложить все усилия, чтобы наверстать упущенное. Не рассчитав траекторию на пересеченной местности, Шульц потерял равновесие и вылетел из своего снегохода.

Он приземлился всей своей массой на левую ногу, которая в этот момент была полностью выпрямлена. Удара такой силы она не выдержала. Такое не приснится в страшном сне: моя нога оказалась у меня на груди, вспоминает Шульц. Я буквально ударил себя пальцем ноги по подбородку!

За свою гоночную карьеру Шульц перенес много повреждений, но эта травма не шла ни в какое сравнение с обычным переломом. Чтобы гонщик выжил, ему пришлось ампутировать левую ногу примерно на 7 сантиметров выше колена.

Только вперед

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

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

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

Через семь месяцев после травмы Шульц вышел на соревнования по суперкроссу Summer XGames и выиграл серебряную медаль на ноге, которую он сконструировал в своем гараже.

Помощь нужна многим

Именно в это время Шульц осознал, что его изобретение способно помочь не только ему самому, но и многим товарищам по несчастью.

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

Решение конструкторских проблем

Шульц готовит 2D-эскизы и передает их конструкторам, комментируя все неясные моменты. Дальнейшую проработку инженеры ведут в 3D CAD-системе.

SOLIDWORKS делает процесс намного проще и быстрее и позволяет нам добиваться гораздо большего, с энтузиазмом говорит Шульц. Компьютерные модели наших изделий мы испытываем в цифровом формате с помощью SOLIDWORKS Simulation, чтобы выявить все слабые места.

При разработке модели VF (Versa Foot) 2 перед инженерной командой стояла задача обеспечить компактность, не проиграв при этом в прочности, ведь в реальных условиях динамические нагрузки на протез могут превышать 2200 Н (225 кгс). Еще одна успешно решенная конструкторами задача это уникальная система опорных катков Moto Knee.

Рабочий ход амортизатора составляет 5 см, и нам нужно было сделать так, чтобы коленный шарнир за это время сгибался на 130 градусов, рассказывает Шульц.

SOLIDWORKS позволяет команде BioDapt работать не только вместе в офисе, но и дистанционно. Хотя сам Шульц регулярно выезжает на соревнования, он не теряет связей с коллегами и не отрывается от рабочего процесса. Шульц утверждает:

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

Открывая двери для других

Супруга Шульца Сара была свидетелем того, как многие новые клиенты впервые надевали протезы BioDapt, и очень впечатлена их реакцией:

Их глаза светятся надеждой, к ним возвращается возможность заниматься любимым делом. Люди говорят Шульцу: Ты вернул меня к жизни.

В 2018 году на Паралимпийских играх 2018 года на пьедестал почета поднимались девять сноубордистов с протезами BioDapt. В общей сложности на их счету в этих соревнованиях 11 медалей.

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

Компания BioDapt продолжает развивать универсальность своих изделий. Идея Шульца в том, чтобы они позволяли заниматься как можно большим количеством видов спорта и других активностей. Сегодня систему Moto Knee можно использовать для катания на сноуборде, лыжах, велосипеде, внедорожных мотоциклах и квадроциклах, а также в силовых тренировках, верховой езде и водных видах спорта. Этот список продолжает расширяться: BioDapt ведет новые исследования и разработки, чтобы помочь тем, кто из-за ограниченных физических возможностей не мог раньше жить полноценной жизнью.

Свяжитесь с экспертом SOLIDWORKS, чтобы найти ответы на вопросы и обсудить любые Ваши потребности

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru