NatronGitHub / Natron

Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
http://NatronGitHub.github.io
GNU General Public License v2.0
4.54k stars 332 forks source link

(Bug): Documentation is shit. #843

Closed Bracket-H closed 1 year ago

Bracket-H commented 1 year ago

Make sure to follow our issue report guidelines

Natron version

Natron 2.4.3

Operating system

Slackware

System specs

No response

Did you install Natron using the official installer?

Custom installation path

No response

What were you trying to do?

While working on a project in Natron I tried to...

Read the documentation and become englightened by it.

What did you expect to happen? What happened instead?

I expected to read about tracking roto shapes and understand how to track roto shapes.

Step-by-step reproduction instructions

1.) Open https://natron.readthedocs.io/en/rb-2.5/guide/compositing-tracking.html 2.) Read it 3.) Get confused 4.) Suspect that it is written for someone who knows Nuke 5.) Instead of learning how to do something, get a feature preview about a planar tracker. 6.) Get annoyed 7.) Follow Documentation Github link 8.) Create bug report 9.) Fill it out 10.) Remain annoyed. 11.) Predict additional annoyance by apologists who will claim that it's done by volunteers 12.) Retort with that I'm not the one degrading their efforts by writing extremely obtuse documentation 13.) Annoy helpers by doing so 14.) Don't get help 15.) Grow resentful 16.) Drop project 17.) Pick it back up again 18.) Think that after some time maybe saw the merit in the cry for help. 19.) Realize that noone did 20.) Remain unable to use software correctly that a bunch of people poured their limited lifetime into

Many such cases.

Additional details

"Track some points inside your mask (shape)" The mask? The shape? Why would I track the mask? Don't I want to animate the mask by letting it use tracking data from the source/plate (yeah I know that term by now)

"In the Transform tab, set the transform to CornerPin and to match-move" Successfully did that.

"Disable the CornerPin and set the from points of the corner pin at the reference frame where you want your object to move in (basically the bounding box of the shape to track)" Disable the corner pin? And then set the from points of the corner pin? I thought it's disabled? What's a reference frame? What's the basically bounding box of the shape to track? The mask? The bounding box of the mask? Of the tracker?

"Export to CornerPin" Well, I did that, but I don't understand why a disabled corner pin is exported to a corner pin (or what a corner pin really means so far)

"Append your CornerPin to the Roto node" Append it? With the time->append node? Stick it after the roto node? With the roto node as the source?

"In a future version we will have a planar tracker that will do that automatically for you in a single click." Oh, okay.

"To link parameters in Natron, it is the same as in Nuke except that you drag and drop the widget of a parameter onto another one by holding the control key (or cmd on macOS)." Ahh, like in Nuke..hang on I'm going to fire up Nuke...oh wait ...if I had Nuke then I wouldn't use Natron, probably?

"The tracker works differently than the Nuke tracker regarding the “Transform” part" I wouldn't know, but thanks for pointing it out.

"For the tracking itself, almost everything is the same" Dang... if only I knew Nuke...

"Basically, in Nuke they can only output a CornerPin with exactly 4 points, and they map 1 track to each corner of the CornerPin. For the Transform node they may use 1 (translation only), 2, or N points to find the final transformation, however that will never be something other than a similarity, which means that it cannot handle perspective deformation." No idea what that means. I must be lacking context...Nuke context.

"In Natron, we offer the possibility to compute a CornerPin with N points, that is an homography, which encompasses all distortion-free perspective transforms." Cool...very homographic, I'm sure. But, my roto shapes remain unmoved so far.

"This is much better, because the more tracks you use to compute that CornerPin, the more robust it will be." A bright future...but I live in the present (so far)

"An homography is typically used to contain information about a perspective deformation, whereas a similarity is more constrained: a similarity is translation, rotation and uniform scale." Right... a deformation... I wish my roto shape would deform a bit, but they stare at me...unmoving, undeformed.

"In The Transform tab, this is what we call “the model”. Basically, the problem we are trying to solve is to fit a model (i.e. similarity or homography) so it is the closest to the N point correspondences. Each correspondence is the position of a track at the reference frame and its position at the tracked time." I don't think any model would be impresed if I called her without fancy tracked roto shapes. But I'm with you on problems being tried to solve. Did I mention that this means little to me?

"Hence the more correspondences you have (i.e. the more tracks), the more robust the homography is in the region where you tracked features." Who doesn't enjoy a robust homography? I bet I would...if only I knew how. Which feature am I tracking again? The mask? What? Or should I track the new feature that makes tracking easier?

"The Fitting error parameter (in the Transform tab) is an indication of how much difference there is in pixels between the reference point on which we applied the computed transformation and the original tracked point. This is the RMS (root mean square) error across all tracks, and gives an estimate of the quality of the model found in pixel units." I like to think that RMS means Richard Stallman here. But instead it's a really mean square.

"For each tracked frame, the correspondences we use to compute the CornerPin are the tracks that are enabled at this frame (i.e. the Enabled parameter is checked at this time) and that have a keyframe on the center (i.e. they successfully tracked)." The correspondences? I need a letter or something?

"When you press Compute, it computes the model (CornerPin/Transform) with all the tracks that meet the aforementioned requirements over all keyframes." Good. Wouldn't want to miss any keyframes...of ...something.

"When Compute Transform Automatically is checked, whenever a parameter that has an effect on the output model is changed, this will recompute the Corner/Pin transform over all keyframes again." I actually am getting the gist of this one. It recomputes the things...

