Blitz3D+ Command Reference

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