Previous: Rendering the Environment

One way to connect trueSKY to a game or simulation engine is using the Plugin Rendering Interface. A dynamic link library or dll called PluginRenderInterface.dll (or similar) is loaded, dynamically, from within the game engine. The exported functions are used to perform sky rendering per-frame for each view.

int StaticInitInterface(); void StaticSetMemoryInterface(MemoryInterface ); int StaticShutDownInterface( ); void StaticSetDebugOutputCallback(FLogCallback); void StaticSetGraphicsDevice(void device, GraphicsDeviceType deviceType,GraphicsEventType eventType); int StaticPushPath(const char,const char); void StaticSetFileLoader(simul::base::FileLoader ); int StaticGetOrAddView( void *); int StaticGetLightningBolts(LightningBolt *,int maxb); int StaticSpawnLightning(const float startpos[3],const float endpos[3],float magnitude,const float colour[3]); int StaticRenderFrame(void device,void* deviceContext,int view_id ,float* viewMatrix4x4 ,float* projMatrix4x4 ,void* depthTexture ,void* depthResource ,int4 depthViewport ,const Viewport v ,PluginStyle s ,float exposure ,float gamma ,int framenumber ,const float *nvMultiResConstants); int StaticCopySkylight(void *pContext ,int cube_id ,float shValues ,int shOrder ,void targetTex ,const float *engineToSimulMatrix4x4); int StaticRenderOverlays(void device,void* deviceContext,void* depthTexture,const float* viewMatrix4x4,const float* projMatrix4x4,int view_id); int StaticTick( float deltaTime ); int StaticOnDeviceChanged( void * device ); void* StaticGetEnvironment(); int StaticSetSequence( std::string sequenceInputText ); class UE4PluginRenderInterface* StaticGetRenderInterfaceInstance(); void StaticSetPointLight(int id,const float pos[3],float radius,float maxradius,const float radiant_flux[3]); void StaticCloudPointQuery(int id,const float *pos, VolumeQueryResult *res); void StaticCloudLineQuery(int id,const float *startpos,const float *endpos, LineQueryResult *res);

voidStaticSetRenderTexture(const char name, void texturePtr); voidStaticSetMatrix4x4(const char *name, const float []);

void StaticSetRender( const char *name,int num_params,const Variant32 *params); void StaticSetRenderBool( const char *name,bool value ); bool StaticGetRenderBool( const char *name ); void StaticSetRenderFloat( const char *name,float value ); float StaticGetRenderFloat( const char *name );

void StaticSetRenderInt( const char *name,int value ); int StaticGetRenderInt( const char *name,int num_params,const Variant32 *params);

void StaticSetRenderString( const char name,const FString &value ); void StaticGetRenderString( const char *name ,char value,int len); bool StaticTriggerAction( const char *name );

void StaticExportCloudLayerToGeometry(const char *filenameUtf8,int index);

void StaticSetKeyframeFloat(unsigned,const char *name, float value); float StaticGetKeyframeFloat(unsigned,const char *name); void StaticSetKeyframeInt(unsigned,const char *name, int value); int StaticGetKeyframeInt(unsigned,const char *name);

float StaticGetRenderFloatAtPosition(const char* name,const float *pos);

bool StaticFillColourTable(unsigned uid,int x,int y,int z,float *target);

Next: The trueSKY Classes