3d графика для веб-приложений

Я должен создать веб-приложение, которое, помимо прочего, включает в себя следующие задачи

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

Изначально приложение предназначалось для использования на ПК в Qt/OpenGL, но мы изучаем, возможно ли реализовать его как веб-приложение.

Мои знания по веб-разработке все еще ограничены.

Каков будет рекомендуемый подход / технология, чтобы найти решение для этого?

Спасибо!!

Обновление: Платформа Независимые решения предпочтительнее. Приложение должно работать на компьютерах Mac и Windows.

10 ответов

Решение

Если это веб-приложение, вы должны изучить Papervision3D ( http://papervision3d.org/) для подхода, основанного на Flash (так было бы, если вы хотите, чтобы он был относительно независимым от платформы).

Java-апплет, вероятно, будет делать то, что вы хотите тоже.

Посмотрите на Java 3D

Также отличная, но новая O3D от Google: http://code.google.com/apis/o3d/

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

Ну, вы, конечно, не можете сделать все это в HTML, так что это вопрос выбора технологии плагинов.

На мой взгляд, лучшая ставка для вас - это Flash, поскольку это зрелая платформа с множеством сторонних расширений (таких как http://www.flashsandy.org/), позволяющих вам выполнять 3D-моделирование.

Другой альтернативой является Silverlight, который даст вам возможность.NET/C# (вместо сценариев).

Оба кроссплатформенные и кросс-браузерные.

Canvas и JavaScript могут отображать его в зависимости от сложности вашей 3D-модели. Посмотрите этот пример Canvas 3D

Также есть Firefox Canvas 3D Addon и Canvas 3d JS Library для написания 3D-приложений с его использованием.

Я согласен с другими, что Flash, вероятно, ваш лучший выбор. Если в будущем возникнет обеспокоенность по поводу работы на мобильных устройствах Apple, а стоимость - не проблема, обратите внимание на разработку чего-либо с использованием Unity. Это плагин (как Flash), но он не вызвал гнев Стива Джобса.

http://unity3d.com/gallery/developer-profiles/web-games/

Есть несколько подходов к этому. Некоторые, которые приходят мне в голову:

  • рассмотрите возможность доставки его как компонента ActiveX (самый быстрый, но только для Win32).
  • рассмотрите возможность использования.NET (Silverlight) (Win32, OSX, *nix в обозримом будущем через Moonlight; только DirectX/Direct3D)
  • рассмотрите возможность использования Java, который также может получить доступ к OpenGL.
  • рассмотрите возможность использования любого посредника, с которым вы столкнетесь... должно быть несколько десятков.

Проблемой, вероятно, будет мобильность. Здесь есть два предостережения: ваш код должен работать везде и 3D-ускорение. Это проблема, потому что вы не можете быть уверены, что у него будет 3D (вы можете запросить свой контекст, конечно).

Следовательно, вы также можете рассмотреть возможность растеризации и рендеринга на процессоре (то есть, используя MESA3D). Если вам не нужно разрешать преобразования произвольной формы и вы хотите анимировать, скажем, 30 кадров, и, используя Mesa, вы, возможно, сможете визуализировать 5 кадров в секунду на типичной модели на типичном оборудовании, вам потребуется 6 секунд для расчета всей сцены. Этого было бы достаточно.

Adobe Shockwave обладает мощными возможностями 3D-моделирования. К сожалению, в настоящее время он недостаточно поддерживается, но у Flash нет 3D-функций (проект papervision3d пытается исправить это, YMMV).

Еще один вариант Java, менее интегрированный с JVM, но основанный на OpenGl - lwjgl (мой любимый) и jogl.

Проверьте веб-запуск Jake2: http://bytonic.de/html/jake2_webstart.html

Другие вопросы по тегам