|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 08/06/2021 11:21 am, m@b wrote:
> Trying to emulate mechanical shading.
>
> m@
An example with cylinders instead of spheres, I like the maze effect at
the boundaries.
And a first attempt at edge detection.
m@
Post a reply to this message
Attachments:
Download 'test cylinders 01.png' (128 KB)
Download 'image cross hatch 03.png' (181 KB)
Preview of image 'test cylinders 01.png'
Preview of image 'image cross hatch 03.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"m@b" <sai### [at] googlemailcom> wrote:
> But I would need some primitives to put the pattern on?
Of course. A thin box or the union of 2 triangles works well. A plane if you
just want to have the largest possible palette.
But the idea is that you have a lot of stuff going on after you "extract" the
colors. Rather than do that, you use the color values directly to select a
pigment, by using a pigment_map.
I am curious about
#declare GreyTest = 0.001 + abs(TestK(X,Y,0) -
abs((TestR(X,Y,0) + TestG(X,Y,0) - TestB(X,Y,0))));
What is the underlying logic/reasoning behind this "greyness test"?
> > there are edge-finding algorithms that give you the gradient of the image as a
> > bonus.
>
> Hmm - I need to think about these things. Interesting suggestions.
https://www.youtube.com/watch?v=uihBwtPIBxM
skip to 3:30 if you want.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Tor Olav Kristensen" <tor### [at] TOBEREMOVEDgmailcom> wrote:
> Hi Bill
>
> Please note that most of the credit for the Vector analysis macros should go to
> Christoph Hormann, which did the heavy lifting. I just suggested some
> corrections.
So noted! He did an excellent job, especially that clever bit about employing
f_r - which took me a bit of time to wrap my head around.
http://www.povray.org/documentation/view/3.6.1/448/
f_r(x,y,z) = sqrt( x*x + y*y + z*z )
When used alone, the "R" function gives a surface that consists of all the
points that are a specific distance (threshold value) from the origin, i.e. a
sphere.
> Btw.:
> I agree with you; it may be that experimenting with pigment maps will be
> rewarding here.
Indeed. I think he could get some interesting half-tone effects as well.
rgbf would look great if unmodified spheres of all 3 colors were used.
There's also the potential for using different shapes - boxes, triangles,
hexagons, etc. I'm also thinking that using cones would give a Voronoi effect.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Bald Eagle" <cre### [at] netscapenet> wrote:
> I'm also thinking that using cones would give a Voronoi effect.
I just did this one because it was quick.
Post a reply to this message
Attachments:
Download 'monochrome_be.png' (567 KB)
Preview of image 'monochrome_be.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
=?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
> Yadgar
I really just have to say that if you got some dark sunglasses and a leather
biker vest, you could totally pull off that "bouncer at a biker bar" look.
:D
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"Bald Eagle" <cre### [at] netscapenet> wrote:
> "Bald Eagle" <cre### [at] netscapenet> wrote:
>
> > I'm also thinking that using cones would give a Voronoi effect.
>
> I just did this one because it was quick.
They make a nice texture that reminds me of mashed paper.
--
Tor Olav
http://subcube.com
https://github.com/t-o-k
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
This is a multi-part message in MIME format.
Post a reply to this message
Attachments:
Download 'monochrome_be.png' (615 KB)
Preview of image 'monochrome_be.png'
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 11/06/2021 2:27 am, Bald Eagle wrote:
> I am curious about
> #declare GreyTest = 0.001 + abs(TestK(X,Y,0) -
> abs((TestR(X,Y,0) + TestG(X,Y,0) - TestB(X,Y,0))));
>
> What is the underlying logic/reasoning behind this "greyness test"?
I wish to represent 4 colours - R, G, B and Grey.
The 0.001 is now redundant, I put it in to prevent a divide by zero
error in a previous version.
TestK(X,Y,0) returns the mean value of R, G, B. (1)
R+G-B will also return the mean if R, G and B are all the same, i.e.
colour is Grey. (Black and White are just shades of Grey :-)) (2)
So the GreyTest (1)-(2) returns zero if R, G and B are equal and a small
value if they are close.
BUT --------------------------------------------------------
You got me thinking, are there any cases where the test returns zero but
R, G, B are not equal?
Answer - yes, the test sometimes falls down when the 3 numbers are
equally spaced. e.g 0.1, 0.2, 0.3 or 0.3, 0.6, 0.9
I was over thinking, maybe this will work:
#declare GreyTest = abs(TestR(X,Y,0)-TestG(X,Y,0)) +
abs(TestR(X,Y,0)-TestB(X,Y,0)) + abs(TestB(X,Y,0)-TestG(X,Y,0));
m@
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi(gh)!
On 10.06.21 23:55, Bald Eagle wrote:
> =?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
>
>> Yadgar
>
> I really just have to say that if you got some dark sunglasses and a leather
> biker vest, you could totally pull off that "bouncer at a biker bar" look.
Yes, and I'm about as heavyweight as the typical biker bar bouncer - but
unfortunately, it's more fat than muscle... but nevertheless, I prefer
muscle-powered cycling over motorbiking!
Now playing: Nobody Home (Pink Floyd)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"m@b" <sai### [at] googlemailcom> wrote:
> I was over thinking, maybe this will work:
>
> #declare GreyTest = abs(TestR(X,Y,0)-TestG(X,Y,0)) +
> abs(TestR(X,Y,0)-TestB(X,Y,0)) + abs(TestB(X,Y,0)-TestG(X,Y,0));
I thought a bit about this, underthought it while playing with the idea, and
then realized that what I wanted to suggest was making use of the HSV color
space.
That way when all of the color channels are equal, the Hues cancel each other
out, or if they are close, then they give a small Saturation vector. You can
then set the threshold and test the length of that Saturation vector.
Brightness would correspond to the Value.
Then you just use the CRGB2HSV color conversion macro in colors.inc (requires
CRGB2H).
// Converts a color in RGB color space to a color in HSV color space.
// Input: < Red, Green, Blue, Filter, Transmit >
// Output: < Hue, Saturation, Value, Filter, Transmit >
#macro CRGB2HSV(Color)
#local RGBFT = color Color;
#local R = (RGBFT.red);
#local G = (RGBFT.green);
#local B = (RGBFT.blue);
#local Min = min(R,min(G,B));
#local Max = max(R,max(G,B));
#local Span = Max-Min;
#local H = CRGB2H (<R,G,B>, Max, Span);
#local S = 0; #if (Max!=0) #local S = Span/Max; #end
<H,S,Max,(RGBFT.filter),(RGBFT.transmit)>
#end
// Takes RGB vector, Max component, and Span as input,
// returns Hue value.
#macro CRGB2H (RGB, Max, Span)
#local H = 0;
#local R = RGB.red;
#local G = RGB.green;
#local B = RGB.blue;
#if (Span>0)
#local H = (
+ (R = Max & G != Max ? 0 + (G - B)/Span : 0)
+ (G = Max & B != Max ? 2 + (B - R)/Span : 0)
+ (B = Max & R != Max ? 4 + (R - G)/Span : 0)
)*60;
#end
H
#end
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|