Отображение текстуры на 3D-объекты в пакетном процессе на сервере - PullRequest
5 голосов
/ 21 января 2010

у нас есть следующий вариант использования:

  1. пользователь загружает свою фотографию на веб-сервер
  2. позднее - на сервере - изображения отображаются на предварительно определенные трехмерные объекты и сохраняются как обычные изображения (png, jpeg, ...). Пока только вид спереди. Файлы будут удалены после завершения сеанса.
  3. показывать их в обычных тегах img пользователю

Чтобы поддержать это, я подумал о следующем процессе:

а. 3d модели создаются в автономном режиме и загружаются на сервер.
б. в реальном времени сопоставление текстур выполняется на сервере
с. сгенерированный вид трехмерной модели сохраняется во временном файле
д. файл отображается в теге img

Итак, теперь к вопросам:

что вы предлагаете по поводу инструментов, которые бы поддерживали этот тип процесса? ОС, на которой они работают, не важна. Шаги б. и с. должно быть довольно быстро.

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

для графической библиотеки:
- с открытым исходным кодом
- прост в использовании
- Легко использовать ресурсы (а также приложение, интенсивно использующее графику :))
- читать файлы, созданные моделером
- применить текстуры
- сохранить вид сгенерированного объекта + текстуры в обычный файл для отображения в браузере.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 июля 2010

(кажется, я не могу добавить комментарий к вопросу выше - отправив это как ответ)

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

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

теперь есть 2 варианта:

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

Спасибо.

1 голос
/ 25 февраля 2010

Google sketchup для простого моделера (и бесплатно, как в пиве).

Irrlicht поддерживает автономный рендеринг (окно не требуется), чтобы вы могли рендерить текстуру и сохранять результаты. (Открытый исходный код).

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

1 голос
/ 21 января 2010

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

Есть много 3D-моделистов, я предлагаю вам посмотреть Blender , но здесь есть список (со скриншотами) из 25 приложений там

Вот несколько уроков, объясняющих, как моделировать XNA с помощью Blender:

http://www.stromcode.com/2008/03/10/modelling-for-xna-with-blender-part-i/ http://www.virtualrealm.com.au/blogs/getting-started-with-blender-3d-and-xna/

для графической библиотеки

Я предлагаю вам использовать XNA , это сэкономит вам время, так как это C # и не требует много усилий, чтобы поднять его, и это очень быстро, потому что он использует графический процессор. Вам нужно будет загрузить модель из файла (вы можете импортировать ее во время выполнения, приложив немного усилий), затем загрузить текстуру и применить ее к модели с помощью эффекта моделей.

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

...