feat: rework zoom transitions and motion blur#207
Conversation
|
That's blatantly not true, I credit them multiple times. I didn't upstream these because the maintainer did not want to change the recording pipeline. |
|
@webadderall I did not see your credits in your Reddit post... |
|
Thanks for giving this an attempt, but the cursor smoothening and cursor customization does not help if we do not use native screen capture as you'll have the original cursor as well as the post processing cursor which can be out of sync.
I also don't think cursor/blur settings are not persisted in project files. Export is also not 1:1 with playback preview. There are quite a few regressions.
Happy to accept changes wrt to reworking zoom animations and motion blur if people perceive them as better. But I think cursor related settings will have to be skipped for now until native recording is implemented for all OS, which is more of a time-issue not reluctance. This was already addressed, heavily-tested with feedback in a similar previously raised PR some time back #79 and #67 |
|
Thank you for reviewing this. |
b94ffca to
7a8d0f4
Compare
|
Thanks for the feedback. I updated this PR to a much narrower scope and rebuilt it on top of current This version now only keeps the zoom animation rework and motion blur path:
I removed the cursor pipeline and the unrelated Windows-specific fixes from this PR so it is easier to review on its own. I preserved the cursor work separately on a dedicated branch on my fork and can follow up with that independently once there is a better fit for it. |
|
fwiw, I think the new motion blur logic visually adds no difference at all at least from my testing. The only difference I see is, it makes the preview look worse in the editor and blurry. I believe there might be something I'm missing here? perhaps the motion blur being a slider that can be tweaked? will be merging this, but would love to see another PR that fixes this 🙏 |
|
Try a value of 0.35, I found that to work the best |
|
Yeah looks like it was not fully ported, the blur options is still a toggle and not a slider which you can set a value to. |
Motion blur was a boolean switch (on/off). This changes it to a slider from 0 (off) to 1 (full intensity), with 0.35 as the recommended sweet spot per feedback on PR siddharthvaddem#207. - EditorState/ProjectEditorState: motionBlurEnabled:bool → motionBlurAmount:number - SettingsPanel: Switch → Slider (0–1, step 0.01); shows 'off' or value - VideoPlayback/zoomTransform: scale blur by amount instead of boolean gate - FrameRenderer/VideoExporter/GifExporter: propagate numeric amount - projectPersistence: backward-compat loader (old true → 0.35, false → 0)
Motion blur was a boolean switch (on/off). This changes it to a slider from 0 (off) to 1 (full intensity), with 0.35 as the recommended sweet spot per feedback on PR siddharthvaddem#207. - EditorState/ProjectEditorState: motionBlurEnabled:bool → motionBlurAmount:number - SettingsPanel: Switch → Slider (0–1, step 0.01); shows 'off' or value - VideoPlayback/zoomTransform: scale blur by amount instead of boolean gate - FrameRenderer/VideoExporter/GifExporter: propagate numeric amount - projectPersistence: backward-compat loader (old true → 0.35, false → 0)
|

Description
This PR has been narrowed down to the zoom animation and motion blur work only.
The earlier cursor pipeline work was split out into a separate follow-up draft PR: #217.
Included in this PR
Connected zoom transitions
Directional motion blur for camera motion
pixi-filtersMotionBlurFilterPreview/export transform parity
Not included in this PR
Those changes were removed from this PR to keep the review focused on the zoom/motion blur behavior.
Main files
src/components/video-editor/VideoPlayback.tsxsrc/lib/exporter/frameRenderer.tssrc/components/video-editor/videoPlayback/zoomRegionUtils.tssrc/components/video-editor/videoPlayback/zoomTransform.tsDependency
Testing
./node_modules/.bin/tsc --noEmitnpm exec vite buildType of change