POV-Ray : Newsgroups : povray.unofficial.patches : post_process suggestions? Server Time
2 Sep 2024 14:16:32 EDT (-0400)
  post_process suggestions? (Message 31 to 40 of 58)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Chris Huff
Subject: Re: post_process suggestions?
Date: 1 May 2000 22:31:14
Message: <chrishuff_99-7BE046.21342301052000@news.povray.org>
In article <390e1a7f@news.povray.org>, "Bob Hughes" 
<per### [at] aolcom?subject=PoV-News:> wrote:

> I recall talk of multiple camera views for one scene render around here
> someplace or at c.g.r.r.
> I thought it was deemed implausible or impossible and I certainly don't
> remember it had actually been tried.
> Where'd that "portal patch", or whatever it was being called, go to?
> Seems that was Chris Huff trying it.  That seemed a similar thing.

I was *thinking* about something very similar to it, but I think it was 
XenoArch(Matthew Corey Brown, the author of the light groups patch, the 
ridged multifractal, and some of the added warps) who refined the idea 
and actually wrote it. I don't know how far he has gotten...it certainly 
looked very promising.

-- 
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/


Post a reply to this message

From: Bob Hughes
Subject: Re: post_process suggestions?
Date: 2 May 2000 18:50:38
Message: <390f5bbe@news.povray.org>
"Chris Huff" <chr### [at] yahoocom> wrote in message
news:chrishuff_99-7BE046.21342301052000@news.povray.org...
| In article <390e1a7f@news.povray.org>, "Bob Hughes"
| <per### [at] aolcom?subject=PoV-News:> wrote:
|
| > I recall talk of multiple camera views for one scene render around here
| > someplace or at c.g.r.r.
| > I thought it was deemed implausible or impossible and I certainly don't
| > remember it had actually been tried.
| > Where'd that "portal patch", or whatever it was being called, go to?
| > Seems that was Chris Huff trying it.  That seemed a similar thing.
|
| I was *thinking* about something very similar to it, but I think it was
| XenoArch(Matthew Corey Brown, the author of the light groups patch, the
| ridged multifractal, and some of the added warps) who refined the idea
| and actually wrote it. I don't know how far he has gotten...it certainly
| looked very promising.

Ah... okay, thanks for that info Chris.

Bob


Post a reply to this message

From: Chris Huff
Subject: Re: post_process suggestions?
Date: 2 May 2000 21:45:13
Message: <chrishuff_99-EDAA41.20482102052000@news.povray.org>
In article <chrishuff_99-80DFAD.19253627042000@news.povray.org>, Chris 
Huff <chr### [at] yahoocom> wrote:

> Does anyone have any suggestions for additional filters?

The list is now:

Stuff I can do or am confident I can figure out:
    levels, including an automatic adjustment feature, but probably not 
what has been discussed on these groups

    curves, which would be like levels but would be controlled by cubic 
or cosine splines.

    subtract, divide, average; which could be done with the current add 
and multiply but would make life easier, especially when using 
image_maps.

    min, max; very much like add, subtract, multiply, etc, but using 
min/max to compare color values.

    mosaiac

    tv or interlace

    Possibly a "directional blur". It would be less useful than 
blur_matrix, but easier to use. Maybe I will just write a macro to 
output the appropriate matrix data.

    sparkles, which would make little "flares" at locations above a 
certain brightness. A form of this can be done with blur_matrix, and I 
have a sort-of-working version, but I have some more approaches I would 
like to try out.

    And maybe some kind of filter which would reduce the resolution of 
the image, and fill in the gaps by interpolating between the lower 
resolution data...



Stuff I don't know how to implement, and don't think I can figure out, 
but which I think is useful, information on these would be welcome:
    emboss
    dither/halftone
    sharpen_edges, and other "sharpen" filters. Blurring is pretty easy 
to figure out, but doing the opposite has me lost.
    color_function, which would allow isosurface functions to act as 
filters. The problem is mostly that I don't know how to add 
variables/functions to isosurface functions, let alone functions which 
are only useable in certain areas.



Stuff I don't even know the use for, let alone how to implement. Could 
anyone tell me what these are for?
posterize
laplace
solarize
despeckle


I am also thinking of adding a "noise" pigment. Not a pattern, but a 
non-patterned pigment like image_map, with options for "monochrome" and 
"gaussian". This would be more useful than a filter, since it could be 
used with any of the filters which take a pigment as a color value. It 
might also be useful in "static" textures.
Did I miss anything?

-- 
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/


Post a reply to this message

From: Ron Parker
Subject: Re: post_process suggestions?
Date: 2 May 2000 23:16:20
Message: <slrn8gv79e.7tg.ron.parker@linux.parkerr.fwi.com>
On Tue, 02 May 2000 20:48:21 -0500, Chris Huff wrote:
>Stuff I don't know how to implement, and don't think I can figure out, 
>but which I think is useful, information on these would be welcome:
>    emboss

This is a matrix function, as long as you do it along one of the eight
multiples of 45 degrees.  For the usual "light in the upper left corner"
effect, I believe the operation is
  
 -1 0 0
  0 1 0   * .5 + .5
  0 0 0 

