3ds max для андроид

Sketcher 3D Pro 1.43

Sketcher3D — это моделирование, дизайн и забавная физика. Создавайте и манипулируйте трехмерными объектами, размещайте их в пространстве, или просто стройте и разрушайте!

  • создавайте объекты и сцены с дизайном зданий или планировкой окружающего пространства.
  • Перемещения, полноценные перевороты и изменения размеров объектов с использованием акселерометра (G-Sensor).
  • Можно экспортировать (вставить) объекты и манипулировать ими (скопируйте файл и материалы объекта на карту памяти в папку: /Android/com.Doktor3D.Sketcher3D_Pro/files)
  • Экспорт сцен и объектов для использования в других приложениях.
  • Изменение цвета и прозрачности объектов.
  • Клонирование и группировка объектов.
  • Загрузка сцен (пример сцены с отличным средневековым зАмком уже имеется в программе).
  • Сохранение ваших сцен.
  • Аудио и виброотдача создадут живую физику.
  • Встроено два макета моделей объектов: BMW и Офисное здание.
  • … все с реалистичной физикой.

Sketcher 3D — это нечто среднее между приложениями для 3D моделирования, таких, как Google SketchUp, Autodesk Maya, 3ds Max, AutoCAD, или Blender, и физическими играми, такими, как Apparatus или Garry’s Mod (GMod).

Рекомендуется минимальная скорость процессора 600 МГц, а разрешение экрана 800х480 или выше.

Источник

3ds max для андроид

3DC.io : 3D Modeling (Моделирование)
версия: 1.27.1

Последнее обновление программы в шапке: 15.01.2021

Краткое описание:
Является самым простым приложением на рынке для создания 3D-моделей и их печати.

Описание:
3D Creationist (3DC) – это самое простое приложение для создания 3D-моделей, предлагающее лучшую функциональность на мобильных устройствах. Доступно каждому!

Создавайте, делитесь и даже печатайте свои разработки в формате 3D.

Если вам интересно, что моделируют другие пользователи, заходите в галерею: https://3dc.io/gallery/

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

С чего начать:
Добавьте на поле несколько простых фигур (например, куб и конус).
Прикоснитесь к фигуре, чтобы сделать её активной или неактивной.
Выберите подходящий инструмент для нужного действия: «Передвинуть», «Повернуть», «Масштабировать».
Используйте стрелки вокруг фигуры, чтобы повернуть объект в нужном направлении.

Камера:
-Поворачивайте камеру, проводя пальцем по полю.
-Увеличивайте или уменьшайте изображение, сводя или разводя два пальца по экрану.
-Перемещайте камеру, «перетаскивая» её тремя пальцами.

Вы хотите сделать что-то интересное? Вот несколько идей:
— Самолет
— Машина
— Крепость
— Снеговик
— Персонажи мультфильмов
— Чашка кофе

Будущие обновления:
— Больше фигур и готовность к печати моделей
— Создание 3D-текстов с вашим шрифтом
— Операции «Отменить» и «Повторить»
— Возможность поделиться видеозаписью вашего творческого процесса
— Сгибание объектов
— Анимация ваших 3D-моделей
— Сделайте чертеж, и мы создадим по нему 3D-модель (путем прессования)

Вот несколько примеров использования нашего приложения:
— Содержание виртуальной реальности
— Дизайн интерьеров
— Создание игрушек
— Логотипы
— Модели для игр
— Прототипы
— Образование
— Эскизы
— Покадровая съемка в анимации
— Персонажи мультфильмов

Вы можете экспортировать модели в несколько различных форматов для последующего применения:
в других программах для 3D-моделирования (Blender, 3ds Max)
в игровых движках (Unity, Unreal Engine)
в моддинге (Minecraft, Tiber, Roblox)

Читайте также:  Загрузить эмодзи для андроид

Наши страницы в соцсетях:
Instagram: instagram.com/3dcreationist/
Facebook: facebook.com/3dcreationist/
Twitter: @3DCreationist

Загружайте приложение и творите в свое удовольствие 🙂

When you drive with Nexar, you join a community of tens of thousands of drivers who together are crowdsourcing road safety with this car camera app.

Incredible, cutting-edge, dash cam features:

— Always-on: records all your rides and lets you save the ride history to your private Nexar cloud (everything goes to our servers). Automatically detects hard brakes and crashes.
— Nexar’s dash cam can go in the background so you can keep using your favorite navigation app uninterrupted.
— Intelligent & automatic storage management — your phone will never run out of space.
— Easily share dashcam footage on youtube, facebook, twitter and any other social media.
— Send your dashboard camera recordings to your insurance agent in case of a claim.
— You’re in control: the dash cam videos are yours and you decide what to do with them.
— Ridesharing? Use Nexar with the phone’s in-car camera to record and deter scary passengers
— In selected hardware, use dual-mode cameras to record both inside your car and outside simultaneously.
— In the unfortunate case of being involved in a collision, get a free Nexar Collision Report that’s based entirely on your phone’s sensors and car camera footage.

Why do I have to sign up using facebook or my phone number?
To be able to access from any device your car camera rides and incidents, you have to login into your private Nexar cloud using your facebook account or your phone number.

We’re just getting started. Nexar is not just a dashboard car camera that helps you in case of an emergency, it will also connect you to a network of dashcams so that together we can make driving safer.

