POV-Ray : Newsgroups : povray.text.scene-files : Halftones Server Time
23 Dec 2024 02:34:08 EST (-0500)
  Halftones (Message 1 to 8 of 8)  
From: Ron Parker
Subject: Halftones
Date: 27 Nov 2001 11:46:05
Message: <slrna07gqe.mu2.ron.parker@fwi.com>
I've been playing with color halftones, inspired by Rune's Pattern Control
Trick, and I have something y'all might enjoy.  The third case in the 
halftone.pov file loses something if you don't have the image I used, 
because my image has a radio tower with its tip at the center of the 
onion pattern, but go ahead and try it with your favorite image anyway.

POV 3.5 is required, due to all those functions.

---- begin Halftone.inc: 

#macro CustomHalftone( Pigment, Dotsize, DotPigment, CAngle, MAngle, YAngle ) 
  #local PIG=function{pigment{Pigment}}
  #local CDOTS=function{pigment{DotPigment scale Dotsize rotate CAngle*z}}
  #local MDOTS=function{pigment{DotPigment scale Dotsize rotate MAngle*z}}
  #local YDOTS=function{pigment{DotPigment scale Dotsize rotate YAngle*z}}
  #local CYAN=function{ select(PIG(x,y,z).red-CDOTS(x,y,z).red,1,0) }
  #local YELLOW=function{ select(PIG(x,y,z).blue-YDOTS(x,y,z).red,1,0) }
  #local MAGENTA=function{ select(PIG(x,y,z).green-MDOTS(x,y,z).red,1,0) }
  average pigment_map{
    [1 function{1-CYAN(x,y,z)} color_map {[0 rgb 0][1 red 3]}]
    [1 function{1-YELLOW(x,y,z)} color_map {[0 rgb 0][1 blue 3]}]
    [1 function{1-MAGENTA(x,y,z)} color_map {[0 rgb 0][1 green 3]}]
  }
#end

#macro Halftone( Pigment, Dotsize )
  #local DOTPIG=pigment{quilted control0 1/3 control1 2/3 
                        color_map {[.1 rgb 0][.45 rgb 1]}}
  CustomHalftone( Pigment, Dotsize, DOTPIG, 15, 45, 75 )
#end

#macro LineHalftone( Pigment, Dotsize, Angle )
  #local DOTPIG=pigment{gradient y}
  CustomHalftone( Pigment, Dotsize, DOTPIG, Angle, Angle, Angle )
#end      

---- end Halftone.inc

---- begin Halftone.pov:
#include "halftone.inc"
#declare Example=1;
camera {location -2*z}

#declare Picture=pigment {
  image_map{jpeg "d:\\myfiles\\golden_gate_bridge_from_marin.jpg"} 
  translate -.5 
  scale 2*<4/3,1,1>
}

plane {
  -z, 0  
  #switch (Example)            
    #case (1)
      pigment {Halftone(Picture, .02)}
      #break
    #case (2)
      pigment {LineHalftone(Picture, .02, 30)} 
      #break
    #case (3)
      #declare OnionScale=.02;
      pigment {CustomHalftone(Picture, OnionScale, 
        pigment{onion translate <(144/320-1)*4/3,1-260/240,0>/OnionScale},
        0, 0, 0)}
      #break
  #end // switch
  finish {ambient 1}
}
---- end Halftone.pov

-- 
#local R=<7084844682857967,0787982,826975826580>;#macro L(P)concat(#while(P)chr(
mod(P,100)),#local P=P/100;#end"")#end background{rgb 1}text{ttf L(R.x)L(R.y)0,0
translate<-.8,0,-1>}text{ttf L(R.x)L(R.z)0,0translate<-1.6,-.75,-1>}sphere{z/9e3
4/26/2001finish{reflection 1}}//ron.parker@povray.org My opinions, nobody else's


Post a reply to this message