That is, if the pixel up and to the left is darker than the current 
pixel, the result is brighter than .5, and if it's lighter the result
is less than .5.  

>    dither/halftone

Floyd/Steinberg is fairly easy to implement, if I remember correctly.

>    sharpen_edges, and other "sharpen" filters. Blurring is pretty easy 
>to figure out, but doing the opposite has me lost.

The basic "sharpen" filter is also a matrix convolution, but what it
is escapes me for the moment.

>Stuff I don't even know the use for, let alone how to implement. Could 
>anyone tell me what these are for?
>posterize

This essentially quantizes the colors and makes a banding effect.  If I
remember correctly, it requires two passes: one to accumulate the colors
used in the image, and one to do the actual posterization.  In between,
you need to do some kind of color reduction step.

>laplace

I believe this is an edge-detection algorithm.  It might even be a 
matrix convolution.

-- 
Ron Parker   http://www2.fwi.com/~parkerr/traces.html
These are my opinions.  I do NOT speak for the POV-Team.


Post a reply to this message

From: Mark Wagner
Subject: Re: post_process suggestions?
Date: 3 May 2000 02:42:19
Message: <390fca4b$1@news.povray.org>
Chris Huff wrote in message ...

>Stuff I don't know how to implement, and don't think I can figure out,
>but which I think is useful, information on these would be welcome:
>    emboss
>    dither/halftone
>    sharpen_edges, and other "sharpen" filters. Blurring is pretty easy
>to figure out, but doing the opposite has me lost.
>    color_function, which would allow isosurface functions to act as
>filters. The problem is mostly that I don't know how to add
>variables/functions to isosurface functions, let alone functions which
>are only useable in certain areas.
>
>Stuff I don't even know the use for, let alone how to implement. Could
>anyone tell me what these are for?
>posterize
>laplace
>solarize
>despeckle


You might want to take a look at the source code for the GIMP.  It has
filters for all of these, except (I think) solarize.

Mark


Post a reply to this message

From: Glen Berry
Subject: Re: post_process suggestions?
Date: 3 May 2000 06:05:56
Message: <tfcPOV3UrvLcZ7RViEcuT47OAFSK@4ax.com>
On 2 May 2000 23:16:20 -0400, ron### [at] povrayorg (Ron Parker)
wrote:

>On Tue, 02 May 2000 20:48:21 -0500, Chris Huff wrote:
>>Stuff I don't know how to implement, and don't think I can figure out, 
>>but which I think is useful, information on these would be welcome:
>>    emboss
>
>This is a matrix function, as long as you do it along one of the eight
>multiples of 45 degrees.  For the usual "light in the upper left corner"
>effect, I believe the operation is
>  
> -1 0 0
>  0 1 0   * .5 + .5
>  0 0 0 

The numbers in the matrix above are correct. I'm not sure about the
multiplier and offset modifiers. For me, a vaue of one for the
multiplier works, and the offset value should be set to one-half of
the maximum possible value. I just tested these, and they work.

>>    sharpen_edges, and other "sharpen" filters. Blurring is pretty easy 
>>to figure out, but doing the opposite has me lost.

One type of sharpen filter:

-2      -2      -2

-2      32      -2

-2      -2       -2

Division Factor = 16
Bias, or Offset = 0



