2009-09-03 5 views
7

Я написал программу в C++/OpenGL (используя компилятор Dev-C++) для моего класса 2. Учителю понравилась программа, и он попросил меня как-то поставить его в сети, чтобы вместо загрузки .exe я мог просто запустить его в веб-браузере. В браузере запускаются такие как java-апплеты.Каков наилучший подход к использованию openGL в Интернете?

Возникает вопрос:

Как, если это возможно, я могу отобразить программу C++/OpenGL в веб-браузере? Я думаю о переходе на JOGL, который является интерпретацией Java OpenGL, но я предпочитаю оставаться на C++, так как я более знаком с ним.

Также есть ли какой-либо другой лучший и простой API веб-баз данных, который я могу рассмотреть?

+0

Существует то, что называется "Unity Web Player". Не знаю, что внизу, я недавно наткнулся на 3D-игру. – Eugene

+0

Я проверю это –

+0

JOGL очень доступен, если вы уже знаете C++. Я не думаю, что у вас возникнут проблемы с использованием JOGL. – Ricket

ответ

5

AFAIK, есть только 3 варианта:

  1. Java. он включает весь стек OpenGL.

    • Google's Native Client (NaCL), по сути это плагин, который позволяет вам запускать исполняемый код x86. Просто скомпилируйте его и назовите его из HTML. Очень экспериментально, и никто уже не будет установлен. Не уверен, что он дает вам доступ к библиотекам OpenGL.

    • Canvas:3D. Еще один очень экспериментальный проект. Это ускоренный 3D-API, доступный из JavaScript. AFAICT, это только на экспериментальных сборках Firefox.

я бы на Java, если вообще.

OTOH, если это в основном векторные работы (без большого количества текстур и освещения/теней), вы можете заставить его работать с SVG просто проецируя ваши векторы из 3D в 2D. В этом случае вы можете добиться совместимости с несколькими браузерами, используя SVGWeb, это простая библиотека JavaScript, которая позволяет вам прозрачно использовать либо собственную поддержку SVG на основе браузера, либо визуализатор SVG на основе Flash.

+0

Да, хотя я то же самое. Не так уж много вариантов. Но спасибо за ответ. –

1

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

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

+0

LOL У меня не так много часов работы, поэтому большую часть времени я провожу учебу, поэтому я могу потратить время. + LOL хорошо, я могу это сделать, но я не знаю, что мне интересно, как делать OpenGL в Интернете. –

2

Вне Java, в браузере OpenGL действительно находится в зачаточном состоянии. Однако Google запустил действительно классный API и плагин. Это называется O3D:

http://code.google.com/apis/o3d/

Статья об общей инициативе: http://www.macworld.com/article/142079/2009/08/webgl.html

+0

NICE! спасибо, я проверю это –

0

два подхода:

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

  2. Используйте ActiveX, который позволяет запускать собственный двоичный код для Microsoft Windows. Это не рекомендуется в производстве, потому что activeX хорошо известен как потенциальная дыра в безопасности, но, поскольку ваш лектор является одним из них, безопасность не кажется большой проблемой. Это применимо только для платформы Microsoft (только для Windows + IE).

5

Недавно было проведено много мероприятий с WebGL. Это привязка для Javascript к встроенным реализациям OpenGL ES 2.0, разработанная как расширение элемента HTML5 canvas.

Поддерживается ночными сборками Firefox, Safari, Chrome и Opera.

Посмотрите на эти tutorials, основанные на хорошо известных учебниках NeHe OpenGL.

Появляются несколько проектов, основанных на WebGL, в первую очередь API Scenegraphs.

  • От Indie команд: SceneJS, GLGE, SpiderGL.
  • От Google: команда за O3D plugin пытается реализовать чистый проект WebGL (source) для проекта, так что никакого плагина не потребуется.
  • От W3C/Web3D: В настоящее время обсуждается включение X3D как части любого дерева DOM HTML5, похожего на SVG в HTML4. Проект X3DOM родился в прошлом году, чтобы поддержать эту идею. Теперь он использует WebGL в качестве своего бэкэнда для рендеринга и является версией 1.0 с марта 2010 года.

Я почти уверен, что WebGL - это путь в ближайшем будущем. Mozilla/Google/Apple/Opera продвигают его, и если технология работает и есть достаточный спрос на клиент/разработчик, возможно, Microsoft выполнит ее в IE (будем надеяться, что не будет «WebDX»!).

1

Другим решением является использование Emscripten (источник-источник-компилятор). Emscripten поддерживает C/C++ и OpenGL и переводит источник в html/JavaScript.

Для использования Emscripten вам необходимо использовать SDL в качестве уровня абстракции платформы (для получения контекста OpenGL, а также для загрузки изображений).

Emscripten в настоящее время используется в Unreal Engine, а также будет использоваться в двигателе Unity 5.

Подробнее о проекте здесь: https://github.com/kripken/emscripten

Смежные вопросы