From: bob h
Subject: Re: Halftones
Date: 27 Nov 2001 13:37:45
Message: <3c03dd79@news.povray.org>
"Ron Parker" <ron### [at] povrayorg> wrote in message
news:slr### [at] fwicom...
> I've been playing with color halftones, inspired by Rune's Pattern Control
> Trick, and I have something y'all might enjoy.  The third case in the
> halftone.pov file loses something if you don't have the image I used,
> because my image has a radio tower with its tip at the center of the
> onion pattern, but go ahead and try it with your favorite image anyway.


Extremely cool stuff.  newspaper or magazine photos, woodcuts or etchings,
all can be done without post-processing using that.  Really need not be a
radio tower there for the concentric circle style.

Might as well try out these too:

    #case (4) // hypno
      #declare SpiralScale=.03;
      pigment {CustomHalftone(Picture, SpiralScale,
        pigment{spiral1 2 translate <.1,.2,0>/SpiralScale},
        0, 0, 0)}
      #break
    #case (5) // netting
      #declare LeopardScale=.006;
      pigment {CustomHalftone(Picture, LeopardScale,
        pigment{leopard frequency -4},
        0, 0, 0)}
      #break

BTW, seeing as the double backward slashes are used in that file path, and
I've seen mention of that elsewhere, I wondered why I can use singles just
fine here.  Just common practice to use doubles all the time even though I
guess it's strings which really need them and not such things as image_map?

TIA for any feedback about that.

--
text{ttf"arial","bob h",.1,0pigment{rgb 9}translate<-1,-.2,3>}


Post a reply to this message

From: Warp
Subject: Re: Halftones
Date: 27 Nov 2001 16:03:22
Message: <3c03ff9a@news.povray.org>
bob h <omn### [at] charternet> wrote:
: BTW, seeing as the double backward slashes are used in that file path, and
: I've seen mention of that elsewhere, I wondered why I can use singles just
: fine here.  Just common practice to use doubles all the time even though I
: guess it's strings which really need them and not such things as image_map?

  What I am wondering is if you can use whitespaces in the path (for
example "c:\\My Documents\\picture.jpg").

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: bob h
Subject: Re: Halftones
Date: 28 Nov 2001 01:41:21
Message: <3c048711$1@news.povray.org>
"Warp" <war### [at] tagpovrayorg> wrote in message
news:3c03ff9a@news.povray.org...
> bob h <omn### [at] charternet> wrote:
> : BTW, seeing as the double backward slashes are used in that file path,
and
> : I've seen mention of that elsewhere, I wondered why I can use singles
just
> : fine here.  Just common practice to use doubles all the time even though
I
> : guess it's strings which really need them and not such things as
image_map?
>
>   What I am wondering is if you can use whitespaces in the path (for
> example "c:\\My Documents\\picture.jpg").

Yes, I can use that, sure.  Even as "c:\My Documents\picture.jpg".  Been
doing so for a couple years anyhow.  As I said, only place I'd have to use
double backslashes is in string functions such as concat() or in message
streams such as #debug.

--
text{ttf"arial","bob h",.1,0pigment{rgb 9}translate<-1,-.2,3>}


Post a reply to this message

From: Warp
Subject: Re: Halftones
Date: 28 Nov 2001 06:06:09
Message: <3c04c520@news.povray.org>
bob h <omn### [at] charternet> wrote:
:>   What I am wondering is if you can use whitespaces in the path (for
:> example "c:\\My Documents\\picture.jpg").

: Yes, I can use that, sure.  Even as "c:\My Documents\picture.jpg".

  I asked it because I tried it and it didn't work.
  Perhaps I just mistyped something.

-- 
#macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
],13),8)-3,10>#end blob{N(array[6]{11117333955,
7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Bryan Valencia
Subject: Re: Halftones
Date: 28 Nov 2001 14:33:24
Message: <3C053C4A.9E98758E@209software.com>
In C like languages, the compiler looks for the character after the "/" as a special
control character.  Like "/n" is a newline.  the "//" is how you get a "/" into your
code.

Has anyone tried something like a text object of "AB/nCD"?

will it look like AB/nCD  or

AB
CD

???

Warp wrote:

