POV-Ray : Newsgroups : povray.pov4.discussion.general : output changes. yuqk / v4. Option re-work status. Server Time
10 Jun 2025 01:16:18 EDT (-0400)
  output changes. yuqk / v4. Option re-work status. (Message 1 to 1 of 1)  
From: William F Pokorny
Subject: output changes. yuqk / v4. Option re-work status.
Date: 7 Jun 2025 20:14:38
Message: <6844d5ee$1@news.povray.org>
The current output related options:

     bits_per_color bits_per_colour
     grayscale_output greyscale_output
+-f output_file_type  (b|c|e|h|j|n|p|t)
+-fb +-fc +-fe +-fh +-fj +-fn +-fp +-ft
+-fbg +-fcg +-feg +-fhg +-fjg +-fng +-fpg +-ftg
+-fn1 +-fn2 +-fn3 +-fn4 +-fn5 +-fn6 +-fn7 +-fn8 +-fn9 +-fn10
+-fn11 +-fn12 +-fn13 +-fn14 +-fn15 +-fn16
+-fp1 +-fp2 +-fp3 +-fp4 +-fp5 +-fp6 +-fp7 +-fp8 +-fp9 +-fp10
+-fp11 +-fp12 +-fp13 +-fp14 +-fp15 +-fp16
+-fng1 +-fng2 +-fng3 +-fng4 +-fng5 +-fng6 +-fng7 +-fng8 +-fng9
+-fng10 +-fng11 +-fng12 +-fng13 +-fng14 +-fng15 +-fng16
+-fpg1 +-fpg2 +-fpg3 +-fpg4 +-fpg5 +-fpg6 +-fpg7 +-fpg8 +-fpg9
+-fpg10 +-fpg11 +-fpg12 +-fpg13 +-fpg14 +-fpg15 +-fpg16
   (We are currently cheating in not explicitly supporting a
    .pgm format though we write one to .ppm. OK due header encoding)
+-o +-o- output_to_file output_file_name  (out directory in this too)
    file_gamma  (srgb|bt709|bt2020,<float>)
    compression 0 or 1, 2-100
      (odd RLE compression mode with file type 'c' and 'compression')
      (odd ascii vs binary switch with 0 or 1 values for .ppm / .pgm)
+-th dither
      dither_method = (b2|b3|b4|bn|bnx|at|bk|d1|d2|fs|jn|s2|s3|st)
+-ua output_alpha


become (punch ones):


+-p     punch                    on|off
+-pa    punch_alpha              on|off
+-pbpc  punch_bits_per_channel   integer value only
+-pcm_  punch_compression_method string  value only
           (ascii,binary,rle)
+-pcv   punch_compression_value  float   value only 2-100
+-pd    punch_dither             on|off
+-pdm_  punch_dither_method      string  value only
           (b2|b3|b4|bn|bnx|at|bk|d1|d2|fs|jn|s2|s3|st)
+-pgc_  punch_gamma_curve        string  value only
           (srgb|bt709|bt2020|linear|power)
+-pgv   punch_gamma_value        float   value only
+-pgm_  punch_gry_method         string  value only
           (ci111,ci240,ci601,ci709,ci2020)
+-pgs   punch_gry_scale          on|off
+-pif_  punch_image_format       string  value only
           (bmp,exr,hdr,jpg,png,ppm,tga)
+-ppe_  punch_path_extension     string  value only
+-ppf_  punch_path_filename      string  value only
+-ppp_  punch_path_parent        string  value only
+-pps_  punch_path_stem          string  value only
+-ps    punch_stdout             on|off
+-pmd   punch_meta_data          on|off
+-pmf_  punch_meta_filename      string  value only

Initially I'll be mapping the above options back to existing 
functionality. Setting up for the longer term.

Aims / thinking :

- See display option set for notes on like options.

- The flag combinations are already a bit out of control even though we 
are are today writing both .pgm and .ppm formats to .ppm. I've use them 
quite a bit and I still get tangled up.

- Looking to add support for new / actual formats (.avif, depth(already 
coded in yuqk. Likely written as .pfm but maybe with a .depth 
extension), (flesh out .pfm real time capture in yuqk) true .pgm).

- With respect to the bit depth it sank in over time this is not 
completely an image format specific thing. The formats which officially 
support depth are still encoding the depths in one byte or two bytes 
stored fields (excepting .pgm .ppm ascii). A big part of the benefit of 
shallower depths is that the compression works much better. This itself 
useful while developing scenes / animations and it can be done 'inside' 
whatever bit depth(s) the image file supports.

- The punch_path_* set maps directly to c++17, std::filesystem features. 
Trying to get to less tangled, still optional, explicit control of 
output names.

- Unsure how the meta data stuff might work. I've not thought much about 
it. Some options there, but it's just intent/dreaming at present.

- In adding an explicit compression method, making it possible to 
support other compression methods available, today, in some image formats.

Code wise the parsing is mostly there, but nothing is wired up.

Bill P.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.