Как заставить Direct3D работать в браузере?

9

Я сталкивался с 3D-играми, в которые можно играть в браузере. Они требуют, чтобы плагин был установлен для работы. Я предполагаю, что плагин создает окно D3D внутри браузера.

Как бы я реализовал нечто подобное?

Хуан Ф. Лей
источник
интересный вопрос
Notabene

Ответы:

8

Веб-плеер Unity (для окон) может использовать в окне как DirectX, так и OpenGL (однако он ограничивает ваш доступ к этим API).

Другой подход заключается в реализации плагина DirectX с использованием ActiveX (для Internet Explorer) или NPAPI (для других браузеров).

Если вы используете NPAPI, при запуске вашего плагина вы получите дескриптор окна, где вы можете рисовать все, что захотите (включая окно D3D). Если вы идете по этому пути, вы по сути запускаете нативный код на клиентских машинах.

CiscoIPPhone
источник
Обратите внимание, что NPAPI находится на пути к устареванию, поэтому рекомендуется, чтобы в новых веб-играх использовались другие технологии, такие как WebGL (который получает все большую поддержку и не требует дополнительных плагинов)
DMGregory
5

Игра, в которую вы играете, может использовать WebGL http://en.wikipedia.org/wiki/WebGL или что-то более экзотическое, такое как плагин Firefox, но я не думаю, что вы можете встроить машинный код в плагин Firefox (я не уверен, что это будет небольшой недостаток безопасности).

Unity реализует версию своего движка для веб-плагинов, и, похоже, они делают это с ActiveX. Я не знаю, реализует ли это на Mac ..., мне интересно, хотя.

Лучший способ узнать, как в этой игре вы используете 3D API или любой другой вид плагинов, - это посмотреть на HTML-источник страницы и найти объект или activex или что-то еще.

jokoon
источник
Почему голосование против?
CiscoIPPhone
4
За нелепое предположение вы не можете «встроить машинный код в плагин Firefox». Весь смысл плагинов состоит в том, чтобы дополнить веб-контент некоторым набором «родного» кода.
ну, мы все еще можем обсудить словарные записи для аддона, расширения, плагина, мода и т. д. ... Еще лучше быть точным в том, что делает ...
jokoon
4
И «плагин» - это именно то, что, начиная с Netscape Navigator 2, относится к выполнению кода без ящиков (собственного или иного) на клиентском компьютере.
3
Netscape Navigator 2, вы говорите о машине, какой-то внедорожник? Я не вижу никакой связи с вопросом ...
Jokoon