> bob h <omn### [at] charternet> wrote:
> :>   What I am wondering is if you can use whitespaces in the path (for
> :> example "c:\\My Documents\\picture.jpg").
>
> : Yes, I can use that, sure.  Even as "c:\My Documents\picture.jpg".
>
>   I asked it because I tried it and it didn't work.
>   Perhaps I just mistyped something.
>
> --
> #macro N(D,I)#if(I<6)cylinder{M()#local D[I]=div(D[I],104);M().5,2pigment{
> rgb M()}}N(D,(D[I]>99?I:I+1))#end#end#macro M()<mod(D[I],13)-6,mod(div(D[I
> ],13),8)-3,10>#end blob{N(array[6]{11117333955,
> 7382340,3358,3900569407,970,4254934330},0)}//                     - Warp -


Post a reply to this message

From: Ron Parker
Subject: Re: Halftones
Date: 28 Nov 2001 15:09:18
Message: <slrna0ah3g.ptg.ron.parker@fwi.com>
On Wed, 28 Nov 2001 11:34:34 -0800, Bryan Valencia wrote:
> In C like languages, the compiler looks for the character after the "/" as a special
control character.  Like "/n" is a newline.  the "//" is how you get a "/" into your
code.
> 
> Has anyone tried something like a text object of "AB/nCD"?
> 
> will it look like AB/nCD  or
> 
> AB
> CD

Backslash, actually, not forward slash.  A text object tries to look up the
0x0A character in the glyph map, so you end up with AB<box>CD where <box> is
the default character-not-found glyph in whatever font you're using.  Unless
you're using one of those weird fonts that defines it as a little L and a 
little F in the same character cell. :)

But I want more comments about my halftones!  Enough of this backslash talk!
Who needs directory separators when we have an include path, anyway?

Seriously, check out these halftones:

    #case (6)
      #declare OnionScale=.02;
      pigment {CustomHalftone(Picture, OnionScale, 
        pigment{onion translate x/OnionScale},
        0, 120, 240)}
      #break
    #case (7)
      pigment {CustomHalftone(Picture, .01, 
        pigment{gradient x turbulence .5 octaves 1},
        90, 210, 330)}
      #break

-- 
#macro R(L P)sphere{L F}cylinder{L P F}#end#macro P(V)merge{R(z+a z)R(-z a-z)R(a
-z-z-z a+z)torus{1F clipped_by{plane{a 0}}}translate V}#end#macro Z(a F T)merge{
P(z+a)P(z-a)R(-z-z-x a)pigment{rgbf 1}hollow interior{media{emission 3-T}}}#end 
Z(-x-x.2x)camera{location z*-10rotate x*90normal{bumps.02scale.05}}


Post a reply to this message

From: bob h
Subject: Re: Halftones
Date: 28 Nov 2001 17:50:49
Message: <3c056a49@news.povray.org>
"Ron Parker" <ron### [at] povrayorg> wrote in message
news:slr### [at] fwicom...
>
> But I want more comments about my halftones!  Enough of this backslash
talk!
> Who needs directory separators when we have an include path, anyway?
>
> Seriously, check out these halftones:
>
>     #case (6)
>       #declare OnionScale=.02;
>       pigment {CustomHalftone(Picture, OnionScale,
>         pigment{onion translate x/OnionScale},
>         0, 120, 240)}
>       #break
>     #case (7)
>       pigment {CustomHalftone(Picture, .01,
>         pigment{gradient x turbulence .5 octaves 1},
>         90, 210, 330)}
>       #break


I had also tried this:

      #declare ImageMapScale=<4/3,1,1> * 2; // use < 2 for repeats
      pigment {CustomHalftone(Picture, ImageMapScale,
        pigment{image_map {jpeg "masking.jpg"}
         turbulence 0
         translate <4/3,1,0>/ImageMapScale},
        0, 0, 0)}

/* Using the same image for this as the base image and slight (0.01)
turbulence (when scale has *2) can be rather interesting */

--
text{ttf"arial","bob h",.1,0pigment{rgb 9}translate<-1,-.2,3>}


Post a reply to this message

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