Как заполнить 3d модель внутри автокад
Перейти к содержимому

Как заполнить 3d модель внутри автокад

  • автор:

Как заполнить пустоту в 3D чертеже?

Помогите, как можно заполнить пустоту внутри фигуры, ну или хотя бы стенки поставить, чтобы не было дыры?

DWG 2013 1 чертеж.dwg (106.6 Кб, 1392 просмотров)

Просмотров: 7825

Работаю на работе конструирую конструкции моделирую модели

Регистрация: 17.12.2010
Сообщений: 442
вам тут ничем не помогут пока не сохраните в 2010 или даже в 2007 версии

yorik_1984
Посмотреть профиль
Найти ещё сообщения от yorik_1984

Регистрация: 23.02.2004
Сообщений: 971
Сообщение от Мейрхан
хотя бы стенки поставить, чтобы не было дыры

Боковые стенки — SURFNETWORK
Отверстия — SURFPATCH
Когда все дыры будут залатаны, можно будет преобразовать поверхности в 3D тело — SURFSCULPT

Создание 3D-модели для мультивидового блока MEP на основе блоков

Данная процедура служит для создания 3D модели мультивидового элемента на основе блоков. Для поддержки автоматического формирования видовых блоков Конструктором содержимого блок модели должен быть создан с помощью тел AutoCAD® в стандартной мировой системе координат (МСК) AutoCAD.

