Improve readme formatting. Move a change to changelog.

This commit is contained in:
poikilos 2020-10-09 05:28:15 -04:00
parent 3225887464
commit 19921ada75
2 changed files with 55 additions and 33 deletions

View File

@ -4,7 +4,8 @@ All notable changes to this project will be documented in this file.
## [git] - 2020-10-07 ## [git] - 2020-10-07
### Changed ### Changed
- (examples.blend) Upgrade blend to 2.83.5 (paste objects into a new file) - (examples.blend) Upgrade blend to 2.83.5 (Paste objects into a new
file).
### Fixed ### Fixed
- (examples.blend) Turn on "Soft Shadows" render option to avoid - (examples.blend) Turn on "Soft Shadows" render option to avoid
@ -13,10 +14,19 @@ All notable changes to this project will be documented in this file.
## [git] - 2019-06-28 ## [git] - 2019-06-28
### Added
- Add potential references from local directories. - Add potential references from local directories.
- Add note regarding new documents to README.md. - Add note regarding new documents to README.md.
- Name and sort documents better.
- Add backgrounds to dist for future use. - Add backgrounds to dist for future use.
### Changed
- Name and sort documents better.
- Wrap lines in README.md, use markdown more, make file more navigable, - Wrap lines in README.md, use markdown more, make file more navigable,
remove local paths and mention installing CLI commands in Windows and remove local paths and mention installing CLI commands in Windows and
adding them to the PATH. adding them to the PATH.
## [unreleased] - 2016-08-05
### Changed
- Detect format instead of ever using the strings "png" or ".png" during
loading (but continue to use png for all saved image data, as
nondestructive layers)

View File

