effectcraft/crates/gpu/src
bflatastic 923d978119 Effects: CC Particle World follows the comp camera (#397)
Cause: CC Particle World projected its particles through a fixed camera
(distance 2 layer widths, looking at the layer centre) and never asked the
host for the comp camera, so moving or orbiting a camera layer left the
particles flat on the layer. It also had no Extras > Effect Camera. Separately,
the layer cache key ignored the comp camera and lights, so the effects that
read them (Card Dance / Shatter / Card Wipe Comp Camera, First Comp Light,
Caustics) kept a stale frame when the camera, a light or the layer moved.

Fix: as the Cycore manual describes, Particle World sees its particles through
the comp's active camera layer when there is one (EffectHost::comp_scene now
says whether its camera is a camera layer's, CompScene::camera_layer), through
card3d's comp-camera projection (factored out of Card Dance as comp_proj, with
Proj::view for depth, size scale and screen velocity). Otherwise it uses the
new Extras > Effect Camera: Distance (2), Rotation X / Y / Z (0) and FOV (50)
orbit the world origin; FOV moves the camera so the origin's plane keeps the
scale Distance gives it, so the defaults reproduce the old fixed camera bit for
bit (golden hashes unchanged) and old projects render as before. The Effect
Camera is left out of the simulation cache key, so animating it doesn't
restart the simulation. The plan is shared, so the GPU compositor follows too.
The layer cache folds the comp scene into the key of layers running an effect
in effects::READS_COMP_SCENE (render::comp_scene is shared with the host).

