Привет, хабрасообщество! Хотел бы рассказать вам о своем проекте, над которым я работаю в свободное время. Он называется Viewpot и является первым в Сети хостингом 3D-моделей.
Уверен, что практически всем уже известно о грядущем HTML5 и новых возможностях, которые он предоставляет разработчикам. Одним из самых главных и интересных нововведений является WebGL — технология, дающая браузеру возможность отображать интерактивные трехмерные сцены, просчитываемые на видеокарте. Эта технология будет доступна в любом современном браузере без установки дополнительных плагинов, и отдельно нужно отметить, что она будет поддерживаться устройствами на базе iOS и Android.
Первые браузеры с поддержкой WebGL — Firefox 4 и Chrome 10 — появятся уже в этом году. Сразу же возникает вопрос: кем эта технология будет востребована? Или, другими словами, в каких областях динамические 3D-модели, которые пользователь может вращать и масштабировать мышкой, будут информативнее статичных картинок? Некоторые из этих областей можно перечислить уже сейчас:
Конечно, не стоит ожидать, что каждый сайт в сети станет трехмерным. Но можно утверждать с уверенностью, что в определенных областях 3D-контент будет востребован.
Однако публикация 3D-контента на сайте требует решения ряда технических задач. Во-первых, необходимо подготовить исходную модель для отображения в браузере с помощью конвертера, и, во-вторых, необходимо иметь специальный JavaScript-плеер для отображения модели на странице.
Приблизительно те же сложности возникают сегодня при публикации видео- и аудио-контента. Это дало почву для возникновения ряда сервисов, таких как YouTube и SoundCloud. Эти сервисы берут все технические сложности на себя и предоставляют пользователям готовое комплексное решение.
Логично предположить, что со временем появится потребность в таких же сервисах для хостинга 3D-моделей. Причем модели, которые будут публиковаться с помощью этих сервисов, можно будет встраивать на сторонние сайты, так же, как сейчас можно встроить плеер YouTube на страницу блога или любого другого сайта.
Проект Viewpot является прототипом такого сервиса. Он предоставляет пользователю возможность загрузить свою модель и получить страницу, где эта модель отображается, а так же код для вставки плеера с моделью на любую HTML-страницу.
На сегодняшний день на сайте реализованы лишь базовые функции, так как основной объем работы пришелся на технологически емкие и наиболее важные части системы — серверный конвертер моделей и браузерный плеер. Поддержка “продвинутых” возможностей 3D, таких как анимация и эффекты (шейдеры), так же не была реализована.
Однако существующего функционала достаточно, чтобы получить представление о том, какую задачу решает этот продукт, и вероятнее всего, в ближайшее время у проекта появятся первые пользователи из числа отечественных и англоязычных 3D-моделлеров.
Говоря о 3D-контенте важно понимать, что процесс его cоздания гораздо более сложен, чем процесс создания видео или фото. В наши дни не существует бытовых 3D-сканеров или фотоаппаратов, которые позволяли бы любому человеку быстро получить готовую 3D-модель. Следовательно, авторами контента будут выступать люди из узкого круга 3D-художников, архитекторов, инженеров — то есть люди, работающие с 3D профессионально. Эти люди являются целевой платежеспособной аудиторией. Другая часть аудитории — потребители контента — гораздо более многочисленная, но в целом трудномонетизируемая группа.
Так как целевая аудитория имеет сугубо профессиональный характер, то наиболее вероятным путем монетизации является продажа инструментов, которые будут помогать решать задачи более эффективно, а так же увеличение лимитов, которые будут накладываться на загружаемый контент. Говоря другими словами, это будет продажа “pro”-аккаунтов, которые будут предоставлять расширенный набор возможностей и инструментов:
Так же следует отметить высокую вероятность B2B продаж. Возможные клиенты — архитектурные агентства, агентства по дизайну интерьеров, ландшафтов и другие организации, заинтересованные в публикации на своих сайтах 3D-сцен.
В серверной обработке 3D-моделей еще очень много “белых пятен”, то есть задач без готовых open-source решений. Если для видео у нас есть инструменты вроде ffmpeg, а для графики — ImageMagick, то код различной обработки трехмерных сцен вам вероятнее всего придется писать вручную.
Большую сложность представляет собой даже такая мелочь, как генерация thumbnail-ов. В более общем виде эта задача сводится к серверному рендерингу 3D-сцены. Самый оптимальный вариант решения — это иметь парк серверов с мощными видеокартами. На каждом сервере будет установлен автоматизированный робот со встроенным WebKit-ом, делающий скриншоты отрендеренных сцен. C помощью такого механизма можно так же реализовать орбитный рендеринг модели, то есть серию 2D-изображений, полученных в результате облёта камеры вокруг модели.
Что касается JavaScript-движков для рендеринга, то тут ситуация более радужная — существует ряд проектов: Scene.js, CopperLicht, GLGE, Google O3D и другие. “Пощупав” каждый из них, я выбрал Google O3D, который раньше был браузерным плагином (вроде Flash), а теперь стал JavaScript-библиотекой на базе WebGL. O3D показался мне наиболее продуманным, законченным и готовым к использованию, нежели другие движки. Так же огромным плюсом является большое количество примеров и хорошая документация, свойственная всем проектам Google.
Так же хорошее впечатление производит SpiderGL, но он более низкоуровневый по сравнению с O3D.
Буду благодарен за ваши отзывы и критику, и с удовольствием отвечу на возникшие вопросы, в том числе технические. Если хотите, то можно пообщаться по электронной почте. Привет!
Автор поста и проекта — sotakone, он попросил у меня опубликовать пост, так как у него самого недостаточно кармы.
Уверен, что практически всем уже известно о грядущем HTML5 и новых возможностях, которые он предоставляет разработчикам. Одним из самых главных и интересных нововведений является WebGL — технология, дающая браузеру возможность отображать интерактивные трехмерные сцены, просчитываемые на видеокарте. Эта технология будет доступна в любом современном браузере без установки дополнительных плагинов, и отдельно нужно отметить, что она будет поддерживаться устройствами на базе iOS и Android.
Первые браузеры с поддержкой WebGL — Firefox 4 и Chrome 10 — появятся уже в этом году. Сразу же возникает вопрос: кем эта технология будет востребована? Или, другими словами, в каких областях динамические 3D-модели, которые пользователь может вращать и масштабировать мышкой, будут информативнее статичных картинок? Некоторые из этих областей можно перечислить уже сейчас:
- архитектурные визуализации на сайтах архитектурных проектов или строительных компаний;
- интерьерные визуализации;
- специфические интернет-магазины (например, мебельные);
- научные, инженерные модели (чертежи);
- медицинские визуализации;
- непосредственно сообщество 3D-моделлеров.
Конечно, не стоит ожидать, что каждый сайт в сети станет трехмерным. Но можно утверждать с уверенностью, что в определенных областях 3D-контент будет востребован.
Технический порог
Однако публикация 3D-контента на сайте требует решения ряда технических задач. Во-первых, необходимо подготовить исходную модель для отображения в браузере с помощью конвертера, и, во-вторых, необходимо иметь специальный JavaScript-плеер для отображения модели на странице.
Приблизительно те же сложности возникают сегодня при публикации видео- и аудио-контента. Это дало почву для возникновения ряда сервисов, таких как YouTube и SoundCloud. Эти сервисы берут все технические сложности на себя и предоставляют пользователям готовое комплексное решение.
Логично предположить, что со временем появится потребность в таких же сервисах для хостинга 3D-моделей. Причем модели, которые будут публиковаться с помощью этих сервисов, можно будет встраивать на сторонние сайты, так же, как сейчас можно встроить плеер YouTube на страницу блога или любого другого сайта.
Viewpot
Проект Viewpot является прототипом такого сервиса. Он предоставляет пользователю возможность загрузить свою модель и получить страницу, где эта модель отображается, а так же код для вставки плеера с моделью на любую HTML-страницу.
На сегодняшний день на сайте реализованы лишь базовые функции, так как основной объем работы пришелся на технологически емкие и наиболее важные части системы — серверный конвертер моделей и браузерный плеер. Поддержка “продвинутых” возможностей 3D, таких как анимация и эффекты (шейдеры), так же не была реализована.
Однако существующего функционала достаточно, чтобы получить представление о том, какую задачу решает этот продукт, и вероятнее всего, в ближайшее время у проекта появятся первые пользователи из числа отечественных и англоязычных 3D-моделлеров.
Монетизация
Говоря о 3D-контенте важно понимать, что процесс его cоздания гораздо более сложен, чем процесс создания видео или фото. В наши дни не существует бытовых 3D-сканеров или фотоаппаратов, которые позволяли бы любому человеку быстро получить готовую 3D-модель. Следовательно, авторами контента будут выступать люди из узкого круга 3D-художников, архитекторов, инженеров — то есть люди, работающие с 3D профессионально. Эти люди являются целевой платежеспособной аудиторией. Другая часть аудитории — потребители контента — гораздо более многочисленная, но в целом трудномонетизируемая группа.
Так как целевая аудитория имеет сугубо профессиональный характер, то наиболее вероятным путем монетизации является продажа инструментов, которые будут помогать решать задачи более эффективно, а так же увеличение лимитов, которые будут накладываться на загружаемый контент. Говоря другими словами, это будет продажа “pro”-аккаунтов, которые будут предоставлять расширенный набор возможностей и инструментов:
- поддержка advanced-фич (анимация, интерактивные сцены, шейдеры);
- браузерный редактор загруженных сцен;
- оптимизация сцен для ускорения рендеринга;
- публикация “больших” сцен.
Так же следует отметить высокую вероятность B2B продаж. Возможные клиенты — архитектурные агентства, агентства по дизайну интерьеров, ландшафтов и другие организации, заинтересованные в публикации на своих сайтах 3D-сцен.
Технические нюансы
В серверной обработке 3D-моделей еще очень много “белых пятен”, то есть задач без готовых open-source решений. Если для видео у нас есть инструменты вроде ffmpeg, а для графики — ImageMagick, то код различной обработки трехмерных сцен вам вероятнее всего придется писать вручную.
Большую сложность представляет собой даже такая мелочь, как генерация thumbnail-ов. В более общем виде эта задача сводится к серверному рендерингу 3D-сцены. Самый оптимальный вариант решения — это иметь парк серверов с мощными видеокартами. На каждом сервере будет установлен автоматизированный робот со встроенным WebKit-ом, делающий скриншоты отрендеренных сцен. C помощью такого механизма можно так же реализовать орбитный рендеринг модели, то есть серию 2D-изображений, полученных в результате облёта камеры вокруг модели.
Что касается JavaScript-движков для рендеринга, то тут ситуация более радужная — существует ряд проектов: Scene.js, CopperLicht, GLGE, Google O3D и другие. “Пощупав” каждый из них, я выбрал Google O3D, который раньше был браузерным плагином (вроде Flash), а теперь стал JavaScript-библиотекой на базе WebGL. O3D показался мне наиболее продуманным, законченным и готовым к использованию, нежели другие движки. Так же огромным плюсом является большое количество примеров и хорошая документация, свойственная всем проектам Google.
Так же хорошее впечатление производит SpiderGL, но он более низкоуровневый по сравнению с O3D.
Буду благодарен за ваши отзывы и критику, и с удовольствием отвечу на возникшие вопросы, в том числе технические. Если хотите, то можно пообщаться по электронной почте. Привет!
Автор поста и проекта — sotakone, он попросил у меня опубликовать пост, так как у него самого недостаточно кармы.