Прим.: Для обеспечения правильного отображения скрытых линий при размещении мультивидового элемента на чертеже удостоверьтесь в создании для модели элемента единого тела с использованием тел-примитивов AutoCAD.

  1. Создайте 3D модель размера элемента.
  2. Для добавления к модели точек, упрощающих размещение соединителей, введите точку, нажмите клавишу Enter и с помощью объектной привязки укажите центр соединителя на 3D-модели. Добавьте объекты-точки AutoCAD в местах центров для всех соединений. Эта операция позволит использовать объектную привязку «Узел» для выбора точек соединений при назначении соединителей.

  • Выберите Вкладка «Вид» панель «Координаты» «МСК» , чтобы перед созданием блока задать в качестве пользовательской системы координат (ПСК) мировую систему координат (МСК).
  • Убедитесь в том, что геометрия создана на слое 0 и для цвета и типа линий назначено значение «ПоБлоку», а для веса линий — «ПоСлою». Это поможет обеспечить управление отображением для размера элемента.
  • Выберите вкладку «Вставка» панель «Определение блока» Создать блок . Откроется диалоговое окно «Определение блока».
  • В диалоговом окне «Определение блока» введите имя блока модели. При сохранении блока модели используйте стандартный подход к присвоению имен, отражающему семейство элементов и размер элемента. Например, блок модели для монтируемой на крыше установки кондиционирования воздуха офисного здания с размером выходного патрубка 24 x 24 дюйма можно было бы назвать «УКВ, офисное, на крыше, 24×24 — модель».
  • В области «Объекты» нажмите кнопку «Выбор объектов» и выберите геометрию, которая будет составлять блок модели. Диалоговое окно временно закрывается, позволяя выбрать объекты для блока. По окончании выбора объектов нажмите ENTER. Диалоговое окно открывается снова.
  • В области «Объекты» установите флажок для одного из следующих параметров:
    • Сохранить. Сохранение выбранных объектов на текущем чертеже в их исходном состоянии.
    • Преобразовать в блок. Замена выбранных объектов экземпляром блока.
    • Удалить. Удаление выбранных объектов после определения блока.
  • В области «Базовая точка» нажмите кнопку «Указать точку» и выберите точку вставки блока модели. В качестве опорной точки расположения блока используется точка вставки или базовая точка. Местоположение точки вставки непосредственно влияет на размещение размера элемента при его добавлении на чертеж.
  • В области «Описание» введите текст, помогающий в идентификации видового блока и облегчающий его извлечение.
  • Чтобы связать гиперссылку с элементом, нажмите кнопку «Гиперссылка», выберите файл или интернет-страницу и дважды нажмите «ОК». Блок модели сохраняется в текущем чертеже.
  • Понятия, связанные с данным

    Самоучитель AutoCAD 3D

    Перенести;

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

    • ГМн >Редактировать > выбор пункта;
    • Лента >Главная >Редактирование > выбор инструмента, рис. 5.6;
    • щелкнуть указателем ЛКн по объекту (выделить рамкой набор объектов), затем щелкнуть ПКн и в КМн выбрать нужную опцию.

    Рис. 5.6. Доступ к инструментам переноса и копирования

    Переносить и копировать 3D объекты (наборы объектов) в трехмерном пространстве проще выбирая опции из КМн. Для этого нужно щелкнуть по объекту ЛКн или выделить рамкой набор объектов и щелкнуть ПКн.

    В раскрывшемся списке опций КМн отметить ЛКн требуемый пункт, рис. 5.7, а на объекте указать исходную точку. Вторую точку (точки, при копировании) указать в том месте, куда объект будет перемещен или скопирован.

    Рис. 5.7. Выбор из КМн опций переноса или копирования

    Инструмент трехмерной графики:

    3D-перенос.

    Рис. 5.8. Доступ к инструменту 3D-перенос из ГМн

    Процедуры перемещения и копирования 3D объектов в пространстве просты и аналогичны действиям, которые выполняются в двухмерной графике. Техника работы с инструментами Перенос и 3D-перенос отличается только тем, что при работе с последним инструментом используется гизмо 3D переноса, установленный по умолчанию.

    Как заполнить пустоты внутри 3d модели (для печати)? ⁠ ⁠

    Всем привет!
    В общем, создал персонажа для фотополимерной 3d печати. Создавал в Blender, а для симуляции одежды использовал Marvelous Designer. Принцип создания одежды в марвелоусе заключается в том, что он создает одежду вокруг персонажа (манекена) отдельным объектом. При экспорте в формат stl (для 3d печати), загрузке его в слайсер и «разрезания» на слои становится видно, что джинсы и ноги персонажа — отдельные объекты, что создает проблемы при печати.

    Как заполнить пустоты внутри 3d модели (для печати)? 3D моделирование, 3D печать, 3D графика, Digital 3D, 3D

    Как заполнить пустоты внутри 3d модели (для печати)? 3D моделирование, 3D печать, 3D графика, Digital 3D, 3D

    Т.е. джинсы будут печататься тоненькой оболочкой вокруг ноги. Как сделать ноги цельными, без зазоров внутри?
    Можно ноги внутри убрать (оставив только видимые части туловища — руки, голову), тогда печататься будет только чересчур тоненькая оболочка джинсов, что опять не катит.

    Как заполнить пустоты внутри 3d модели (для печати)? 3D моделирование, 3D печать, 3D графика, Digital 3D, 3D

    Может, кто-то подскажет, как средствами blender или другим 3d редактором заполнить пустоты? Или, как минимум увеличить толщину джинсов во внутрь, не нарушив внешнюю оболочку.
    В слайсере для печати ChituBox, есть автоматический инструмент создания полостей внутри 3d моделей для экономии смолы. Наверняка же есть в 3d прогах какой-то инструмент работающий наоборот.

    2.4K постов 11.9K подписчиков

    Подписаться Добавить пост

    Правила сообщества

    Запрещено хамство и оскорбления, уважайте чужой опыт и труд

    3 года назад

    Чувак, я этот минут пять обдумывал.

    Во первых посмотри Mesh Mixer, и работает ли опция «Fill Holes» в этом случае. Если работает, то вопрос решён.

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

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

    Пытаться это сделать чисто — затылкочесательная операция, где надо будет либо моделью вырезать из куба геометрию пустот и затем добавлять её назад в модель, либо пытаться найти скрыте фаски/точки через создания вертексной группы на базе карты окклюзий.

    Быстрее сшить вручную.

    раскрыть ветку
    3 года назад

    ну экструдируй и скалируй.

    в блендере есть еще инструмент для задания толщины стенки — но он не всегда норм отрабатывает.

    3 года назад
    В autodesk netfabb можно такую штуку сделать. Могу помочь, был такой опыт)
    раскрыть ветку
    2 года назад

    Чтобы автоматически заполнить пустоты внутри модели грамотно (для STL и OBJ) — внешняя оболочка должна быть также закрытой. То есть не должно быть не только естественных и технологических отверстий, не должно быть разрывов треугольников, не сшитых граней и т.п. Такое часто случается в моделях, когда какой-то сложный механизм частично «помещается» в закрытый корпус или, как в Вашем случае, сложную модель бОльшего размера повесили на сложную модель мЕньшего размера. Внутри появляются фигуры, пересеченные грани, полости, плоскости переворачиваются. Исправить это вручную не реально. Тут советовали MeshMixer, он распознаёт проблемы, но лечит их отвратительно. И другие простые программы не справляются с оборачиванием. Вам нужно сшить места, где есть разрывы, а потом «обернуть» модель новой оболочкой. Вам поможет NettFabb. Выбираете «лечение», потом выпоняете скрипты (одной кнопкой все скрипты, справа в окне всё будет понятно). Он зашьет небольшие разрывы. Там же есть скрипт Wrap. Он обернет модель по внешней оболочке и зальёт всё внутри. Если захочется, можно поэкспериментировать с ручным созданием треуголников и оболочек. Потом в слайсере сможете сделать пустотелой уже с нужными параметрами.

    раскрыть ветку
    3 года назад
    В ютубе недавно была серия роликов по поводу слайсера cura у voltnik там это описывалось
    Похожие посты
    2 дня назад

    Еще две пчелки установлены в столице Крыма⁠ ⁠

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    В Симферополе установлены еще два арт-объекта к которым я приложил руку в рамках проекта «Симферопольские пчелы».

    Как и все предыдущие пчелки про которых я писал, эти две были сделаны мной в ZBrush. Затем полученные мастер модели были напечатаны мной же на 3D принтере и использовались для перевода в металл в литейной мастерской. Работа выполнена для проекта «Симферопольские пчелы».

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Еще две пчелки установлены в столице Крыма Скульптура, Художественное литье, Рукоделие без процесса, Творчество, 3D моделирование, 3D печать, Длиннопост

    Про предыдущих пчел к которым я приложил руку можно почитать по ссылкам: РАЗ, ДВА, ТРИ, ЧЕТЫРЕ, ПЯТЬ

    Больше деталей и новостей по текущим проектам публикую у себя в ВК: https://vk.com/mimimikomiko

    Показать полностью 6
    2 дня назад

    Зачем покупать, если дома можно распечатать⁠ ⁠

    2 дня назад

    Секретные технологии третьего рейха 2⁠ ⁠

    Заказчик прислал несколько фото, решил с вами поделиться

    За качество пожалуйста сильно не пинайте фотографировал не я =)

    Выглядит крайне годно, мне самому очень понравилось)

    Показать полностью 7
    4 дня назад

    Новый перс в процессе⁠ ⁠

    Новый перс в процессе Персонажи, Монстр, Шарнирная кукла, Кукла, Куклы ручной работы, Своими руками, 3D, 3D моделирование, 3D печать, Литье, Художественное литье, Рукоделие без процесса

    Всем привет! Пропала с Пикабу, т. к. испытываю некоторые сложности с мотивацией постить одновременно в кучу соц.сетей) И вообще фиксировать работу документально. Тем временем у меня в активной работе новый перс — некая космособака/волк) Я обычно не продумываю подробно персонажу лор, интуитивно двигаясь через дебри внутренних образов и впечатлений. Поэтому не спрашивайте меня, кто оно и откуда — пускай ваша собственная фантазия допишет ему историю)

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

    Я в других соцсетях:
    ВК: https://vk.com/swdolls
    Запрещенограм: vitzly.putzly

    Показать полностью 1
    5 дней назад

    Фигурка Jade | Mortal Kombat | 1/6⁠ ⁠

    Фигурка Jade из Mortal Kombat ручной росписи. Модель студии Abe3D
    Высота — 1/6
    Роспись: акрил — кисти, аэрограф;
    Печать: Elegoo Saturn;
    Смола: Elegoo 8k Resin.

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    По просьбе заказчика провели апгрейд модели ����:
    ��подставка: черепа и кости, золотая окантовка;
    ��персонаж: чокер на шее, вторая голова в маске.

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Процесс изготовления и росписи занял около двух недель, мы старались уложиться в срок максимально чётко ❤‍��

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    В паре с Джейд идёт Китана, но о ней в следующем посте��

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Крч, заказчик оценил, а вам как?) Напишите своё мнение о нашей работе, будет интересно почитать��

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Фигурка Jade | Mortal Kombat | 1/6 3D печать, 3D принтер, 3D, Mortal Kombat, Джейд, Фигурки, Игры, Коллекционирование, Статуэтка, Ручная работа, Видео, Вертикальное видео, Длиннопост, Рукоделие без процесса

    Если желаете заказать такую же фигурку — напишите мне: vk.me/sheremetevaart
    Больше работ тут: vk.com/sheremetevaart
    TG: https://t.me/mesh3dd

    Спасибо за внимание! Надеюсь наша работа вам понравилась 🙂 Оставляйте комменты, делитесь мнением ��

    Показать полностью 9 1
    Поддержать
    5 дней назад

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики⁠ ⁠

    Доброго времени суток! Продолжаю постройку высокоскоростного 3D принтера. Сегодня расскажу о прошлых версиях портала и печатающей головы, а так же про актуальные их версии. Предыдущие части по постройке: часть 1, часть 2, часть 3.

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

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    От этой конструкции в пользу профиля 2060 я перешел ввиду сложности заказа такой детали, так как далеко не в каждом городе такое могут вырезать лазером или выточить, ее стоимость выходит высокой даже без учета доставки, и ее невозможно сделать самому в домашне-гаражных условиях, однако по работоспособности претензий нет, простая и надежная схема. Так же в обновленной конструкции я отказался от консольно расположенного стола, а линейные направляющие типа MGN7 заменены на MGN9. Каретки оси Y также были переделаны.

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

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Сама печатная головка тоже претерпела немало изменений. Но для начала кратко опишу конструкцию.

    Одна из задач — это максимальное сокращение расстояния от фидера до сопла, как вариант решения был взят радиатор E3D V6/Volcano и существенно укорочен, посадка переделана на 4 винта.

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Ввиду сокращения площади оребрения, нужно усилить обдув, для начала турбинкой 5015, но на практике это перебор, будет еще опциональная версия с осевым 3010. Нагреватель керамический, TriangleLab CHC Pro.

    Первая версия была такой:

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Затем немного оптимизировал, так как этот был громоздкий и сложный

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Этот вариант показал себя неплохо, пробовал разные конфигурации:

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

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

    Следующая версия была существенно упрощена и ставилась для тестов на переделанный Tevo Flash, где показала себя неплохо:

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

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

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    Высокоскоростной 3D принтер своими руками. Часть 4- о прошлых и актуальных версиях механики 3D моделирование, 3D печать, 3D принтер, Разработка, Своими руками, Длиннопост

    В конструкции этого принтера будет вариант на основе этого, но с существенными доработками, о нем подробно расскажу в следующей части, эта и так уже объемная.
    На этом на сегодня все! Благодарю за внимание! Конструктивная критика приветствуется!
    После тестовой сборки принтера все детали будут в свободном доступе бесплатно.

    Показать полностью 18
    Поддержать
    5 дней назад

    Друзья! Сделал небольшой набор «Штурмовая группа Управления «А» (ЦСН ФСБ России) 2000-2004» для 28/32 мм⁠ ⁠

    Что скажете? Годно для игровухи?)

    Друзья! Сделал небольшой набор

    Друзья! Сделал небольшой набор

    Друзья! Сделал небольшой набор

    Друзья! Сделал небольшой набор

    Друзья! Сделал небольшой набор

    Друзья! Сделал небольшой набор

    Подробно за моим творчеством можете следить в VK ( https://vk.com/publicaquila2019 )

    Показать полностью 6
    5 дней назад

    3д модель Десантника из Helldivers 2⁠ ⁠

    3д модель Десантника из Helldivers 2 3D моделирование, 3D печать, 3D принтер, 3D, Helldivers, Helldivers 2, Zbrush, 3ds Max, Покраска миниатюр, Покраска, Wh miniatures

    В общей сложности на работу ушло 90 часов моделирования, растянутые в 3 недели.

    Но модель еще не закончена, еще нужно разделить её на детали для печати.

    3д модель Десантника из Helldivers 2 3D моделирование, 3D печать, 3D принтер, 3D, Helldivers, Helldivers 2, Zbrush, 3ds Max, Покраска миниатюр, Покраска, Wh miniatures

    Показать полностью 1
    6 дней назад

    Электрифицированная модель ГАЗ-24-10 «Волга». Такси с зелёным огоньком из города Сочи⁠ ⁠

    Ко мне на очередную электрификацию приехала модель автомобиля ГАЗ-24-10 «Волга» из журнальной серии «Автолегенды СССР» №48 от Deagostini в масштабе 1:43. Может, модель смотрится достаточно простенько, но это только пока 😉

    Электрифицированная модель ГАЗ-24-10

    Вдохновившись электрифицированной моделью Москвича-407 из к/ф «Зеленый огонёк», заказчик попросил меня сделать нечто подобное и с его «Волгой».

    Кстати, «Волга» оказалась уже слегка доработана, а точнее определена в разряд такси города Сочи. Поэтому, первым действием, я защитил имеющиеся переводные наклейки на кузове прозрачным лаком Х-22 от Tamiya, а только потом принялся за разборку.

    Электрифицированная модель ГАЗ-24-10

    Задумка с «Волгой» понятна, и может быть реализована по аналогии с Москвичом. Однако, электрическая цепь здесь будет сложнее, ведь, помимо зеленого огонька, должен зажигаться и опознавательный фонарь такси на крыше (который будем проектировать и воплощать при помощи 3D-печати ��).

    А вот и прототип того, к чему будем стремиться, нашёлся:

    Электрифицированная модель ГАЗ-24-10

    Следующим шагом я просверлил отверстие по центру крыши для будущего фонаря такси и поработал с остальными отверстиями в кузове.

    Электрифицированная модель ГАЗ-24-10

    После подбора соответствующих малых светодиодов и 3D-печати зелёного огонька была спаяна электрическая цепь. Работать она будет по классической схеме с особым расположением чувствительных элементов (герконов), спрятанных внутри кузова.

    Электрифицированная модель ГАЗ-24-10

    Теперь переходим к самой муторной части — монтажу цепи и укладке всех электро элементов внутрь «Волги». Фраза «впихнуть невпихуемое» тут явно будет уместна ��.

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

    Также, была доработана и торпедо, которая теперь стала матовой, а рулевое колесо обзавелось эмблемой «ГАЗ» по центру.

    Электрифицированная модель ГАЗ-24-10

    Итак, пришло время реализовать опознавательный фонарь такси с шашечками. С учётом реальных размеров (которые сообщил мне уважаемый заказчик), фонарь был спроектирован и распечатан на фотополимерном 3D-принтере Photon mono 4k от Anycubic из прозрачной смолы Clear линейки Basic.

    Уверен, что эта деталь ещё не раз пригодится для будущих проектов ��.

    Электрифицированная модель ГАЗ-24-10

    Электрифицированная модель ГАЗ-24-10

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

    Электрифицированная модель ГАЗ-24-10

    «Обожаю» Deagostini за выбор ЛКП на некоторых элементах ��. В частности, колёсные диски мне пришлось перекрашивать с нуля, так как родная краска вспучилась и быстро сошла на нет от щадящей спиртовой протирки.

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

    Электрифицированная модель ГАЗ-24-10

    Финальным этапом: реализуем «Волге» номера, как у прототипа, нанесём переводную наклейку с чёрными шашечками на фонарь такси, вставим его на своё место и защитим прозрачным лаком.

    Остаётся только вернуть на место решётку радиатора, линзы фар и оси с колёсами.

    Электрифицированная модель ГАЗ-24-10

    Всё! Модель полностью готова и мне не терпится провести для вас небольшую презентацию (анимашка в конце) ⬇️.

    Электрифицированная модель ГАЗ-24-10

    Электрифицированная модель ГАЗ-24-10

    Электрифицированная модель ГАЗ-24-10

    Электрифицированная модель ГАЗ-24-10

    А сейчас немного приглушим свет и увидим, как «Волга» оживает:

    • Прикладываем магнит к водительской двери и у нас активируются фары и задние фонари:

    Электрифицированная модель ГАЗ-24-10

    Так как у нас представитель горьковского автозавода, по аналогии с саратовской электрифицированной «Чайкой» ГАЗ-13, реализуем и золотой ключик с надписью «ГАЗ» на магнит.

    Электрифицированная модель ГАЗ-24-10

    • Приложим магнит к противоположной стороне кузова и зажжётся ламповый свет в салоне:

    Электрифицированная модель ГАЗ-24-10

    • А, приложив магнит к багажнику, мы активируем зелёный огонёк и опознавательный фонарь такси на крыше нашей «Волги»:

    Электрифицированная модель ГАЗ-24-10

    Заключение.

    Мне очень понравилось создавать эту модель, ведь это ещё один небольшой шаг вперёд в теме электрификации и, конечно, бесценный практический опыт. Уверен, что это не последняя электрифицированная «Волга» такси ��

    P.S. И напоследок ловите анимашку, где наглядно видно, как активируется свет у этой электрифицированной красавицы)

    Электрифицированная модель ГАЗ-24-10

    Благодарю за внимание и желаю всем хорошего настроения!

    С уважением, Сержик Моделист.

    Ссылка на оригинальную публикацию на моём основном канале: https://dzen.ru/a/Zb_60wxXbjJ44KQI

    Показать полностью 20
    Поддержать
    7 дней назад

    Молодая Бестия CyberPunk 2077⁠ ⁠

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Вот такая подруга получилась, ну а теперь к процессу)

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Печать закончена, теперь нудный процесс по зачистке, шлифовке.

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Вроде все стыкуется, можно перейти к покрасу

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Эх, кожа мне пока что плохо дается( Наверное Аэр нужно брать.

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Ну и вот, что в итоге получилось

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Молодая Бестия CyberPunk 2077 Покраска, 3D печать, Фигурки, 3D, Cyberpunk 2077, Роспись, 3D принтер, Длиннопост

    Критика приветствуется) Всем всего хорошего, увидимся позже)

    Показать полностью 11
    8 дней назад

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком⁠ ⁠

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Ничего другого у меня не получается. Но в этот раз она немного проще. Без шестерёнок, без пружинок. Только функционал. Добавил несколько файлов в ПДФ, с картинками. Их я печатал на фотобумаге, закрывал листами ПЭТ пластика, и вставлял в пазы.

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Выглядит это примерно так:

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Бесполезная 3д печать. Угадайте что я сделал? Да, опять коробка. Опять с кодовым замком 3D моделирование, 3D печать, 3D, Кодовый замок, Механизм, Видео, YouTube, Длиннопост

    Кстати, они подходят и к предыдущей версии. Криптекса, его можно посмотреть тут: Что ещё можно сделать на 3д принтере

    Конечно без промо видео не обошлось.

    А тут анимация взрыв схемы:

    Короче, если кому-то интересно, качайте по ссылке:

    Все модели бесплатные с промокодом Pikabu.

    Всем бобра. Кто скачает — дайте обратную связь.

    Показать полностью 6 2
    Поддержать
    9 дней назад

    Моделирование петель для 3D печати «in-place»⁠ ⁠

    Моделирование петель для 3D печати

    Проблема

    Здравствуйте. Меня зовут 052aecd7 и я наркоман купил себе 3д принтер. Печатать кораблики очень быстро надоело, и я перешел к более полезным изделиям. И для них мне сразу же понадобилось шарнирное сочленение. Вариантов сделать его несколько.

    Первое, и самое простое — это просто сделать 2 части с петлями, и соединить их штифтом. Штифты можно купить на алишке, или даже напечатать. Но с таким подходом вылезло несколько неприятных проблем. Петли должны висеть в воздухе, и под них нужны поддержки

    Моделирование петель для 3D печати

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

    Второй вариант — это пользуясь тем, что печать идет послойно, и принтер может без проблем печатать нависающие стенки, смоделировать петли для печати без поддержек и сразу в сборе. Он-то дальше и будет.

    Модель

    Моделирую я в Компасе. До него я пользовался FreeCad, но рекомендовать его никому не могу.

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

    Моделирование петель для 3D печати

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

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

    • Дальше создаем новую сборку, добавляем туда нашу деталь
    • Добавляем 2 стенки по краям
    • Добавляем эскизы для петель
    • Выдавливаем одну петлю
    • Повторяем её в массиве
    • Повторяем то же для другой петли
    • Отрезаем лишнее сверху и снизу
    • Добавляем закругления и снимаем фасочки Можно печатать!

    Печать

    После открытия этой чудесной модели в PrusaSlicer, обнаружилось что он категорически не хочет делать в ней нормальные мосты

    Моделирование петель для 3D печати

    Пытается напечатать в воздухе. При печати это все провалится и в этом месте получится борода.

    Проблема возникала из-за того что в настройках печати стоит 4 периметра, что больше чем толщина кольца в этом месте. Решений у этой проблемы несколько.

    • Можно поставить везде меньше периметров, но тогда будет меньше прочности.
    • Можно добавить модификатор конкретно в месте где нужны мосты, но я задолбался уже на первой модели.
    • И наконец решение на котором я остановился — взять вместо PrusaSlicer — SuperSlicer. Это его полумертвый форк, который последние 3 месяца снова начал пилиться. Там есть нормальные настройки для печати мостов.

    Моделирование петель для 3D печати

    Совсем другое дело!

    Теперь осталось всего ничего — напечатать десяток таких моделек и подобрать параметры так, чтобы все крутилось и ничего не люфтило.

    Результат

    И вот наконец, мы добавляем эту петлю в настоящую деталь и печатаем её!

    Моделирование петель для 3D печати

    Если кто досюда дочитал — модель и её исходники можно взять тут https://www.printables.com/model/822134-a6caf6b9e3

    Конкретно этот вариант оптимизирован под печать линиями 0.8×0.3мм и соплом 0.4мм. Из-за таких параметров нависания больше 45 градусов нормально не печатаются. Если сделать линии и слои потоньше, или взять сопло потолще — можно попробовать уменьшить углы, и получить более компактную по высоте деталь.

    Показать полностью 20 1
    9 дней назад

    Гигантизм — как способ компенсации⁠ ⁠

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

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

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

    Итак, что мы имеем: фигуру Горо высотой 46см, плюс будущая подставка под него около 12см.
    Уже больше сотни магнитов на крепления, так как считаю что такие модели склеивать нет смысла.
    1,6кг расхода смолы и ооооочень много времени печати принтера)
    Модель делаю для себя в качестве пробы пера на большом масштабе (1/6 на сколько я помню)

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

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

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

    Гигантизм - как способ компенсации Окрас, 3D моделирование, 3D печать, Mortal Kombat, Скорпион (Mortal Kombat), Рукоделие с процессом, Длиннопост, Стендовый моделизм, 3D

    Сейчас в процессе окраса позвоночника и доработки деталей подтёков крови и внутренностей для правдоподобности.
    Краски использую Pacifi88 Art
    Окрас: кисти и аэрограф
    Печать: Anycubic Photon Mono X
    Смола: Anycubic Waterwash
    Нужно ли выкладывать ход работы?
    Адекватную критику с советами по улучшению качества окраса только приветствую)

    Показать полностью 6
    12 дней назад

    Destiny 2 Револьвер (Пиковый туз)⁠ ⁠

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Работа на заказ Револьвера под названием Пиковый туз из игры Destiny 2.

    Пиковый туз (ориг. Ace of Spades) — Экзотический револьвер. Первое появление этого оружия было в Destiny The Taken King.

    Длинна револьвера 50см на подставке из оргстекла.

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

    Модель после первоначального редактирования.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    После дополнительных разделений и детализации.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Нарезка для слайсера.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Всего вышло 15 деталей.

    Установил размер в Netfabb.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Печать частей:

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    После печати нужно было провести постобработку.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    У этого револьвера есть несколько вариантов скинов:

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Решено было делать золотой вариант Пикового туза.

    Маскирование элементов дизайна.

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    Destiny 2 Револьвер (Пиковый туз) 3D принтер, 3D моделирование, 3D печать, 3D, Destiny 2, Пиковый туз, Пистолеты, 3ds Max, Zbrush, Длиннопост

    И вот он залакированный матовым лаком. Краски Jim Scale.

    Если вы хотите заказать подобную работу, вы можете обратиться в мой телеграмм канал: t.me/Sochi3dsculpt

    Показать полностью 18
    12 дней назад

    Очередной отчёт о заряжайках⁠ ⁠

    Всем привет многие писали, что заряжайку лучше сделать с конусным отверстием, на видео представлена именно такая модель. Скоро похвастаюсь обновкой. Спасибо всем кто так или иначе поддерживает.
    для печатников https://t.me/xrennaydesh
    Если у вас есть близкие люди в зоне СВО
    или вы сам военнослужащий то обращайтесь — поможем @pribloke_bot
    Наши отчёты и новости https://t.me/News3DM
    Всем спасибо за внимание.

    Показать полностью
    15 дней назад

    Волшебная палочка в стиле «Чужой» Я создавал только 3Д модель , отливку и сборку делал заказчик сам ,⁠ ⁠

    Был заказ на 3Д модель волшебной палочки в стиле «Чужой»
    Я создавал только 3Д модель , отливку и сборку делал заказчик сам ,
    https://vk.com/lesnov_jewelry

    Показать полностью 19 1
    17 дней назад

    Фляга с подсумком. 3D модель⁠ ⁠

    Текстурил в Substance Painter. Пытался придать максимум реализма.

    Фляга с подсумком. 3D модель 3D моделирование, Реализм, 3D, Blender, Модели, Текстуры, Substance painter, Длиннопост

    Фляга с подсумком. 3D модель 3D моделирование, Реализм, 3D, Blender, Модели, Текстуры, Substance painter, Длиннопост

    Фляга с подсумком. 3D модель 3D моделирование, Реализм, 3D, Blender, Модели, Текстуры, Substance painter, Длиннопост

    Показать полностью 3
    Посты о ремонте и моддинге ретрогаджетов.
    Подписаться

    22 дня назад

    Первый легендарный мобильный GPU: каким был PowerVR MBX Lite? Пишем игру-демку про «жигули» с нуля, ч. 2⁠ ⁠

    ❯ Практическая часть: Геймплей

    Дисклеймер: игра была написана как простенькая, но познавательная демка именно для PowerVR MBX и именно для Axim X51v. Именно поэтому здесь нет нормального Update-таймера, расчёта дельты времени, а игра прибита к константным временным отрезкам и величинам скорости!

    Итак, как же игры подобного планы работают «под капотом»? По факту, обычно мы с вами никуда не едем: фоновые модели ландшафта и дороги просто скроллятся и телепортируются друг за другом, когда одна из частей уходят за экран, что создаёт эффект бесконечной дороги. И эта техника используется во многих играх! Что же касается машинок, от которых мы должны лавировать, то это не мы едем на них, это они едут на нас! По итогу создаётся эффект будто мы с вами куда-то едем и уворачиваемся от машинок, хотя на деле это не так!

    Начинаем с реализации базовой вещи в архитектуре любой современной игры, а именно системы игровых объектов. В нашей игре нет необходимости в реализации сложного графа сцены с комплексной компонентной системой, или, например, ECS. Хватит классического линейного списка игровых объектов (который использовался, например, в Half-Life), по которому объект World проходится каждый кадр, вызывая необходимые функции для обновления состояния объекта и его отрисовки:

    public abstract class Entity
    public Transform Transform;

    public abstract void Update();
    public abstract void Draw();
    >

    public void Spawn(Entity ent)
    if(ent != null)
    Entities.Add(ent);
    >

    public void Remove(Entity ent)
    entityRemovalList.Add(ent);
    >

    public void Update()
    sky.Update();
    renderer.Update();
    spawner.Update();

    foreach (Entity ent in Entities)
    ent.Update();

    foreach (Entity ent in entityRemovalList)
    Entities.Remove(ent);

    public void Draw()
    sky.Draw();

    foreach (Entity ent in Entities)
    ent.Draw();
    >

    Самым первым нашим объектом будет машинка игрока, которой можно будет управлять!
    Модельки я взял лоуполи со скетчфаба, вот ссылка на ВАЗ 21099 и VW Golf Mk2. Спасибо авторам моделей за их работу!

    Первый легендарный мобильный GPU: каким был PowerVR MBX Lite? Пишем игру-демку про «жигули» с нуля, ч. 2 Опрос, Программирование, Гаджеты, Смартфон, 3D графика, Gamedev, 3D, Видеокарта, Opengl, Gles, Directx, Видео, Без звука, Вертикальное видео, Длиннопост

    Наследуемся от Entity и реализуем абстрактные методы с логикой объекта. Здесь мы получаем состояние аппаратных кнопок влево и вправо, в зависимости от них вычисляем направление поворота машинки и, собственно, поворачиваем машинку путём сложения с координатой X вычисленного направления, помноженного на «скорость» поворота машинки. Для лучшего визуального эффекта, мы также плавно поворачиваем машинку эффектом а-ля EaseIn/EaseOut:

    float hVel = Engine.Current.Input.GetKeyState(GamepadKey.Left) ? -1 : (Engine.Current.Input.GetKeyState(GamepadKey.Right) ? 1 : 0);

    Transform.Position.X += hVel * SteerSpeed;
    Transform.Rotation.Y = MathUtils.lerp(Transform.Rotation.Y, 180 + (hVel * 35), 0.1f);

    Теперь нам нужно, чтобы машинка где-то «ездила». Для этого мы моделируем в блендере примитивный кусок дороги с элементами ландшафта:

    Первый легендарный мобильный GPU: каким был PowerVR MBX Lite? Пишем игру-демку про «жигули» с нуля, ч. 2 Опрос, Программирование, Гаджеты, Смартфон, 3D графика, Gamedev, 3D, Видеокарта, Opengl, Gles, Directx, Видео, Без звука, Вертикальное видео, Длиннопост

    А затем реализуем примитивный рендерер фона, который будет скроллить два одинаковых seamless-куска уровня и как я уже говорил ранее, просто телепортировать их друг за другом, создавая эффект бесконечности.

    public SectorRenderer()
    road = Model.FromFile(«road.mdl»);
    roadMaterial.Diffuse = Texture2D.FromFile(«road.tex»);

    terrain = Model.FromFile(«terrain.mdl»);
    terrainMaterial.Diffuse = Texture2D.FromFile(«grass.tex»);

    sector1.Position.Y = -4;
    sector2.Position.Y = -4;
    sector2.Position.Z = SectorSize;
    >

    public void Update()
    sector1.Position.Z -= ScrollingSpeed;
    sector2.Position.Z -= ScrollingSpeed;

    if (sector1.Position.Z + SectorSize < 0)
    sector1.Position.Z = SectorSize;

    if (sector2.Position.Z + SectorSize < 0)
    sector2.Position.Z = SectorSize;
    >

    public void Draw()
    Engine.Current.Graphics.DrawModel(road, sector1, roadMaterial);
    Engine.Current.Graphics.DrawModel(terrain, sector1, terrainMaterial);
    Engine.Current.Graphics.DrawModel(road, sector2, roadMaterial);
    Engine.Current.Graphics.DrawModel(terrain, sector2, terrainMaterial);
    >

    Где terrain.mdl — окружающий ландшафт, а road.mdl — собственно, сам меш дороги. Получаем вот такой эффект:

    Артефакты на видео — следствие проблем с точностью float у MBX Lite в процессе клиппинга геометрии при ближней плоскости отсечения в 0.1f. Меняем на 1.0f и всё снова работает нормально 🙂
    Чуть изменяем проекцию, переместив камеру выше и наклонив на 45 градусов и игра уже похожа на Traffic Racer!

    Переходим к реализации машин трафика. Модельки их машин будут загружаться при старте игры:

    private static void LoadTrafficModel(int idx, string name)
    PreloadedCars[idx] = Model.FromFile(name + «.mdl»);
    PreloadedMaterials[idx].Diffuse = Texture2D.FromFile(name + «.tex»);
    >

    public static void Preload()
    PreloadedCars = new Model[1];
    PreloadedMaterials = new Material[1];

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

    Rand rand = new Random();
    Transform.Position.X = Game.Current.world.PickLane(rand .Next(0, 4));
    Transform.Position.Y = Game.Current.world.Player.Transform.Position.Y;
    Transform.Position.Z = rand .Next(ZOffset, ZOffsetMax);

    selectedBias = rand.Next(0, SpeedBias.Length — 1);

    int carModel = rand .Next(0, PreloadedCars.Length — 1);
    model = PreloadedCars[carModel];
    material = PreloadedMaterials[carModel];

    А при обновлении, машинка просто продолжает ехать вниз! Логика простая до жути, даже без перестроений.

    Transform.Position.Z -= BaseSpeed * SpeedBias[selectedBias];

    Переходим к обработке столкновений. Помним, что мы на этапе конвертации моделей посчитали Axis Aligned Bounding Box для каждой модели? В качестве алгоритма мы будем использовать классический AABB — или Rect vs rect:

    Теперь для проверки столкновения между ними, нам надо посчитать абсолютный Bounding Box для каждого игрового объекта:

    Bounds = model.Bounds;
    Bounds.X += Transform.Position.X;
    Bounds.Y += Transform.Position.Y;
    Bounds.Z += Transform.Position.Z;

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

    foreach (Entity ent in Game.Current.World.Entities)
    if (ent is TrafficCar)
    if (Player.Bounds.Intersects(((TrafficCar)ent).Bounds))
    // TODO: Damage logic
    Player.IsDestroyed = true;
    >
    >
    >

    Уже что-то немного похожее на игру. Добавим конечное препятствие — необходимость рестарта при столкновении с другой машинкой и для демки пока-что хватит.

    public void Draw()
    string scoreFmt = string.Format(«Score: x», Game.Current.world.Statistics.Score, 1);
    Engine.Current.Graphics.DrawString(scoreFmt, 15, 15, StatsColor);

    if (Game.Current.world.Player.IsDestroyed)
    int measure = Engine.Current.Graphics.MeasureString(RestartString);
    Engine.Current.Graphics.DrawString(«Press Return to restart», Engine.Current.Graphics.ViewWidth / 2 — (measure / 2), Engine.Current.Graphics.ViewHeight / 2, StatsColor);
    >
    >

    Вот что у нас получилось:

    Правда, что на МКАДе каждый вечер такое? Я просто не с МСК 🙂

    ❯ Заключение

    Вот такой у нас получился материал про PowerVR MBX! С выходом iPhone, этот GPU дал толчок для появления красивых мобильных игр с уровнем графики, близким к полноценным домашним консолям… жаль, что золотая эра интересных, самодостаточных и бездонатных мобильных игр и закончилась во времена iPhone 5 🙁

    В остальном же, надеюсь материал был достаточно интересен и познавателен для всех моих читателей, даже тех, кто никогда не программировал игры! Был у вас Dell Axim X51v? Пишите в комментариях!

    Исходный код демки и бинарники можно найти на моём гитхабе.

    Материал написан при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud , чтобы не пропускать новые статьи каждую неделю! А ещё у меня есть своя телега, куда я публикую бэкстейдж статей и вовремя публикую ссылки на новый материал!

    Понравился материал? Всего голосов:

    А ещё я собираю деньги на проект с уже настоящим, физическим ТАЗом и его электронным дооснащением бортовым компьютером «по самому дешману» своими руками! Уже собрано 50.000 рублей из планируемых 70.000 на машину, из них 45.000 моих личных сбережений и 5.000 рублей — помощь читателей, за что вам большое спасибо 🙂

    Первый легендарный мобильный GPU: каким был PowerVR MBX Lite? Пишем игру-демку про «жигули» с нуля, ч. 2 Опрос, Программирование, Гаджеты, Смартфон, 3D графика, Gamedev, 3D, Видеокарта, Opengl, Gles, Directx, Видео, Без звука, Вертикальное видео, Длиннопост

    Показать полностью 3 5 1
    Поддержать
    Рисунки и иллюстрации с лисами от практикующего художника
    Подписаться

    1 месяц назад

    Бессмертные стражи [3D]⁠ ⁠

    Бессмертные стражи [3D] Творчество, Арт, 3D, 3D моделирование, 3D графика, Blender, Лиса, Elkir, Рисунок

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

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

    Бессмертные стражи [3D] Творчество, Арт, 3D, 3D моделирование, 3D графика, Blender, Лиса, Elkir, Рисунок

    Сделано целиком в Blender.
    Арт в высоком разрешении как всегда можно найти в вк группе

    Отдельное спасибо за поддержку @LactariuS

    Показать полностью 1
    Поддержать
    4 месяца назад

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»?⁠ ⁠

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Друзья! Многие ли из вас застали такую легендарную видеокарту, как S3 ViRGE? Когда-то этот GPU стоял чуть ли не в каждом втором офисном компьютере: благодаря дешевизне и заявленной поддержке 3D-ускорения, эту видеокарту просто сметали с полок магазинов. Далеко не все могли себе позволить ATI Rage, Riva TNT и уж тем более 3dfx Voodoo и очень разочаровывались в свежекупленной видеокарте, когда пытались поиграть в новомодные игры тех лет. На момент написания статьи, в сети слишком мало материала о том, как работали видеокарты 90-х «под капотом», однако мне удалось найти даташит на видеочип, SDK для программирования 3D-графики специально под него и некоторую документацию. Я решил исправить это недоразумение и начать развивать отдельную рубрику о работе старых видеочипов: начиная от S3 ViRGE и заканчивая GPU PS2 и PSP. Сегодня мы с вами: вспомним о S3 ViRGE, узнаем о том, как работали видеокарты в 90-х годах, затронем 2D и 3D режим и почему они тесно связаны между собой, посмотрим на проприетарное графическое API S3 ViRGE и раскроем причину, почему же этот GPU был таким медленным!

    ❯ 3D графика на ПК: начало

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

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Однако это не значит, что 3D-графики не было вообще. Прогресс развития домашних процессоров шёл семимильными шагами и гиганты рынка —Intel,AMDи в некоторой степени Cyrix, выпускали всё новые и новые процессоры с повышенными тактовыми частотами, а ближе к середине 90-х — и с SIMD (MMX). Поскольку многие техники для отрисовки трехмерного изображения были разработаны ещё в 60-х — 70-х годах, игроделы к началу-середине 90-х во всю использовали некоторые наработанные техники из кинематографа для растеризации 3D-графики прямо на процессоре — так называемыйсофтварный рендеринг.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Одной из самых известных техник 90-х являлась 2.5D графика с использованием рейкастинга — когда картинка на экране выглядит как трёхмерная, однако по факту весь мир представлен в виде 2D-координат, а эффект «пола и потолка» был как бы фейковым. Принцип его работы довольно прост: от глаз игрока для каждого горизонтального пикселя (т. е. при разрешении 240х320, у нас будет 240 проходов) пускаются «лучи» и ищется пересечение с ближайшей стеной относительно угла обзор из глаз игрока. Из этого пересечения берется дистанция до этой стены (на основе дистанции и угла считается «высота» данной строчки стены) и считается какую строчку текстуры необходимо вывести в этой точке. Одними из первых игр с применением этой технологии стал Hovertank и Wolfenstein 3D, а технология применялась практически до конца 90-х. Одной из самых лучших реализаций рейкастинга — движок Duke Nukem 3D, Build Engine, написанный Кеном Сильверманом.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Однако не одним 2.5D мы были едины. Шли годы, в СНГ многие люди продолжали наслаждаться 8-битными и 16-битными играми на клонахNESи SMD. У некоторых уже появлялась PS1, которая позволяла играть в игры с довольно хорошей 3D-графикой, однако на ПК 3D-игры были доступны не всем. Но в 1996 году выходитQuake— новейший шутер от первого лица от id Software с настоящей, трушной 3D-графикой и переворачивает всю индустриюFPSс ног на голову. Посудите сами: Джон Кармак умудрился реализовать достаточно быстрый софтварный рендерер, который мог вполне сносно работать на Pentium 75Мгц в разрешении 320×240. А ведь помимо отрисовки кадра, игре нужно было просчитывать логику монстров (довольно примитивную, к слову), обрабатывать столкновения, просчитывать видимую геометрию с помощью BSP-дерева и обрабатывать клиент-серверную логику самой игры. Это была самая настоящая революция в мире 3D игр на ПК.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    В 1997 году, id Software выпустили glQuake — порт Quake с софтрендера на OpenGL, плюс своеобразную прослойку для совместимости с API 3dfx Glide (на видеокартах Voodoo) и подмножества OpenGL, используемым в игре. Порт на OpenGL позволял разгрузить ЦПУ, перенеся всю отрисовку графики с процессора на 3D-ускоритель. Сам по себе, OGL как графическое API, представлял из себя лишь набор спецификаций, который мог быть реализован как в программном виде, так и в аппаратном производителем видеокарты (на примере Windows — OpenGL32.dll это программная реализация, которая при необходимости обращается к atioglxx.dll/nvoglvxx.dll — аппаратной реализации OpenGL от вендора видеочипа). Однако, OpenGL корнями уходил именно в отрисовку промышленной графики, а DirectX всё ещё находился в зачаточной форме, из-за чего многие производители разрабатывали собственное графическое API: из известных мне, могу подчеркнуть ATI CIF (C Interface), 3dfx Glide и проприетарное SDK S3 ViRGE. Некоторые вендоры поддерживали целые игровые движки — например, BRender и RenderWare.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Отдельные 3D-акселлераторы потихоньку начали завоевывать сердца геймеров и создавать новый сегмент рынка. Серьезные видеокарты от известных производителей, такие как 3dfx Voodoo, ATI Rage и Riva TNT стоили достаточно дорого и многим были не по карману. Зато существовало множество видеокарт с 3D-ускорителями от других производителей, про некоторые из них вы могли даже не слышать: отдельные дискретные видеокарты Intel (i740), видеокарты от производителя чипсетов SiS и конечно же, видеокарты от S3 с сериями ViRGE и Savage. Видеочипы от Intel и SiS делали упор на D3D 7.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    S3 ViRGE была весьма неплохой видеокартой с точки зрения 2D-ускорения. Сейчас 2D принято считать частным случаем 3D (по факту, 2D-спрайты — это 3D-квады, состоящие из двух треугольников), однако в то время для работы с памятью видеокарты и аппаратного ускорения некоторых операций, таких как блиттинг (BitBlt) существовало отдельное графическое API — DirectDraw. С этим у ViRGE было всё хорошо — он поддерживал довольно высокое разрешение экрана (при желании, объём видеопамяти можно было нарастить и установить разрешение ещё выше) и умел ускорять часть операций как DDraw, так и GDI.

    Однако, ViRGE разочаровывал многих геймеров 90х своей производительностью в 3D-графике. На коробке с бюджетной видеокартой красовались красивые надписи о 3D-графике следующего поколения, а на фотографии можно было увидеть некую игру про мехов с невиданной графикой!

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    По факту, ViRGE подходил для 3D-игр не особо хорошо. Конечно в те годы никто особо не плевался от FPS и при желании, игру могли пройти и в 15, и в 20 FPS. Однако производительность софтварного рендерера иногда была даже выше, чем у растеризатора ViRGE, а игры должны были быть специально адаптированы под неё (т. е. портированы для использования S3DTK). Тайтлов с адаптацией по этот GPU было немало: как минимум, Tomb Raider и MechWarrior 2 (который шел в комплекте с игрой). Польские ребята из известной многим Techland даже написали прослойку S3D -> OpenGL, позволявшей запускать Quake на ViRGE. Производительность была не ахти…

    Видеокарт от S3 нашлись и у меня, причём сразу несколько — ViRGE в PCI-исполнении и Trio в AGP-исполнении! Иногда я их использую для проверки старых материнских плат, которых у меня не так уж и много — рабочих на PGA370 и ниже у меня совсем нет. Однако остаётся вопрос, как эти видеокарты работали под капотом? Давайте узнаем!

    ❯ «Под капотом»

    Исторически сложилось так, что 3D и 2D акселераторы могли быть отдельными и формально не зависящими друг от друга устройствами. Архитектура IBM PC в зависимости от «поколения», предполагала сразу несколько типов видеоадаптеров, которые были стандартизированы под определенный тип мониторов. Один из таких адаптеров, VGA, стал стандартом на долгие годы, в то время как два других использовались в совсем ранних машинах. Их ключевое отличие было в организации видеопамяти и цветности — CGA/EGA предполагал разбитие пространства экрана на т. н. битплейны (один байт содержал информацию о нескольких пикселях и если не ошибаюсь, для сохранения адресного пространства сегменты экрана необходимо было переключать аля банки памяти) и былпалитровым, в то время как VGA предполагал как палитровый режим, так и полноценный RGB и мог отразить весь фреймбуфер в линейную область адресного пространства. Кроме того, долгое время VGA использовался для обозначения разрешения дисплея: QVGA — половина VGA (320×240), VGA (640×480), широкоформатный WVGA (800×480) и т. п.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Другой особенностью была полная (насколько мне известно) обратная совместимостью друг с другом. Например, GeForce 7xx, как один из последних GPU, который поддерживал Legacy BIOS, теоретически вполне мог работать и с EGA режимами, и с CGA через соответствующие видеорежимы int 10h!

    3D-режимы же никак не были стандартизированы и каждый производитель реализовывал работу с ними по разному — как уже говорилось ранее, кто-то реализовывал поддержку совсем молодого D3D и OpenGL (насколько мне известно, лучше всего с OpenGL было у NVidia. Остальные вендоры поддерживали OGL, но были свои болячки — у ATI они тянулись чуть ли не до середины-конца нулевых), а кто-то делал собственное графическое API и работал с видеочипом почти напрямую. Первые 3D GPU использовали шину PCI, которую почти сразу заменила более скоростная, но интерфейсно и софтварно почти идентичная шина AGP, а затем уже появился PCI-E, который оставался тем же PCI в софтовом плане, но был дифференциальным и последовательным, а не параллельным как интерфейсы-предшественники.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

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

    Установка состояний: Программа задаёт источники света на сцене, параметры Z-буфера и Stencil-буфера, какую текстуру(ы) следует наложить на рисуемую геометрию и с какой фильтрацией, какой тип аппаратного сглаживания использовать и т. п.
    Ранее, каждый стейт необходимо было устанавливать отдельно, при необходимости — для каждого DrawCall’а. После подготовки состояния, программа вызывает соответствующую функцию отрисовки.

    Обработка геометрии: Геометрия не поступает в растеризатор «как есть», в мировых координатах. Растеризатор оперирует вершинами в нормализованныхClip Spaceкоординатах — обычно, это [-1, -1… 1, 1], где 0.5 — центр экрана по каждой оси. Именно поэтому сначала необходимо провести этап трансформации геометрии для перевода из некой глобальной системы координат (которая может выражаться в метрах или, например, в пикселях) в Clip Space. Для этого чаще всего координаты (корректнее — трансформации) представляются в виде трех перемноженных матриц — model (мировые координаты геометрии), view (положение «глаз» в мире, или по простому камера. Умножая model на неё, мы получаем координаты объекта в пространстве камеры) и projection (матрица проекции, которая преобразовывает координаты из пространства глаз в тот самый Clip Space. Именно в этой матрице задается FOV для перспективной проекции и виртуальные размеры экрана для ортографической матрицы). После этого, координаты каждой вершины трансформируются полученной ModelViewProjection матрицей и получается финальная позиция для Clip Space. Звучит как сложный учебник матану, по факту всё очень просто. 🙂

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Детали реализации низкоуровневого матана, в том числе перемножения матриц и построения матриц трансформаций и проекции знать желательно, но необязательно. Сейчас этим занимаются очень удобные математические библиотеки — например, glm, dxmath или d3dx.

    Кроме того, ранее именно на вершинном этапе считалось освещение для уровня. В некоторых видеочипах была возможность аппаратного расчета источников света, в некоторых — только программная на ЦПУ.

    На видеокартах тех лет, в том числе и S3 Virge, трансформацией вершин занимался центральный процессор, из-за чего было довольно серьёзное ограничение на количество вызовов отрисовки и число треугольников в одной модели. Видеокарты с аппаратной, но всё ещё не программируемой трансформацией вершин появились лишь к GeForce 2 — называлась эта технология T&L (Transform and Lightning) и её преимущество было в том, что у видеокарты были специализированные векторные сопроцессоры, способны быстро пересчитывать векторные операции (а у ЦПУ, в свою очередь, развивались SIMD наборы инструкций, позволяющие выполнять несколько операций над float одновременно). В некоторых случаях, был даже отдельный программируемый векторный сопроцессор как, например, в PlayStation 2, что позволяло реализовать вершинные шейдеры ещё в 2000 году! На современных видеокартах, этапом трансформации в самом простом случае управляют вершинные шейдеры. Помимо этого, есть возможность создания геометрии «на лету» с использованием тесселяции и геометрических шейдеров, а совсем недавно появились Mesh-шейдеры, которые объединили несколько подэтапов конвейера в один.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

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

    В современных видеокартах этот этап конвейера программируется пиксельными (или фрагментными) шейдерами. В старых видеочипах (исключение — вроде-бы частично программируемый GPU Nintendo 64, поправьте в комментариях, если не прав) этот процесс строго определен в каждом GPU и не программировался. Именно поэтому такой подход к рисованию графики назывался Fixed function pipeline. Были ещё комбайнеры, но они появились заметно позже — когда в видеокартах появилось уже несколько текстурных юнитов, способных смешивать несколько текстур одновременно.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Делая вывод, мы можем понять, что S3 Virge и другие видеочипы были устройствами, которые умели рисовать лишь тот уровень графики, который был заложен производителем с завода. Такой подход называется фиксированным конвейером — Fixed Function Pipeline. Сейчас разработчики видеочипов перешли с фиксированного конвейера на программируемый (шейдерный). Уже начиная с SM2.0-SM3.0, на современных видеокартах появилась возможность создавать крутое и достаточно сложное освещение и различные эффекты, которые стали неотъемлемыми в современных играх.

    Кроме того, важно понимать, что в видеопамяти ранних видеочипов хранился только фреймбуфер, а немного позже — текстуры, именно поэтому VRAM в старой документации называют «текстурной памятью». Вообще, некоторые нюансы первых версий OpenGL тянуться именно из особенностей работы первых видеокарт. Вспомнить хотя бы первые функции для старта отрисовки геометрии и загрузке вершин на видеокарту — это были связки glBegin/glVertex/glEnd:

    glBegin(GL_TRIANGLES);

    glVertex3f(0, 0, 0);

    glVertex3f(1, 0, 0);

    glVertex3f(1, 1, 0);

    glEnd(); // Для одного треугольника

    glBegin(GL_TRIANGLES);

    for(int i = 0; i

    glEnd(); // Для меша

    Даже сам glBegin/glVertex/glEnd появились не спроста. Геометрию на видеокарте начали хранить только в начале нулевых (и то не везде — привет встройкам Intel и S3).

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

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    В основе у нас лежит 64-х битное ядро, которое могло обрабатывать как 2D-графику с аппаратным ускорением, так и 3D-графику. Ядро работало на частоте 135МГц с встроенным RAMDAC (модуль, отвечающий за вывод картинки на аналоговые разъемы — VGA и DVI, однако выводом на TV-тюльпаны занимался отдельный чип TV-энкодер). Современные видеочипы перешагнули планку 1ГГц, однако сравнение исключительно по частоте некорректны — архитектуры очень сильно отличаются. Помимо этого, видеочип умел декодировать видео с интерполяцией и аппаратно «помогать» процессору с скейлингом видео (например, когда вы разворачиваете плеер на весь экран) и даже рендерить видео в текстуру (что позволяло реализовать, например, телевизоры в играх)!

    3D движок поддерживал следующие возможности:

    • Затенение по Гур.о
    • Маппинг текстур с перспективной коррекцией и билинейной/трилинейной фильтрацией, а также мипмаппингом.
    • Depth-буфер, сэмплинг тумана и поддержка альфа-блендинга (прозрачной геометрии).

    Чип поддерживал две шины — PCI и менее известную VLB (Vesa Local Bus, очень условно ISA)
    Помимо этого, у чипа не было встроенной памяти — к нему необходимо было подключать внешнюю DRAM-память 2/4/8Мб. От её количества зависело максимально-поддерживаемое разрешение экрана. Текстуры при необходимости хранились в ОЗУ.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Видеопамять когда-то расширялась за счёт дополнительных модулей! Эту видеокарту можно расширить аж до 8МБ!

    Поддерживаемые разрешения экрана:

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Для DirectDraw и ускорения 2D-графики в Windows была реализация аппаратного BitBLT — копирования пикселей в точку на экране. Она поддерживала все режимы, которые были в реализации этой функции в Windows — от монохромных, до 24-х битных. Без альфа-блендинга, само собой. Но тут нет ничего необычного — многие видеочипы тех лет предоставляли простое 2D-ускорение.

    Интереснее реализация отрисовки 3D-графики. Каждый треугольник описывался 3-мя регистрами на каждый параметр — координата X, Y для каждой точки, текстурные координаты и т. п. Всего для отрисовки одного треугольника могло потребоваться до 43 регистров! Весьма немало. И именно из-за этого в свое время появились glBegin/glVertex/glEnd!

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Параметры сэмплера (текстурного юнита) задавались регистрами, которые определяли формат пикселя текстуры и сам тип фильтрации. Как я уже говорил выше — поддерживалась билинейная и трилинейная фильтрация и проприетарный формат сжатия текстур, который стал стандартом: S3TC или DXT.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Для программирования S3 ViRGE было разработано собственное C SDK — S3DTK, которое состояло из сэмплов и заголовочных файлов для общения с GAPI видеочипа (или видеочипом напрямую, если игра предназначена для DOS). При этом вполне не исключено, что GAPI для Windows работало с видеокартой напрямую, предоставляя PCI-драйвер лишь как прослойку для обмена данными. Поскольку это не D3D, для игр с поддержкой видеоускорения требовалось качать специфические версии. Некоторые игры (как Quake 2) поддерживали мультирендер, но не поддерживали S3 ViRGE.

    Весь графический API помещался в один заголовочный файл. API было не простым, а очень простым и понятным — думаю, даже разработчикам-новичкам было легко начать программировать под ViRGE!

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Формат вершин был фиксированным и зависел от того, как вы рисовали геометрию на экране:

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    GAPI поддерживало различные типы треугольных списков, а также точки (POINT для спрайтов и систем частиц) и линии:

    #define S3DTK_TRILIST 0

    #define S3DTK_TRISTRIP 1

    #define S3DTK_TRIFAN 2

    #define S3DTK_LINE 3

    #define S3DTK_POINT 4

    Фактическое API для рисования умещалось в 9 функций и ещё несколько функций для инициализации библиотеки, преобразования адресного пространства и работы с Windows.

    Для работы с состоянием видеочипа служили две функции — SetState и GetState. Именно они отвечали за то, как рисовалась геометрия на экране:

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    А для фактического рисования примитивов служили функции TriangleSet и TriangleSetEx! Да, это альтернатива DrawPrimitives/DrawArrays в современных GAPI. Никаких индексов тогда ещё не использовалось! Функции принимали указатель на массив вершин и их количество, а также на тип рисуемой геометрии (треугольники, линии и т. п.). В Ex версии, можно было «пачкой» установить стейты параллельно с рисованием — такой подход используется в DX10+ API — стейты тоже задаются исключительно «пачками», только теперь они поделены на подгруппы.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Для 2D-рисования были свои, отдельные функции — для блиттинга. Поддерживался ColorKey/хромакей — прозрачным считался определенный цвет, переданный как параметр функции

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Основной причиной медлительности S3 ViRGE был низкий филлрейт. При отрисовке примитивов, которые занимают большое пространство экрана, FPS резко просаживался даже с примитивными кубиками и пирамидками. Однако, если не насаживаться на филлрейт и делать что-то типа 2D-поля и 3D-танчиков, то производительность оставалась вполне приемлимой.

    ❯ Заключение

    История S3 закончилась поглощением компанией VIA. После этого, компания разрабатывала интегрированную графику специально для чипсетов VIA, а материнские платы на этих чипах пользовались довольно высоким спросом. Поэтому нередко взяв старый бюджетный ноутбук, года эдак 2005, можно найти в нём VIA Chrome — наследника легендарного S3 Savage! Проблемы у такого подхода тоже были — из-за наследия из конца 90х, ранние Chrome по сути поддерживали только D3D 7.0 и OpenGL ~1.4. Несколько позже, в 2009 году, компания выпустила S3 Chrome 540 GTX — одну из последних видеокарт на собственной архитектуре. Этот видеочип был достаточно современным и поддерживал DX10.1, OpenGL 3.0. Интересно, реально ли найти эту видеокарту сейчас?

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    По итогу мы можем сделать вывод, что первые 3D-ускорители были относительно простыми устройствами «под капотом» и их можно было программировать чуть ли не «напрямую». Многие старые видеочипы получили свои локальные прозвища и стали легендарными, однако их архитектура и принцип работы оставались тайной. По крайней мере, в рунете точно.

    3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»? Гаджеты, Покупка, Разработка, 3D, 3D графика, Программирование, Уборщица, Видеокарта, Видеоускорители, Samsung galaxy s3, Opengl, Directx, Техника, Девайс, Длиннопост

    Насколько я понимаю, неравнодушные инженеры после закрытия 3dfx и слияния S3 с VIA решили «слить» даташиты в сеть, за что им большое спасибо! Ведь теперь мы имеем возможность посмотреть на принцип работы таких устройств сами!

    Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня, мой Telegram и @Timeweb.Cloud, чтобы не пропускать новый материал каждую неделю!

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *