On 06.04.20 15:56, Carlos Eduardo G. Carvalho (Cartola) wrote:
> Hi Kay, good job and one more option for us, thank you!
>
> My first impressions after building it on an Ubuntu 18.04:
>
> - I don't know why, but usually my images don't have panoramic metadata,
> so pv didn't recognize the first test I made. I would suggest that it
> could treat 2:1 images as spherical panoramas, but don't know it it
> would be good in a general viewer. Maybe it could ask us when it found
> this aspect ration.
This is easy to remedy. You can:
- best: produce panoramas with metadata in the first place
- or add metadata with exiftool (see pv's docu to tell you which)
- or pass projection on the command line: full sphericals need
--projection=spherical --hfov=360
- you can put your image filename plus the above into an 'ini file'.
I also think it's not a good idea to automatically assume that certain
aspect ratios mean a specific projection. If you're using hugin, produce
spherical images, and in the hugin settings, go to the second blending
tab and set 'produce Pano Sphere XMP data'. This will give you the best
metadata for work with pv, and your panoramas will be recognized as
such. Oftentimes metadata get lost when postprocessing panoramas after
the stitching with photoshop or such, so make sure you copy the metadata
to the postprocessed image file (e.g. with exiftool).
pv does not do dialogs. The UI is all 'immediate': every interaction
produces an immediate reaction. If you have accidentally launched a
spherical image as a 'flat' one, you can also click into the 'override
line' (bottom right in the GUI) and enter the missing arguments (commit
with return).
> - The command line options have a not obvious syntax, like
> --projection:spherical - Even after reading the help it took me some
> tries to notice that there mustn't be a space. Usually unix command
> options would accept something like "--projection spherical" (my first
> try) and besides this, the help shows a space there after the ":", so my
> second try has been "--projection: spherical" and only got it after
> third try.
Sorry that my options aren't 'obvious'. I may find a way to allow the
syntax you'd like to see, but for now the options are as the
documentation says. One-character 'short' options follow normal unix
argument syntax, long options follow
--{option_name}[=|:]{option_value}
with no white space allowed. Makes argument parsing much easier. It's
like named parameters in python.
> - Its performance is a little bit worse than Panini, which I usually
> use. The image flow is slower (my machine is an i7 from 2013 without an
> Nvidia)
i7 from 2013 sounds like AVX only, and no graphics card means you're
using chipset graphics. This is quite an old system, AVX2 and the
chipset graphics from the Haswell generation already perform much
better. pv does the rendering on the CPU and up/downscaling on the GPU,
so your system is probably just not powerful enough. If animated
sequences stutter, try lowering 'animation quality':
click on 'AQ DOWN' in the GUI, or hold and press 'M', or pass AQ values
less than one, like --moving_image_scaling=0.5. You'll get a slightly
blurred view during the animation, but the still images will be crisp as
ever. This is my compromise for slower systems: render smaller frames
and send them to the GPU for upscaling. But then, if the GPU is also
slow, you're out of luck. There are more things you can do to lower
rendering times, but they tend to degrade image quality more. you may
want to consider the section 'Hardware Considerations' in the pv
documentation. switching to a lower screen resolution (like 720p instead
of 1080p) is another option. 4K screen resolution is definitely too much
to ask with your hardware.
> Hope it helps to improve you very good job! Maybe Greg can port it to
> FreeBSD! :)
Thanks for the praise. Porting should not be too hard, it already runs
on linux and I had it running on macOS last summer - and msys2 is quite
unixoid as well. If you get the libraries it uses to compile, you should
be fine. I've tried very hard to keep my code as standard as possible.
I'd be glad to hear of a FreeBSD port. It might be as easy as installing
clang++ and the libs and issuing 'make'.
With regards
Kay