@ -8,6 +8,7 @@ and code from "more" directory that are implemented will be moved to
rotoscoping applications?" below before commenting on the code or rotoscoping applications?" below before commenting on the code or
submitting pull requests. submitting pull requests.
## Purpose ## Purpose
This is a manual rotoscoping (frame by frame painting) application. This is a manual rotoscoping (frame by frame painting) application.
Rotoscoping is the only accurate way to achieve effects such as manual Rotoscoping is the only accurate way to achieve effects such as manual
@ -58,10 +59,6 @@ the expectations of normal consumers (primarily expectations for speed
and format support) may be impractical to be achieved by volunteer and format support) may be impractical to be achieved by volunteer
programmers, or may be impossible for technical reasons described above. programmers, or may be impossible for technical reasons described above.
## Changes
* (2016-08-05) detect format instead of ever using the strings "png" or
".png" during loading (but continue to use png for all saved image data,
as nondestructive layers)
## Caveats ## Caveats
* Lag during frame loading cannot be avoided, since each video frame * Lag during frame loading cannot be avoided, since each video frame
@ -76,27 +73,28 @@ applied without reloading the frame from the source video file.
or may not ever be added, since MPEG-style frame seeking is inexact and or may not ever be added, since MPEG-style frame seeking is inexact and
rotoscoping is highly dependent on the source frame remaining the same. rotoscoping is highly dependent on the source frame remaining the same.
## Known Issues ## Known Issues
* complete first working version * Complete the first working version.
* audit & test getLayerImagePathMostRecent * Audit & test `getLayerImagePathMostRecent`.
## Planned Features ## Planned Features
(!=important, ~=low-priority) * [ ] Add markers to media OR timeline, separately (media markers are
* add markers to media OR timeline, separately (media markers are also also on timeline behave differently: ghosted until media is selected,
on timeline behave differently: ghosted until media is selected, has has filmstrip icon if from a clip; reversed if video is reversed,
filmstrip icon if from a clip; reversed if video is reversed, changed changed placement if speed is changed, etc).
placement if speed is changed, etc) * [ ] Use alpha.png for reducing opacity of parts of background layer.
* use alpha.png for reducing opacity of parts of background layer * [ ] Allow a blocker layer type (make an animated object that seems to
* allow blocker layer type (make an animated object that seems to "undo" "undo" previous edits, such as to reveal parts of characters under
previous edits, such as to reveal parts of characters under the the effect, without permanently erasing any part of the effect).
effect, without permanently erasing any part of the effect) * [ ] Use the layer cache (purpose for unused variable cacheMaxMB).
* use layer cache (purpose for unused variable cacheMaxMB) * [ ] Keyboard controls for fast operation:
* Keyboard controls for fast operation:
* Ctrl Scrollwheel: zoom * Ctrl Scrollwheel: zoom
* Shift Alt Scrollwheel: brush hardness * Shift Alt Scrollwheel: brush hardness
* Shift Scrollwheel: brush size * Shift Scrollwheel: brush size
* Add exception handling in appropriate situations: * [ ] Add exception handling in appropriate situations.
* Motion Estimation * [ ] Motion Estimation
* True ME (intra-frame): Get MSU ME (and other virtualdub plugins) working for * True ME (intra-frame): Get MSU ME (and other virtualdub plugins) working for
multiple motion vectors ([not free for commercial multiple motion vectors ([not free for commercial
use](https://www.compression.ru/video/motion_estimation/index_en.html)) use](https://www.compression.ru/video/motion_estimation/index_en.html))
@ -108,12 +106,22 @@ catch(std::exception& e) {
qCritical() << "Exception thrown:" << e.what(); qCritical() << "Exception thrown:" << e.what();
} }
``` ```
* Change Speed (optional frame blending to create "in-between" frames * [ ] Change Speed
for slow, merged frames for fast!) - [ ] optional frame blending to create "in-between"
* (~) Effects (see <http://randombio.com/linuxsetup141.html>) frames if slower than original
* (~) Load VirtualDub plugins, possibly as cscript using their - [ ] use motion estimation to warp
- [ ] optional merged frames for faster than original
- [ ] use motion estimation for motion blur (so the effect isn't
simply ghosting)
### Low-priority Planned Features
* [ ] Add a test system that builds ImageSequenceExamples from the blend
file if Blender is installed on the system. For now, render manually
(to /home/owner/Videos/ImageSequenceExamples on Poikilos' computer).
* [ ] Effects (see <http://randombio.com/linuxsetup141.html>)
* [ ] Load VirtualDub plugins, possibly as cscript using their
sourcecode. sourcecode.
* (~) Detect Light Sabers * [ ] Detect Light Sabers
* auto masking behind objects * auto masking behind objects
* auto sound generation! * auto sound generation!
* auto strike/collide generation * auto strike/collide generation
@ -125,26 +133,26 @@ catch(std::exception& e) {
* allow manually adding saber-to-target hits * allow manually adding saber-to-target hits
* Set in-out points for saber * Set in-out points for saber
* generate in-out sounds * generate in-out sounds
* (~) use G'MIC library for image processing (so GIMP plugins can be * [ ] use G'MIC library for image processing (so GIMP plugins can be
used). used).
* example: Flowblade uses G'MIC, so does EKD (see http://gmic.eu/) * example: Flowblade uses G'MIC, so does EKD (see http://gmic.eu/)
* use GIMP HQRESIZE plugin (esp for resizing letterbox movies to 16:9 * use GIMP HQRESIZE plugin (esp for resizing letterbox movies to 16:9
anamorphic, esp DVD low-res mode mpegs created by Panasonic DVDR EP anamorphic, esp DVD low-res mode mpegs created by Panasonic DVDR EP
mode) mode)
* (~) Manipulate flv directly to avoid recompression (example: Try to * [ ] Manipulate flv directly to avoid recompression (example: Try to
rerender and combine zelda fan film from youtube, using curves from rerender and combine zelda fan film from youtube, using curves from
Sony Vegas [see vf project file]) Sony Vegas [see vf project file])
* (~) Have an expandable palette of sound effects, and a depth settings * [ ] Have an expandable palette of sound effects, and a depth settings
(negative for behind camera), then allow clicking to add 3D placement (negative for behind camera), then allow clicking to add 3D placement
of sound of sound
* also allow animation * also allow animation
* eventually create Blender export of speaker objects * eventually create Blender export of speaker objects
* allow optional facing direction (default is track viewer [always * allow optional facing direction (default is track viewer [always
face camera]) face camera])
* (~) Seam Carving resize (possibly via an existing G'MIC plugin) * [ ] Seam Carving resize (possibly via an existing G'MIC plugin)
example: [SeaMonster - Content-aware resizing FOSS (Seam example: [SeaMonster - Content-aware resizing FOSS (Seam
Carving)](http://blogs.msdn.com/b/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx) Carving)](http://blogs.msdn.com/b/mswanson/archive/2007/10/23/seamonster-a-net-based-seam-carving-implementation.aspx)
* (~) PAL-NTSC conversion (universal size/framerate converter) idea * [ ] PAL-NTSC conversion (universal size/framerate converter) idea
(or make VirtualDub plugin for this that writes output manually) (or make VirtualDub plugin for this that writes output manually)
* Make it universal: from any size/framerate to any size/framerate * Make it universal: from any size/framerate to any size/framerate
* Blend frames retroactively once there is enough data per frame (or * Blend frames retroactively once there is enough data per frame (or
@ -155,10 +163,12 @@ catch(std::exception& e) {
* dump the frames into ffmpeg successively * dump the frames into ffmpeg successively
* test it with a PAL movie * test it with a PAL movie
## Low-priority Known Issues ## Low-priority Known Issues
* drawLineTo (this is used for painting) should draw line instead of * drawLineTo (this is used for painting) should draw line instead of
last point last point
## Design Directives ## Design Directives
* Completely customizable but good defaults for example there are three * Completely customizable but good defaults for example there are three
built-in views and can show any 2d or 1d parameter can be shown in any built-in views and can show any 2d or 1d parameter can be shown in any
@ -174,6 +184,7 @@ catch(std::exception& e) {
(required for using file on another computer, and also if files were (required for using file on another computer, and also if files were
opened directly from device such as camera or removable data storage)" opened directly from device such as camera or removable data storage)"
## Developer Notes ## Developer Notes
The RotoCanvas class is modular, with hopes that it can be used by The RotoCanvas class is modular, with hopes that it can be used by
various video editing applications in the future. The recommended use various video editing applications in the future. The recommended use
@ -266,12 +277,13 @@ sequence are stored:
linear linear
``` ```
## Credits ## Credits
* created by Poikilos (see also LICENSE) * created by Poikilos (see also LICENSE)
* special thanks to the Qt team for ScribbleArea from Qt Examples * special thanks to the Qt team for ScribbleArea from Qt Examples
*DISCLAIMER: This software comes without warranty or guarantees of any *DISCLAIMER: See license.txt*
kind. Use this software at your own risk.*
## Notes on Other Programs ## Notes on Other Programs
* In some programs, ss;ff denotes drop frame, and ss:ff denotes NON-drop * In some programs, ss;ff denotes drop frame, and ss:ff denotes NON-drop