Tests: sim particle_world_follows_the_comp_camera (panning a camera layer moves
the particles, zooming spreads them, the Effect Camera is ignored then, the
default view keeps the Effect Camera, cameras facing away / zero / NaN draw
nothing) and particle_world_effect_camera (missing params = defaults, rotation,
distance and FOV change the view, extremes stay finite, the sim key ignores the
camera); render particle_world_follows_the_comp_camera (a real camera layer
panned 40 px moves the particles left, and the cached render after the move
equals an uncached one: it failed with the old cache key); gpu
particle_world_through_the_comp_camera (CPU vs GPU at 8 / 32 bpc, full and
half resolution). particle_golden / sim_golden unchanged. effects.md
regenerated; parity.md and gaps.md describe the fix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 00:35:25 +07:00
..
shaders Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
adv3d.rs fix: contain GPU initialization and retire failed readbacks 2026-10-06 16:40:12 -05:00
bokeh.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
classic3d.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
context.rs Viewer: Auto resolution follows the magnification; minified frames are averaged (#417) 2026-10-09 23:17:33 +07:00
deferred.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
effects.rs Merge main into M13.28 worktree 2026-10-04 02:57:55 -04:00
fx_color.rs M13.23: GPU colour management (LUTs, OCIO, Color Profile Converter, Lumetri LUT/look) 2026-10-03 17:43:24 -04:00
fx_depth.rs M13.23: GPU 3D Channel effects (aux channels as textures) 2026-10-03 17:33:41 -04:00
fx_distort.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
fx_extra.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
fx_gen2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
fx_generate.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
fx_key.rs M13.28: GPU pixel ports (fx_pixel2): CC Cross/Radial/Vector Blur, Reduce Interlace Flicker, CC Composite, Color Link, Cineon, HDR Compander/Highlight Compression, Grow Bounds, CC Overbrights, CC Block Load, CC Burn Film, CC Glass/Plastic, CC HexTile, CC Mr. Smoothie, Inner/Outer Key, CC Simple Wire Removal, Basic 3D 2026-10-04 01:33:54 -04:00
fx_light.rs M13.22: GPU CC light family (CC Light Rays, CC Light Burst 2.5, CC Light Sweep, CC Light Wipe) 2026-10-03 17:31:26 -04:00
fx_lut.rs Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
fx_noise.rs Fix NVIDIA Dust & Scratches threshold rounding (#211) 2026-10-09 00:22:05 -04:00
fx_particles.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_pixel2.rs M13.28: GPU pixel ports (fx_pixel2): CC Cross/Radial/Vector Blur, Reduce Interlace Flicker, CC Composite, Color Link, Cineon, HDR Compander/Highlight Compression, Grow Bounds, CC Overbrights, CC Block Load, CC Burn Film, CC Glass/Plastic, CC HexTile, CC Mr. Smoothie, Inner/Outer Key, CC Simple Wire Removal, Basic 3D 2026-10-04 01:33:54 -04:00
fx_sim.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_stylize.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
fx_text.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
fx_time.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
fx_tone.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
fx_transition.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
fx_vr.rs M13.23: GPU Immersive Video effects 2026-10-03 17:53:23 -04:00
fx_warp.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
lib.rs Viewer: Auto resolution follows the magnification; minified frames are averaged (#417) 2026-10-09 23:17:33 +07:00
ops.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
particles.rs fix: contain GPU initialization and retire failed readbacks 2026-10-06 16:40:12 -05:00
readback.rs fix: contain GPU initialization and retire failed readbacks 2026-10-06 16:40:12 -05:00
tests.rs Viewer: Auto resolution follows the magnification; minified frames are averaged (#417) 2026-10-09 23:17:33 +07:00
tests_3d.rs Merge main into M13.6 2026-10-03 07:53:31 -04:00
tests_adjust.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_adv3d.rs GPU on wgpu's OpenGL backend: renderable depth target, portable shaders, serialised tests 2026-10-05 10:08:21 -04:00
tests_deferred.rs fix: contain GPU initialization and retire failed readbacks 2026-10-06 16:40:12 -05:00
tests_deferred_jobs.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
tests_fx_color.rs Merge main into M9.13 (GPU kernels defer CPU-only controls via catalog::gpu_supported) 2026-10-03 07:29:30 -04:00
tests_fx_depth.rs M13.23: GPU 3D Channel effects (aux channels as textures) 2026-10-03 17:33:41 -04:00
tests_fx_distort.rs Effects: effect points on shape layers start at the layer centre (#227) 2026-10-08 20:33:03 +07:00
tests_fx_extra.rs M13.13: GPU Circle, Ellipse, Iris Wipe, Bevel Alpha, Bevel Edges, Gaussian Blur (Legacy) 2026-10-03 10:53:00 -04:00
tests_fx_gen2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_fx_generate.rs M12.7: GPU blur/transition/generate effects (radial, camera lens, CC radial fast, wipes, venetian, cell pattern, checkerboard, grid, 4-color, noise, add grain) 2026-10-03 02:46:09 -04:00
tests_fx_key.rs G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
tests_fx_light.rs M13.22: GPU CC light family (CC Light Rays, CC Light Burst 2.5, CC Light Sweep, CC Light Wipe) 2026-10-03 17:31:26 -04:00
tests_fx_lut.rs Effects: OCIO custom configs read Blender's v2 transforms and warn (#410) 2026-10-09 23:57:12 +07:00
tests_fx_noise.rs Fix NVIDIA Dust & Scratches threshold rounding (#211) 2026-10-09 00:22:05 -04:00
tests_fx_particles.rs Effects: CC Particle World follows the comp camera (#397) 2026-10-10 00:35:25 +07:00
tests_fx_pixel2.rs M13.28: GPU generators (fx_gen2): Lightning, Advanced Lightning, Beam, Lens Flare, Radio Waves, Vegas, Stroke, Scribble, Write-on, Paint Bucket, Eyedropper Fill, CC Glue Gun, CC Threads, Audio Spectrum/Waveform, Basic Text, Path Text 2026-10-04 02:56:00 -04:00
tests_fx_sim.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_stylize.rs M13.13: gpu texture pool, Auto per-comp backend choice, warp-family GPU ports 2026-10-03 10:31:31 -04:00
tests_fx_text.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
tests_fx_time.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_fx_tone.rs M13.9: gpu Color Stabilizer apply pass 2026-10-03 08:28:27 -04:00
tests_fx_transition.rs M13.22: GPU transitions and perspective (Block Dissolve, CC Glass/Grid/Image Wipe, CC Jaws, CC Line Sweep, CC Radial ScaleWipe, CC Scale Wipe, CC Twister, CC WarpoMatic, Radial Shadow, CC Bender, CC Blobbylize, CC Cylinder, CC Sphere, CC Spotlight, CC Environment, 3D Glasses) and text (Numbers, Timecode: CPU glyph coverage, GPU composite) 2026-10-03 17:48:02 -04:00
tests_fx_vr.rs M13.23: GPU Immersive Video effects 2026-10-03 17:53:23 -04:00
tests_fx_warp.rs M13.29: GPU effects part D (particles and remaining fallbacks) 2026-10-04 01:35:56 -04:00
tests_init.rs GPU: the compositor declines OpenGL adapters at once (#243) 2026-10-08 13:57:08 +07:00
tests_particles.rs M13.30: web depth and polish 2026-10-04 02:57:17 -04:00
walk.rs M13.22: GPU compositing of Advanced 3D runs with blend modes, track mattes (2D and 3D), Preserve Transparency, and environment backgrounds (Classic and Advanced 3D skies) 2026-10-03 18:26:06 -04:00