ApplyCameraPostFX (camera, asset)
Parameters
camera - destination camera
asset - ready postfx asset from FindWorldAsset
Description
Replaces the entire camera effect chain, including effects added with CameraEffect. An empty effects array clears the chain. Shader mode, stage, parameter types and dependencies are validated before publication; each camera receives independent instances. HDR/tone-map prerequisites are checked without changing application settings. Later incompatible application settings are diagnosed when the camera renders.
Returns True on success or False with AppearanceError() on application failure. The previous valid appearance is preserved on failure. Handles must be valid. Applied resources remain usable after the source loader world is freed.
Requires Extended mode. See Environment and camera presets.
Example
; Appearance presets example. Requires Extended mode. Graphics3D 640,480,0,2 Local scene=GetWorld(),camera=CreateCamera() CameraClsColor camera,150,60,20 Local environment=CreateResourceDocument("environment") Local effects=CreateResourceDocument("postfx") Local source$="{'format':'blitz3d.postfx','version':1,'id':'example.grey','assets':[],'definition':{'effects':[{'id':'grey','stage':'display-linear','shader':{'builtin':'grayscale'}}]}}" If ReplaceResourceDocumentSource(effects,Replace(source,"'",Chr(34)),ResourceDocumentRevision(effects))=False Then RuntimeError ResourceDocumentError() Local environmentWorld=LoadResourceDocumentAsync(environment),effectsWorld=LoadResourceDocumentAsync(effects) FreeResourceDocument environment:FreeResourceDocument effects While WorldReady(environmentWorld)=False Or WorldReady(effectsWorld)=False UpdateAsyncLoads 2 If WorldLoadState(environmentWorld)=WORLD_LOAD_FAILED Then RuntimeError WorldLoadError(environmentWorld) If WorldLoadState(effectsWorld)=WORLD_LOAD_FAILED Then RuntimeError WorldLoadError(effectsWorld) Wend If ApplyWorldEnvironment(scene,FindWorldAsset(environmentWorld,"resource"))=False Then RuntimeError AppearanceError() If ApplyCameraPostFX(camera,FindWorldAsset(effectsWorld,"resource"))=False Then RuntimeError AppearanceError() ; Applied instances keep their dependencies alive. FreeWorld environmentWorld:FreeWorld effectsWorld While KeyDown(1)=False RenderWorld Text 12,12,"The coloured camera background now passes through grayscale. Esc: exit." Flip Wend EndGraphics End