A HTML UI renderer for CryEngine 3.
C++ C
Switch branches/tags
Nothing to show
Clone or download
Latest commit 6b7ba66 Mar 8, 2014

readme.md

Demo Image

This plugin allows you to render any HTML website or local HTML file structure to any surface / material in the engine. It also includes a full screen triangle renderer for rendering to screenspace, as opposed to world space.

It is based on the Awesomium library which performs the heavy lifting for rendering the page. This plugin uses DirectX11 to render the image buffer to the screen, or to a CryEngine material. The engine can then use the material to render the page on to any object.

Rendering is done in realtime, and thus supports YouTube videos, and even online browser-based games. Yes, you could play a webGL game in your CryEngine game, on a wall.

This plugin has been completely rewritten since the original plugin was released by darman96.

Inspector

You can access the inspector locally by navigating to http://localhost:3000/.

On default this is on all the time, however, a planned feature is to only enable this while in the game, and use a CVar to update the port / disable the inspector.

Note that the inspector only updates when the engine is rendering... So if you tab out of the engine, it will, on default, pause the rendering and the Inspector will not update until you tab back in again.

Coming Soon

  • Keyboard and Mouse interaction with the views
  • LUA support
  • Console Variables
  • Disable / Enable Inspector

Install Guide / Wiki

Wiki Index

Install Guide

CVars

Coming soon.

C++ Interface

You will need to include the Awesomium headers, found at the plugin root and \awesomium\include.

Finally, you can use this example code:

AwesomiumPlugin::IAwesomiumPlugin plugin = PluginManager::safeGetPluginConcreteInterface<IPluginAwesomium*>( "Awesomium" );
AwesomiumPlugin::CAwesomiumSystem sys = plugin->GetSystem();

//Make a view
AwesomiumPlugin::CAwesomiumView* view = sys->CreateView( width, height, "Entity Name", "Full Material Path" );

//Go to YouTube
view->GetView()->LoadURL( WebURL( WSLit( "http://youtube.com/" ) ) );

//Refresh
view->GetView()->Reload(false);

The view is an Awesomium view, so you have every method available in their documentation.

Flownodes

There is a single flow node for creating, controlling, and otherwise manipulating a view in CryEngine.

Sample FlowGraph