摘要
rotierende sonic coins
许可协议
Source code
Image generated using POV-Ray for Windows 3.6; resulting slides were converted to an animated GIF using GIMP 2.3.6.
rings.pov
//------------------------------------------------------------
// Copyright 2006 DavidHOzAu
//------------------------------------------------------------
// This work is licensed under the Creative Commons Attribution ShareAlike License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/
//------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "metals.inc"
#include "stones.inc"
#include "golds.inc"
global_settings {
photons {
count 2000
autostop 0.5
jitter .4
}
radiosity {
normal on
count 100
recursion_limit 5
error_bound 1
low_error_factor 1
brightness 1.5
}
ambient_light rgb 1/3
}
#declare seer = <4, 4, -9>;
camera {
location seer
up <0, 1, 0>
right <4/3, 0, 0>
angle 34
look_at <0.75, 0.5, 0>
}
light_source {
<13, 13, -5>
color rgb <1.4, 1.3, 1.2>
fade_distance 15
fade_power 2
photons {
refraction off
reflection on
}
area_light <.4, 0, 0>, <0, 0, .4>, 5, 5
}
light_source {
<20, 0, -5>
color rgb 1
fade_distance 15
fade_power 2
photons {
refraction off
reflection on
}
area_light <.4, 0, 0>, <0, 0, .4>, 5, 5
shadowless
}
light_source {
seer
color rgb 1
fade_distance 2
fade_power 2
photons {
refraction off
reflection on
}
shadowless
}
background {
color 0
}'''para voce que tem os olhos redondos rssss'''
#declare MarbleFloorTex1 = texture {
T_Grnt9
finish {
reflection 0.25
ambient rgb 0.5
}
scale 10
}
#declare MarbleFloorTex2 = texture {
T_Stone10//T_Stone17
//pigment { color Gray75 }
finish {
reflection 0.25
ambient rgb 0.5
}
scale 10
}
// FloorBuilder
#macro FloorBuilder (vc, dm, nmx, nmz, sc, of)
#local ix = 0;
#while (ix < nmx)
#local iz = 0;
#while (iz < nmz)
box {
<ix*dm, -0.1, iz*dm>
<(ix+1)*dm, 0, (iz+1)*dm>
#if (mod(ix + iz, 2) = 0)
texture {
MarbleFloorTex1
scale sc
translate <of*ix*sc*dm, 0, of*iz*sc*dm>
}
#else
texture {
MarbleFloorTex2
scale sc
translate <of*ix*sc*dm, 0, of*iz*sc*dm>
}
#end
translate <-nmx*dm/2, 0, -nmz*dm/2>
translate vc
photons {
target
}
}
#local iz = iz + 1;
#end
#local ix = ix + 1;
#end
#end
FloorBuilder(<0, -10, 0>, 10, 100, 100, 15, 2)
// Classic-style ring is an intersection of three torus
#macro SonicRing(d, r, f)
intersection {
object {
torus {
d + (r*f*sqrt(3)/2), r
sturm
}
translate -y*r*f/2
}
object {
torus {
d + (r*f*sqrt(3)/2), r
sturm
}
translate y*r*f/2
}
object {
torus {
d-(r*f), r
sturm
}
}
rotate 90*z
}
#end
#macro SonicRingRotate(d, r, f, a)
merge{
SonicRing(d, r, f)
scale 0.5
rotate 180*y*(clock+a)
#end
#macro GlowRing(d, r, f, a, tr)
#local sinmul = 1/8*pow(f-sqrt(-3*pow(f,2)+4),2)*sqrt(3);
#local cosmul = sqrt(1 - pow(sinmul,2));
object {
SonicRingRotate(d, r, f, a)
texture {
pigment {
color <1.00, 1.0, 0.5>
}
finish {
ambient <0.4, 0.3, 0.2>
}
}
photons {
target
reflection on
}
translate tr
}
#end
// Three rings in a row
GlowRing(2, 1, 0.25, 0.0, 0)
GlowRing(2, 1, 0.25, 0.0, <0, 0, 4>)
GlowRing(2, 1, 0.25, 0.0, <0, 0, 8>)
rings.ini
Final_Frame=9
Cyclic_Animation=on
Input_File_Name=ring.pov