( Remove the "7" from 7no### [at] ezwvcom to email me. )


Post a reply to this message

From: Glen Berry
Subject: Re: post_process suggestions?
Date: 3 May 2000 06:56:42
Message: <GvsPOYQ0gONAxo4TzcbW6gmRbpjF@4ax.com>
On Tue, 02 May 2000 20:48:21 -0500, Chris Huff
<chr### [at] yahoocom> wrote:

>Stuff I don't even know the use for, let alone how to implement. Could 
>anyone tell me what these are for?

>posterize

As Ron Parker described, classic posterization is simply reducing the
color depth to a relatively small number, without using any dithering
to hide the banding. I don't believe that one has to perform this in
two passes, however. Simply divide the range between minimum allowable
value (0), and maximum allowable value for a color into a few discrete
ranges. Posterization is basically a color depth adjustment, where you
get to specify any number of possible shades between 0 and 255. For
example, a setting of "5" would allow 5 different shades of red, 5
shades of green, and 5 shades of blue. If you wanted to get a little
fancier, you could specify different depths for the different color
channels. This might be especially handy to use for use with a cartoon
filter. 

Note: A posterization filter would offer much more control than simply
setting the color depth in the povray.ini file.


>solarize

Solarize can be achieved with an "iso-function" type patch. Basically,
if a pixel exceeds a certain value, it is converted to a "negative"
image. The origination of this effect was in a characteristic of older
types of camera film. Early camera film would actually reverse it's
tonal range if subjected to an extremely bright light. That is, what
should appear in the photo as white, would actually start turn dark,
if the exposure to light was severe enough. I have seen examples in
books where the sun appeared black, and the rest of the image looked
normal. Modern films don't exhibit this effect.

It is *very* similar to the Sabattier Effect, which is generated by
flashing light onto film or photo paper while it is still being
processed in the darkroom. Specifically, flashed while in the initial
developer stage of processing.

If you want a sample formula to play with, here is one of many that
will give this sort of effect:

RedOut = 1-(0.5+(cos(RedIn*pi*2)/2))
GreenOut = 1-(0.5+(cos(GreenIn*pi*2)/2))
BlueOut = 1-(0.5+(cos(BlueIn*pi*2)/2))

This generates a fixed response curve that makes a negative image of
anything above the mid-point of the scale. It's a deep and dramatic
solarization effect. A more refined approach would be to offer a user
specified value for the reversal threshold.

>despeckle

Of course, this is a type of blurring/smoothing filter, but
unfortunately I don't have the details for you.

>laplace

This should be some sort of "edges" type filter. I don't know the
details.

*****************

I would *highly* reccomend you visiting this site:

   http://www.tisl.ukans.edu/~jgauch/kuim/

Here you will find info about the Laplacian Edges filter, different
types of blurring filters, different sharpening filters, and much
more. All filters described even come with sample source code. It
should still provide you with a lot of insight.

Later,
Glen Berry

( Remove the "7" from 7no### [at] ezwvcom to email me. )


Post a reply to this message

From: Chris Huff
Subject: Re: post_process suggestions?
Date: 3 May 2000 08:18:49
Message: <chrishuff_99-CAF1CE.07215903052000@news.povray.org>
In article <GvsPOYQ0gONAxo4TzcbW6gmRbpjF@4ax.com>, Glen Berry 
<7no### [at] ezwvcom> wrote:

> >posterize
> 
> As Ron Parker described, classic posterization is simply reducing the
> color depth to a relatively small number, without using any dithering
> to hide the banding. I don't believe that one has to perform this in
> two passes, however. Simply divide the range between minimum allowable
> value (0), and maximum allowable value for a color into a few discrete
> ranges. Posterization is basically a color depth adjustment, where you
> get to specify any number of possible shades between 0 and 255. For
> example, a setting of "5" would allow 5 different shades of red, 5
> shades of green, and 5 shades of blue. If you wanted to get a little
> fancier, you could specify different depths for the different color
> channels.

This is exactly what is done with my "steps" filter. I multiply the 
float colors by a certain amount, convert to integer, and then scale 
back to the original color range. And it is already per-channel, you can 
have different numbers of steps for each channel.


> >solarize
> 
> Solarize can be achieved with an "iso-function" type patch. Basically,
> if a pixel exceeds a certain value, it is converted to a "negative"
> image.
...
> This generates a fixed response curve that makes a negative image of
> anything above the mid-point of the scale. It's a deep and dramatic
> solarization effect. A more refined approach would be to offer a user
> specified value for the reversal threshold.

Hmm, this will probably stay in the "to do" pile for a while.


> I would *highly* reccomend you visiting this site:
> 
>    http://www.tisl.ukans.edu/~jgauch/kuim/
...

Thanks for the link!

-- 
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/


Post a reply to this message

From: Chris Huff
Subject: Re: post_process suggestions?
Date: 3 May 2000 08:20:00
Message: <chrishuff_99-02576D.07231003052000@news.povray.org>
In article <390fca4b$1@news.povray.org>, "Mark Wagner" 
<mar### [at] gtenet> wrote:

> You might want to take a look at the source code for the GIMP.  It has
> filters for all of these, except (I think) solarize.

Hmm, ok. I would really prefer algorithms to source code, but that could 
be useful. Any links?

-- 
Christopher James Huff - Personal e-mail: chr### [at] yahoocom
TAG(Technical Assistance Group) e-mail: chr### [at] tagpovrayorg
Personal Web page: http://chrishuff.dhs.org/
TAG Web page: http://tag.povray.org/


Post a reply to this message

From: Ron Parker
Subject: Re: post_process suggestions?
Date: 3 May 2000 10:20:18
Message: <slrn8h0e6f.8ll.ron.parker@linux.parkerr.fwi.com>
On Wed, 03 May 2000 06:06:05 -0400, Glen Berry wrote:
>>This is a matrix function, as long as you do it along one of the eight
>>multiples of 45 degrees.  For the usual "light in the upper left corner"
>>effect, I believe the operation is
>>  
>> -1 0 0
>>  0 1 0   * .5 + .5
>>  0 0 0 
>
>The numbers in the matrix above are correct. I'm not sure about the
>multiplier and offset modifiers. For me, a vaue of one for the
>multiplier works, and the offset value should be set to one-half of
>the maximum possible value. I just tested these, and they work.

A multiplier of 1 can cause clipping at the ends of the range.  The
two worst-case values of the matrix are -1 (when the upper-left pixel
is white and the center is black) and 1 (vice-versa.)  To get this range
into the 0..1 range requires multiplying by .5 and adding .5, as I did.

If you neglect to multiply by .5, you increase the contrast of the 
resulting image, but at the expense of "washing out" areas with high
gradients.  A better way to increase contrast would be to apply the
filter as I've specified it, then apply an S-curve-shaped correction
to stretch the midrange.

-- 
Ron Parker   http://www2.fwi.com/~parkerr/traces.html
These are my opinions.  I do NOT speak for the POV-Team.


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

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