Skipping some text that basically just is more confusion..

"So all in all it works differently than Nuke, the whole transformation computation can be more robust and happens as a second pass after the tracking is actually done." I wouldn't know. I don't know Nuke.

"One last thing: to compute the CornerPin in the “Transform” tab of the tracker, the to points are computed using the from points as reference." I am sure I will find this important once I understand the rest.

"Basically what happens is that the tracking outputs a transformation matrix at each frame. Then when computing the model, this matrix is applied to the from points at each frame in order to obtain the to points." Mh hm...

"So if you were to change the reference points (i.e. the from points) with the Set to input RoD for example, then you would need to recompute the model at all frames, because the to points would just not be the same.

The work is usually done in two steps:

First, disable the CornerPin so that even if the viewer is connected to the Tracker there is no deformation going on, and set the from points to be the RoD (bounding box) of the Roto shape at the reference frame.
Then, export the CornerPin. It just links the parameters of the CornerPin to the ones in the tracker, so if you change something in the tracker transform tab the changes will reflect onto the CornerPin.

Basically what the Planar tracker will do in the future is automatically do all the steps for you: it will place markers inside the mask for you, track them and output a CornerPin from the bounding box of the roto shape."

Thank you for the feature preview...but... HOW DO I MAKE ROTO SHAPES MOVE ACCORDING TO A TRACKER?!

Bracket-H commented 1 year ago

tl; dr; can't make full use of a node that is so commonly used that it's got a single, no modifier required, key as a keyboard shortcut. Cause the documentation has too many presumptions.

Really like the software otherwise.

rodlie commented 1 year ago

The documentation is was it is, be thankful someone bothered to write documentation at all.

Bracket-H commented 1 year ago

In this case, no documentation would have been better. As for youtube tutorials, I have watched quite a few of them, but I did find one after I made this ticket that explained it sufficiently. https://www.youtube.com/watch?v=E8nzYwdRA4E

And again, no documentation would have been less confusing than this.

I am also what I am, be thankful that I communicated with you at all. That aside, I am quite the cordial man, if you know how to approach it. I'm sure you have prior experience with humans, so, figuring my good side out can't be so hard. Even though I could just offer it more readily.

I bet you don't enjoy that retort as much as your side of it.

That said, thanks for the Nuke link. The rest ...not so much. And while a lot of what I wrote, including this comment, might sound a bit abrasive. Don't take it personally. I'm not holding a grudge here or anything.

I'm not completely retarded, after all. I get it, I get the nature of it... It's just that "it's volunteer work" isn't a panacea.

If you write documentation, try not to make it too obtuse. Mindreading is not yet mainstream. The author probably meant well and understands the machinations. But the way it is...it's not very accessible for someone completely new to this. It's partly my fault of course. Just because something is open source doesn't mean it can't be a highly specialized tool.

But this could be less assuming and more actually explanatory. After all, even though I just admitted that not every open source software has to be 'mainstream'. Natron DOES advertise itself standalone.

In the natron trailer, there is no disclaimer like "This is a Nuke clone, you must know Nuke for best results" No..it's: https://www.youtube.com/watch?v=V2MvbfuITT8

At most it evokes a partnership with blender, as someone completely new to it, and being enthralled by a trailer. So, in my case, I jumped in, and actually tried quite a few things myself. In fact, the urge to not make something like this ticket is what eventually boiled over.

I came in only with good intentions, but was abused (proverbially, don't worry I'm not one of those people). All I wanted to do is rotoscope and track. A humble endeavor. Using a software that advertised itself to me as gratis, open source and powerful.

This is a weak point of many softwares, not just FOSS...but...it sure is vexing. The notion that I'm the bad guy even though I did my dues, which of course is not as apparent as me being angry. Couldn't pierce the fog despite my efforts. Found no solace in the docs. Tried to push on to not be a bother. But then still only gotten obtuse stuff.

It poisons the soul.

No docs would have been better. At least in my opinion. And I stand by my claim of: What good is software if its a pain to use? You coded in vain, skimping on something relatively easy compared to the task of creating the software.

It could be dismissed as me just being some sort of smooth brained troglodyte. But what if this was the only hitch and it being solved makes me fall in love head over heels with the entire thing, sparking the drive in me to apply myself and give back?

Would that not be a shame? To sever such a thread of fate because I'm "too ignorant" to not get the documentation that assumes things? What if I am smart enough to figure out everything else? Etc.

Documentation is important.

Thanks for coming to my TED talk.

rodlie commented 1 year ago

As I said the documentation is what it is, if someone want to fix and/or improve the documentation they can submit a PR. It's as simple as that (it's not going to fix itself).

Is the documentation lacking? Probably. Do I care? No. There are more important things to fix (in the software).

Bracket-H commented 1 year ago

Is the documentation lacking? Probably. Do I care? No.

But documentation is part of the user interface...

There are more important things to fix (in the software).

Hm, well, perhaps...but you being so dismissive about the notion versus your parts of the commit history (at least the timeframe I have bothered to check, which was about 4 pages of it)

It does not strike me as very heavyweight. But perhaps you don't know how to do the tracker stuff either. Wouldn't blame you...the documentation for it is kind of meager.

devernay commented 1 year ago

@Bracket-H please be more respectful and constructive in your "contributions", and read: https://github.com/NatronGitHub/Natron/blob/master/CODE_OF_CONDUCT.md