In the tutoriel bellow I use jME3 as render engine, but xbuf is not limited to jME3. It’s just the first target engine I work on.
The quickest way to give a try : blender_io_xbuf + jme3_xbuf_viewer.
Install a pre-configured application ready to connect to blender.
File > User Preferences ... > Addons > Install from file ...
select the downloaded zip fileXbuf Render
in the render engine combobox (top)Xbuf > assets_path
the directory where to export images, … so mostly myproject/assets
or myproject/src/main/resources
)viewport shading > rendered
could take/freeze a moment to transfer the initial data.File > Export > xbuf
, tips : choose the same directory or a subdirectory of assets_path
def jme3_xbuf_version = ‘213c6a499d’
dependencies { compile ‘org.xbuf.jme3_xbuf:jme3_xbuf_loader:${jme3_xbuf_version}’ …
2. load your xbuf data into your jME app :
~~~java
import jme3_ext_xbuf.XbufLoader;
...
assetManager.registerLoader(XbufLoader.class, "xbuf");
Spatial s = assetManager.loadModel("Models/xxxxx.xbuf");
See :
Use your jME3 application (with all your scene, post-process, UI, …) to render data from/to Blender.
def jme3_xbuf_version = ‘213c6a499d’
dependencies { compile ‘org.xbuf.jme3_xbuf:jme3_xbuf_loader:${jme3_xbuf_version}’ compile ‘org.xbuf.jme3_xbuf:jme3_xbuf_remote:${jme3_xbuf_version}’ …
2. load your xbuf data into your jME app :
~~~java
import jme3_ext_remote_editor.AppState4RemoteCommand;
import jme3_ext_xbuf.Xbuf;
...
app.setPauseOnLostFocus(false); //<-- Required else remote application will not receive image (eg: blender freeze)
app.getStateManager().attach(new AppState4RemoteCommand(4242, new Xbuf(app.getAssetManager())));
see Level 1 / On Blender