|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
// Test for fast clouds
// Gilles Tran 8/4/2002 (www.oyonale.com)
// Feel free to use, modify etc.
#version 3.5;
#include "colors.inc"
global_settings{max_trace_level 50}
light_source {
-z*10000
White*2
rotate x*60
rotate y*90
}
camera {
location <0.0, 0, -60>
direction z*8
right image_width/image_height*x
look_at y*3+z*10
}
#declare SkyBlue=rgb <135,142,238>/255;
//#declare SkyBlue=rgb <135,172,238>/255;
#macro colCloud(Color,P,S,T)
rgbf <pow(Color.x,P)*S,pow(Color.y,P)*S,pow(Color.z,P)*S,T>
#end
#declare colCloud1=colCloud(SkyBlue,0.3,0.6,0.8); // shadow
#declare colCloud2=colCloud(SkyBlue,0.3,0.8,0.5);
#declare colCloud3=colCloud(SkyBlue,0.2,1,0.3);
#declare colCloud4=colCloud(SkyBlue,0.1,1.2,0.1); // white
#declare colBack=Clear;
// the clouds pigment
// because it's based on the cylindrical pattern, translating the pattern
along the z axis changes the shape of the cloud
#macro mPigCloud(S1,S2) // S1 and S2 are the cloud length and height
#local Turb=0.35+rand(rd)*0.2;
#local Lambda=3+rand(rd);
pigment{
pigment_pattern{
cylindrical
scale <S1,1,S2>
warp{turbulence Turb lambda Lambda}
rotate -x*90
}
pigment_map{
[0.4 color colBack]
[0.5
pigment_pattern{
function{min(1,max(0,y))}
warp{turbulence Turb lambda Lambda}
rotate -z*20 // tilts the higlights to the right
}
pigment_map{
[0
pigment_pattern{
cylindrical
scale <S1,1,S2>
warp{turbulence Turb lambda Lambda}
rotate x*-90
}
pigment_map{
[0 color Clear]
[0.7 colCloud1]
[1 color colCloud2]
}
]
[0.7 colCloud4]
}
]
}
}
finish{ambient 1 diffuse 0}
#end
#declare i=0;
#declare rd=seed(1);
#declare NZ=6;
#declare LZ=6;
#declare Nuage0=union{ // basic cloud square
triangle{0,y,x+y}
triangle{0,x,x+y}
hollow
translate -x*0.5-y*.5
scale 5
no_shadow
}
union{
#while (i<10)
#debug concat(str(i,0,0),"\n")
#declare j=0;
#declare zC=i*40;
#while (j<NZ)
#declare Nuage=union{ // 3 subclouds
object{Nuage0
texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
#declare SN1=0.4+rand(rd)*0.4;
scale SN1
}
object{Nuage0
texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
#declare SN2=0.4+rand(rd);
scale SN2
translate <2*rand(rd),0,-2>
}
object{Nuage0
texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
#declare SN3=0.4+rand(rd);
scale SN3
translate <-2*rand(rd),0,-1>
}
}
union{
object{Nuage clipped_by{plane{y,0 inverse}}}
object{Nuage clipped_by{plane{y,0}} scale <1,0.5,1>} //
makes the bottom flatter
scale (1+rand(rd))
translate
<-LZ+(j/(NZ-1))*(2*LZ)+(0.5-rand(rd))*5,0,zC+rand(rd)+(0.5-rand(rd))*i*60>
}
#declare j=j+1;
#end
#declare i=i+1;
#declare NZ=NZ+i*2;
#declare LZ=LZ+4*i;
#end
translate y*4
}
sky_sphere{
pigment{
gradient y
poly_wave 0.1
color_map{
[0 color SkyBlue*2]
[1 color SkyBlue*0.3]
}
}
rotate x*2
}
fog{colCloud(SkyBlue,0.3,1,0) fog_type 2 distance 400 fog_alt 8}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Merci Gilles
en plus c'est rapide comme rendu !
Thanks Gilles
It is fast render !
--
Martial
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi folks--
I have made some changes to the fast clouds code. I have added some variables
that I believe make this code more usable for regular folks. I have enclosed
a sample scene file that I think will run if you have pov version 3.5 beta.
In the code I have indicated where you can change variables to see how the
program works.
Below is the New_fastclouds.pov for everyone to try:
//============================================= mark here
// Persistence of Vision Ray Tracer Scene Description File
// File: ?.pov
// Vers: 3.5
// Desc: Basic Scene Example
// Date: mm/dd/yy
// Auth: ?
//
#version 3.5;
#include "colors.inc"
global_settings {
assumed_gamma 1.0
max_trace_level 255 // need this for fast_clouds2.inc
}
// ----------------------------------------
camera {
location <0.0, 0, -10.0>
direction 1.5*z
right x*image_width/image_height
look_at <0.0,3, 0.0>
angle 50
}
sky_sphere {
pigment {
gradient y
color_map {
[0.0 rgb <0.6,0.7,1.0>]
[0.7 rgb <0.0,0.1,0.8>]
}
}
}
light_source {
<0, 0, 0> // light's position (translated below)
color rgb <1, 1, 1> // light's color
translate <-30, 30, -30>
}
// ----------------------------------------
plane {
y, -1
pigment { color rgb <0.7,0.5,0.3> }
}
sphere {
0.0, 1
texture {
pigment {
radial
frequency 8
color_map {
[0.00 color rgb <1.0,0.4,0.2> ]
[0.33 color rgb <0.2,0.4,1.0> ]
[0.66 color rgb <0.4,1.0,0.2> ]
[1.00 color rgb <1.0,0.4,0.2> ]
}
}
finish{
specular 0.6
}
}
translate <0,3,0> // put this in the air
}
#declare Sunset_Sky =
pigment {
gradient y
color_map {
[-1 color rgb <1,1,0>]
[0 color rgb <1,.8,0>]
[.075 color rgb <1,.5,0>]
[.25 color rgb <.3,.25,1>]
[.35 color rgb <.1,.05,1>]
[.5 color rgb <0,0,.5>]
[1 color rgb <0,0,.25>]
}
scale <1,1,1>
rotate <0,0,0>
}
sky_sphere{
pigment{Sunset_Sky
}
pigment{
bozo
turbulence .5
color_map{
[0.0 rgbt <.5,.5,.5,.8> ]
[1.0 rgbt <1,1,1,.5> ]
}
scale .5
scale <1,1/6,1>
}
translate 0
scale 1.5
rotate <0,0,0>
}
//
=================================================================================================
// to see what these variables really do, change the fcloud_count to 10 or the
fcloud_scale_min or
//any other variable, you should see some changes!
// Thanks to Gilles for the basic code and to Chris Colfax for "how to use
variables"
//
=====================================================================================
// fast_clouds2
#declare fcloud_count = 300;
#declare fcloud_min_xtnt = <-50,0,-50>;
#declare fcloud_max_xtnt = <50,50,50>;
#declare fcloud_scale_min = <1,1,1>;
#declare fcloud_scale_max = <5,5,5>;
#declare fcloud_turb = .1;
#declare fcloud_lambda = .1;
#declare fcloud_highlight_angle = 10;
#declare fcloud_rotate = <-60,0,0>;
#declare fcloud_color = <1,.8,.8>*1.5;
//#include "i:\from_home2\my_includes\fast_clouds2.inc"
// ======================================================================
// I have inserted the inc file here, but it should be a separate file
//=======================================================================
// Test for fast clouds
// Gilles Tran 8/4/2002 (www.oyonale.com
// Feel free to use, modify etc.
#version 3.5;
#include "colors.inc"
// random number generation macros
//
#include "rand.inc"
#ifndef (fcloud_count) #declare fcloud_count = 10; #end //cloud count
#ifndef (fcloud_min_xtnt) #declare fcloud_min_xtnt = <-10,0,-10>; #end //min
vect of box
#ifndef (fcloud_max_xtnt) #declare fcloud_max_xtnt = < 10,10,10>; #end //max
vect of box
#ifndef (fcloud_scale_min) #declare fcloud_scale_min = 1; #end //lower cloud
scale
#ifndef (fcloud_scale_max) #declare fcloud_scale_max = 4; #end //upper cloud
scale
#ifndef (fcloud_turb) #declare fcloud_turb = .1; #end //cloud turbulence
#ifndef (fcloud_lambda) #declare fcloud_lambda = .1; #end //lower is smoother
#ifndef (fcloud_highlight_angle) #declare fcloud_highlight_angle = -20; #end
//lower is smoother
#ifndef (fcloud_rotate) #declare fcloud_rotate = 0;#end //individual cloud
rotation
#ifndef (fcloud_color) #declare fcloud_color = <1,1,1>;#end
#declare SkyBlue=rgb <135,142,238>/255;
//#declare SkyBlue=rgb <135,172,238>/255;
#macro colCloud(Color,P,S,T)
rgbf <pow(Color.x,P)*S,pow(Color.y,P)*S,pow(Color.z,P)*S,T>
#end
#declare colCloud1=colCloud(SkyBlue,0.3,0.6,0.8); // shadow
#declare colCloud2=colCloud(SkyBlue,0.3,0.8,0.5);
#declare colCloud3=colCloud(SkyBlue,0.2,1,0.3);
#declare colCloud4=colCloud(SkyBlue,0.1,1.2,0.1); // white
#declare colBack=Clear;
// the clouds pigment
// because it's based on the cylindrical pattern, translating the pattern
//along the z axis changes the shape of the cloud
#macro mPigCloud(S1,S2) // S1 and S2 are the cloud length and height
#local Turb=0.35+rand(rd)*fcloud_turb;
#local Lambda=3+rand(rd)*fcloud_lambda; //cloud smoothness
pigment{
pigment_pattern{
cylindrical
scale <S1,1,S2>
warp{turbulence Turb lambda Lambda octaves 4}
rotate -x*90
}
pigment_map{
[0.4 color colBack]
[0.5
pigment_pattern{
function{min(1,max(0,y))}
warp{turbulence Turb lambda Lambda}
rotate -z*fcloud_highlight_angle // tilts the higlights to
the right
}
pigment_map{
[0
pigment_pattern{
cylindrical
scale <S1,1,S2>
warp{turbulence Turb lambda Lambda}
rotate x*-90
}
pigment_map{
[0 color Clear]
[0.7 colCloud1]
[1 color colCloud2]
}
]
[0.7 colCloud4]
}
]
}
}
finish{ambient fcloud_color diffuse 0 brilliance 100}
#end
#declare i=0;
#declare rd=seed(1);
#declare Nuage0=union{ // basic cloud square
triangle{0,y,x+y}
triangle{0,x,x+y}
hollow
translate -x*0.5-y*.5
scale 5
no_shadow
}
#debug concat(str(i,0,0),"\n")
#declare j=0;
#declare Nuage=union{
#while (j<fcloud_count)
object{Nuage0 rotate fcloud_rotate
texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate
z*100*rand(rd)}
#declare SN2=0.4+rand(rd)*.3;
scale SN2*RRand(fcloud_scale_min,fcloud_scale_max,RdmB)
translate
VRand_In_Box(fcloud_min_xtnt,fcloud_max_xtnt,RdmA)
}
#declare j=j+1;
#end
}
//=======================================================================================
// end of .inc file
//=======================================================================================
object{Nuage rotate <0,0,0>
scale <10,3,10>
translate <3,80,0>
//scale <3,2,3>
}
//==================================cut here
I have also attached it.
Thank you,
Jeff
Gilles Tran wrote:
> // Test for fast clouds
> // Gilles Tran 8/4/2002 (www.oyonale.com)
> // Feel free to use, modify etc.
> #version 3.5;
> #include "colors.inc"
> global_settings{max_trace_level 50}
>
> light_source {
> -z*10000
> White*2
> rotate x*60
> rotate y*90
> }
> camera {
> location <0.0, 0, -60>
> direction z*8
> right image_width/image_height*x
> look_at y*3+z*10
> }
> #declare SkyBlue=rgb <135,142,238>/255;
> //#declare SkyBlue=rgb <135,172,238>/255;
>
> #macro colCloud(Color,P,S,T)
> rgbf <pow(Color.x,P)*S,pow(Color.y,P)*S,pow(Color.z,P)*S,T>
> #end
>
> #declare colCloud1=colCloud(SkyBlue,0.3,0.6,0.8); // shadow
> #declare colCloud2=colCloud(SkyBlue,0.3,0.8,0.5);
> #declare colCloud3=colCloud(SkyBlue,0.2,1,0.3);
> #declare colCloud4=colCloud(SkyBlue,0.1,1.2,0.1); // white
>
> #declare colBack=Clear;
> // the clouds pigment
> // because it's based on the cylindrical pattern, translating the pattern
> along the z axis changes the shape of the cloud
> #macro mPigCloud(S1,S2) // S1 and S2 are the cloud length and height
> #local Turb=0.35+rand(rd)*0.2;
> #local Lambda=3+rand(rd);
> pigment{
> pigment_pattern{
> cylindrical
> scale <S1,1,S2>
> warp{turbulence Turb lambda Lambda}
> rotate -x*90
> }
> pigment_map{
> [0.4 color colBack]
> [0.5
> pigment_pattern{
> function{min(1,max(0,y))}
> warp{turbulence Turb lambda Lambda}
> rotate -z*20 // tilts the higlights to the right
> }
> pigment_map{
> [0
>
> pigment_pattern{
> cylindrical
> scale <S1,1,S2>
> warp{turbulence Turb lambda Lambda}
> rotate x*-90
> }
> pigment_map{
> [0 color Clear]
> [0.7 colCloud1]
> [1 color colCloud2]
> }
>
> ]
> [0.7 colCloud4]
> }
> ]
> }
> }
> finish{ambient 1 diffuse 0}
>
> #end
> #declare i=0;
> #declare rd=seed(1);
> #declare NZ=6;
> #declare LZ=6;
> #declare Nuage0=union{ // basic cloud square
> triangle{0,y,x+y}
> triangle{0,x,x+y}
> hollow
> translate -x*0.5-y*.5
> scale 5
> no_shadow
> }
> union{
> #while (i<10)
> #debug concat(str(i,0,0),"\n")
> #declare j=0;
> #declare zC=i*40;
> #while (j<NZ)
> #declare Nuage=union{ // 3 subclouds
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN1=0.4+rand(rd)*0.4;
> scale SN1
>
> }
>
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN2=0.4+rand(rd);
> scale SN2
> translate <2*rand(rd),0,-2>
> }
>
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN3=0.4+rand(rd);
> scale SN3
> translate <-2*rand(rd),0,-1>
> }
> }
> union{
> object{Nuage clipped_by{plane{y,0 inverse}}}
> object{Nuage clipped_by{plane{y,0}} scale <1,0.5,1>} //
> makes the bottom flatter
> scale (1+rand(rd))
> translate
> <-LZ+(j/(NZ-1))*(2*LZ)+(0.5-rand(rd))*5,0,zC+rand(rd)+(0.5-rand(rd))*i*60>
> }
> #declare j=j+1;
> #end
> #declare i=i+1;
> #declare NZ=NZ+i*2;
> #declare LZ=LZ+4*i;
> #end
> translate y*4
> }
>
> sky_sphere{
> pigment{
> gradient y
> poly_wave 0.1
> color_map{
> [0 color SkyBlue*2]
> [1 color SkyBlue*0.3]
> }
> }
> rotate x*2
> }
>
> fog{colCloud(SkyBlue,0.3,1,0) fog_type 2 distance 400 fog_alt 8}
Post a reply to this message
Attachments:
Download 'new_fastclouds.pov.txt' (7 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Gilles Tran wrote:
> // Test for fast clouds
> // Gilles Tran 8/4/2002 (www.oyonale.com)
> // Feel free to use, modify etc.
> #version 3.5;
> #include "colors.inc"
> global_settings{max_trace_level 50}
>
> light_source {
> -z*10000
> White*2
> rotate x*60
> rotate y*90
> }
> camera {
> location <0.0, 0, -60>
> direction z*8
> right image_width/image_height*x
> look_at y*3+z*10
> }
> #declare SkyBlue=rgb <135,142,238>/255;
> //#declare SkyBlue=rgb <135,172,238>/255;
>
> #macro colCloud(Color,P,S,T)
> rgbf <pow(Color.x,P)*S,pow(Color.y,P)*S,pow(Color.z,P)*S,T>
> #end
>
> #declare colCloud1=colCloud(SkyBlue,0.3,0.6,0.8); // shadow
> #declare colCloud2=colCloud(SkyBlue,0.3,0.8,0.5);
> #declare colCloud3=colCloud(SkyBlue,0.2,1,0.3);
> #declare colCloud4=colCloud(SkyBlue,0.1,1.2,0.1); // white
>
> #declare colBack=Clear;
> // the clouds pigment
> // because it's based on the cylindrical pattern, translating the pattern
> along the z axis changes the shape of the cloud
> #macro mPigCloud(S1,S2) // S1 and S2 are the cloud length and height
> #local Turb=0.35+rand(rd)*0.2;
> #local Lambda=3+rand(rd);
> pigment{
> pigment_pattern{
> cylindrical
> scale <S1,1,S2>
> warp{turbulence Turb lambda Lambda}
> rotate -x*90
> }
> pigment_map{
> [0.4 color colBack]
> [0.5
> pigment_pattern{
> function{min(1,max(0,y))}
> warp{turbulence Turb lambda Lambda}
> rotate -z*20 // tilts the higlights to the right
> }
> pigment_map{
> [0
>
> pigment_pattern{
> cylindrical
> scale <S1,1,S2>
> warp{turbulence Turb lambda Lambda}
> rotate x*-90
> }
> pigment_map{
> [0 color Clear]
> [0.7 colCloud1]
> [1 color colCloud2]
> }
>
> ]
> [0.7 colCloud4]
> }
> ]
> }
> }
> finish{ambient 1 diffuse 0}
>
> #end
> #declare i=0;
> #declare rd=seed(1);
> #declare NZ=6;
> #declare LZ=6;
> #declare Nuage0=union{ // basic cloud square
> triangle{0,y,x+y}
> triangle{0,x,x+y}
> hollow
> translate -x*0.5-y*.5
> scale 5
> no_shadow
> }
> union{
> #while (i<10)
> #debug concat(str(i,0,0),"\n")
> #declare j=0;
> #declare zC=i*40;
> #while (j<NZ)
> #declare Nuage=union{ // 3 subclouds
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN1=0.4+rand(rd)*0.4;
> scale SN1
>
> }
>
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN2=0.4+rand(rd);
> scale SN2
> translate <2*rand(rd),0,-2>
> }
>
> object{Nuage0
> texture{mPigCloud(2+rand(rd),0.5+rand(rd))translate z*100*rand(rd)}
> #declare SN3=0.4+rand(rd);
> scale SN3
> translate <-2*rand(rd),0,-1>
> }
> }
> union{
> object{Nuage clipped_by{plane{y,0 inverse}}}
> object{Nuage clipped_by{plane{y,0}} scale <1,0.5,1>} //
> makes the bottom flatter
> scale (1+rand(rd))
> translate
> <-LZ+(j/(NZ-1))*(2*LZ)+(0.5-rand(rd))*5,0,zC+rand(rd)+(0.5-rand(rd))*i*60>
> }
> #declare j=j+1;
> #end
> #declare i=i+1;
> #declare NZ=NZ+i*2;
> #declare LZ=LZ+4*i;
> #end
> translate y*4
> }
>
> sky_sphere{
> pigment{
> gradient y
> poly_wave 0.1
> color_map{
> [0 color SkyBlue*2]
> [1 color SkyBlue*0.3]
> }
> }
> rotate x*2
> }
>
> fog{colCloud(SkyBlue,0.3,1,0) fog_type 2 distance 400 fog_alt 8}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|