Nexar will take your driving experience to the 21st century and bring your car into the connected-driving revolution no matter whether you are driving an old Chevy, or a brand new Tesla.

Требуется Android: 4.1 и выше
Русский интерфейс: Да

Источник

Загрузка файлов .3DS на Android

Данная статья является эдаким приквелом к моему прошлому посту, посвящённому Glow-эффекту. Я обещал рассказать, как загружать файлы .3ds, чтобы отрисовывать их с применением использованных там шейдеров.

Некоторую общую информацию о формате файла можно прочитать, например, в википедии или в demo.design 3D programming FAQ, однако это всё теория (причём, написанная не без ошибок), а здесь мы поговорим о практике, причём применительно к Java и Android.

Что здесь будет:

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

Чего здесь не будет:

  • загрузки самих текстур (мне пока не понадобилось, хотя реализуется легко);
  • загрузки информации о камерах (опять же, легко добавить, но не пригодилось);
  • использования групп сглаживания для вычисления нормалей (не уверен, что это вообще нужно) (всё-таки будет);
  • использования сплайнов для анимации.
Читайте также:  Что делать если удалил системные файлы андроид

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

Чтение файла

Как ни странно, именно самое простое чтение чисел из файла явилось одной из самых сложных задач, с которыми пришлось столкнуться в первую очередь. Здесь есть две грабли: скорость и корректность. Скорость мы обеспечим использованием BufferedInputStream и исключительно последовательным чтением, а вот с корректностью всё немного сложнее: Java считает, что все данные в файле должны быть big-endian, тогда как в .3ds используется little-endian. Что ж… Применяем простую обёртку:

По-хорошему, это должен был быть отдельный класс, унаследованный от BufferedInputStream, но в данном случае мне было удобнее делать именно так.

Вот теперь можно приступать к чтению чанков (chunks). Для начала — главный:

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

Материалы

Блок материалов идёт обычно первым, потому как на него потом ссылается блок треугольников.

Материал состоит из нескольких цветов (ambient, diffuse, specular), имени материала, параметров блика, имени текстуры. Как уже отмечено выше, текстуры здесь не грузятся, но это легко добавить при необходимости.

3D-модели

Каждая 3D-модель (см. функцию ChunkTrimesh) задаётся следующими данными:

  • список координат вершин;
  • список треугольников;
  • текстурные координаты;
  • локальная система координат.

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

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

Здесь число 24 поменялось на 32, так как раньше текстурных координат не было, а теперь есть.

Все координаты грузятся функцией ChunkVector, которая заодно меняет местами оси Y и Z:

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

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

Ещё одна особенность списка граней заключается в том, что после чанка с именами материалов могут остаться грани, к которым материал не применили. Для них надо при отрисовке использовать дефолтный материал, примерно так:

Источники света

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

Собственно, добавилось вычисление и применение NdotH. uShininess здесь и shininess в Material3D имеют разные размерности, точное соответствие между ними я не подбирал (опять же, если кому-нибудь понадобится — это легко сделать).

Читайте также:  Gamesir t4 pro genshin impact android

Анимация

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

Все объекты в файле .3ds объединены в иерархическое дерево, и трансформации каждого «предка» должны применяться к «потомку». Вершины дерева записаны в порядке «сверху вниз», поэтому применение преобразований можно осуществлять в том же порядке. Любопытно, что с точки зрения .3ds-файла 3D-модели, источники света и камеры являются равноправными объектами, которые можно связывать друг с другом иерархией и одинаково применять анимацию. Однако, нас пока что интересуют только 3D-модели, а в частности — треки перемещения, поворотов и масштабирования в них.

Для каждого объекта хранится:

  • имя объекта;
  • идентификатор самого объекта и его предка;
  • точка поворота (pivot, условный центр объекта, вокруг которого осуществляется поворот);
  • списки ключевых кадров сдвига, поворота, масштабирования, а также параметров камеры (их я игнорирую, как и сами камеры).

Загрузка треков — дело скучное, поэтому поговорим лучше о том, как их применять. Итак, у нас есть:

  • матрица преобразования предка (индуктивное предположение);
  • сдвиг;
  • пачка поворотов;
  • масштабирование;
  • центр объекта;
  • локальная система координат (см. чанк 3D-модели).

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

Ещё один любопытный момент состоит в том, что надо держать в голове две матрицы: преобразование для потомка (result) и преобразование для модели (world). Первая применяется в цепочке иерархии, вторая — при отрисовке модели. В каком же порядке всё это собирается?

Подразумевается, что преобразования применяются к вершине в порядке «справа налево» (как принято в OpenGL). Здесь trmatrix — это матрица, обратная той, что была в чанке 3D-модели. Итого, код вычисления преобразования для заданного момента времени (при загрузке все номера кадров преобразовывались в вещественные числа от 0 до 1):

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

Кроме того, цикл по моделям из прошлой статьи теперь выглядит немного иначе:

Далее всё так же, как раньше.

Заключение

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

Ну и, собственно, обещанные готовые исходники: Scene3D (структуры данных) и Load3DS (загрузчик). Обратите внимание, что файлы грузятся из корня карточки памяти («/sdcard/»), настоятельно рекомендую поменять это на что-нибудь более разумное.

Update: Раз уж столько копий сломано о нормали — добавил в исходники код работы с группами сглаживания. Индексные буферы остались 2-байтными, так что остерегайтесь переполнения!

Источник

Оцените статью