Autochrome and Perlin Noise

Diner

A
Diner

  • 1
  • 0
  • 31
Gulf Nonox

A
Gulf Nonox

  • 4
  • 0
  • 31
Druidstone

A
Druidstone

  • 6
  • 2
  • 81
On The Mound.

A
On The Mound.

  • 1
  • 0
  • 52
Ancient Camphor

D
Ancient Camphor

  • 6
  • 1
  • 62

Forum statistics

Threads
197,799
Messages
2,764,607
Members
99,479
Latest member
presetpedia
Recent bookmarks
2
OP
OP
Mustafa Umut Sarac
Joined
Oct 29, 2006
Messages
4,825
Location
İstanbul
Format
35mm
Holmsburgers ,

This code is 1 dimensional but I dont know where to use !

POVRAY or terragen , try to complile with them or ask your brother !

Umut

function Noise1(integer x)
x = (x<<13) ^ x;
return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0);
end function


function SmoothedNoise_1(float x)
return Noise(x)/2 + Noise(x-1)/4 + Noise(x+1)/4
end function


function InterpolatedNoise_1(float x)

integer_X = int(x)
fractional_X = x - integer_X

v1 = SmoothedNoise1(integer_X)
v2 = SmoothedNoise1(integer_X + 1)

return Interpolate(v1 , v2 , fractional_X)

end function


function PerlinNoise_1D(float x)

total = 0
p = persistence
n = Number_Of_Octaves - 1

loop i from 0 to n

frequency = 2i
amplitude = pi

total = total + InterpolatedNoisei(x * frequency) * amplitude

end of i loop

return total

end function
 
OP
OP
Mustafa Umut Sarac
Joined
Oct 29, 2006
Messages
4,825
Location
İstanbul
Format
35mm
2 dimensional

Landscapes: These are a perfect application for 2D Perlin Noise. Unlike the subdivision method, you do not have to store the landscape anywhere in memory, the height of any point on the landscape can be calculated easily. What's more, the land stretches indefinitely (almost), and can be calculated to minute detail, so it's perfect of variable level of detail rendering. The properties of the landscape can be defined easily too.
Clouds: Again, cloud rendering is well suited to Perlin Noise.
Generating Textures: All sorts of textures can be generated using Perlin Noise. See the table below for some examples. The textures generated can go on for ages before repeating (if ever), which makes them much more pleasant to look at than a repeating tiled texture map.
 
OP
OP
Mustafa Umut Sarac
Joined
Oct 29, 2006
Messages
4,825
Location
İstanbul
Format
35mm
1 dimensional

Controlling virtual beings: Living objects rarely stay still for very long (except students). Use perlin noise to constantly adjust the joint positions of a virtual human player, in a game for example, to make it look like it's more alive.

Drawing sketched lines:
Computer drawn lines are always totally straight, which can make them look unnatural and unfriendly. You can use Perlin Noise to introduce a wobblyness to a line drawing algorithm to make it appear as if it's been drawn by hand. You can also draw wobbly circles and boxes. Some research has been done on making a Sketchy User Interface.
 

holmburgers

Member
Joined
Aug 13, 2009
Messages
4,439
Location
Vienna, Austria
Format
Multi Format
I emailed this to my brother, saying "do you understand this?" We'll see what he says. :D
 

holmburgers

Member
Joined
Aug 13, 2009
Messages
4,439
Location
Vienna, Austria
Format
Multi Format
Here is my brother's response to me sending him the above code. I'm simply posting this as reference material... I have no idea what any of this means or how to implement it. Frankly, I'm not even sure if it relates to Perlin noise. But perhaps someone else does....
_____________________________________________________________________
I think that's pseudo code. I don't recognize it as any language I know. They're just functions too, it's not a full functioning program. It's actually a little ambigious at points depending on which order of operations you're using (although if we assume those are standard it's fine). Depending on how big your input numbers are these intermediate numbers could get huge.

There is a Scene Description Language for POVRAY (see the wiki article), but it doesn't look the same.

These are easy to implement. For example, the first function in perl would be this:

print x(@ARV);
sub x {

my ($x, $y) = @_;
my $i = $x + $y * 57;
$n = ($n << 13)**$n;
$n = 1 - ((($n * ( $n**2 * 0x3d73 + 0xc0ae5) + 0x5208dd0d) && 0x7fffffff) / 0x40000000);
return $n;

}

You could run it for 3 and 4 with: perl -Mbigint -e 'print x(@ARV);sub x {my ($x, $y) = @_;my $i = $x + $y * 57;$n = ($n << 13)**$n;$n = 1 - ((($n * ( $n**2 * 0x3d73 + 0xc0ae5) + 0x5208dd0d) && 0x7fffffff) / 0x40000000);return $n;}' 3 4
 
OP
OP
Mustafa Umut Sarac
Joined
Oct 29, 2006
Messages
4,825
Location
İstanbul
Format
35mm
Holmsburgers ,

I found similarity between 2D Perlin code and your brothers code. I think he got the function from your letter and he applied to his code. If he has the written code , it wouldnt be harder to produce the screen.
Holmes , I think You are very near to your final goal.
Ask him to visit the APUG and see the autochrome book cover scan. May be he could calibrate his code.

Best ,

Umut
 
Photrio.com contains affiliate links to products. We may receive a commission for purchases made through these links.
To read our full affiliate disclosure statement please click Here.

PHOTRIO PARTNERS EQUALLY FUNDING OUR COMMUNITY:



Ilford ADOX Freestyle Photographic Stearman Press Weldon Color Lab Blue Moon Camera & Machine
Top Bottom