Keywords: Bump map vs isosurface3.png Created with Persistence of Vision 3D computer graphics bumps wrinkles and dents on the surface of an object can be simulated by using bump mapping A bump map changes the way the surface appears to reflect or refract light and can increase the realism of computer-generated images without significantly increasing render times The technique is limited in that it does not actually modify the shape of the underlying object On the left a mathematical function defining a bump map simulates a crumbling surface on a sphere but the object's outline and shadow remain those of a perfect sphere On the right the same function is used to modify the surface of a sphere by generating an isosurface This actually models a sphere with a bumpy surface with the result that both its outline and its shadow are rendered realistically POV-Ray code <syntaxhighlight lang povray > version 3 6; declare rad 1; global_settings assumed_gamma 1 0 ambient_light 0 if rad radiosity pretrace_start 0 08 // start pretrace at this size pretrace_end 0 04 // end pretrace at this size count 35 // higher -> higher quality 1 1600 35 nearest_count 5 // higher -> higher quality 1 10 5 error_bound 1 8 // higher -> smoother less accurate 1 8 recursion_limit 3 // how much interreflections are calculated 1 5+ 3 low_error_factor 5 // reduce error_bound during last pretrace step gray_threshold 0 0 // increase for weakening colors 0 1 0 minimum_reuse 0 015 // reuse of old radiosity samples 0 015 brightness 4 // brightness of radiosity effects 0 1 1 adc_bailout 0 01/2 normal on // take surface normals into account off media off // take media into account off always_sample on // turn sampling in final trace off on max_sample 1 0 // maximum brightness of samples end if rad fog fog_type 1 distance 9 rgb 0 turbulence 5 end // ---------------------------------------- camera location <0 0 1 5 -4> direction z right x image_width/image_height look_at <0 0 0 -1 4> // focal blur camera if rad aperture 2 blur_samples 125 focal_point <0 0 - 9> confidence 0 99 variance 1/20000 end light_source <6 2 5 -6> color rgb <1 1 1> 3 area_light <1 0 0> <0 0 1> if rad 2 2 else 2 2 end orient circular light_source <-9 7 5 -6> color rgb <1 1 1> 5 area_light <3 0 0> <0 0 3> if rad 5 5 else 2 2 end orient circular light_source <0 100 80> color rgb <1 1 1> area_light <1 0 0> <0 0 1> if rad 2 2 else 2 2 end orient circular // ---------------------------------------- box <-35 -2 -3> <35 -1 38> pigment color rgb 1 finish ambient 0 declare mytex texture pigment bozo colour_map 0 colour rgb < 3 1 05> 0 25 colour rgb < 32 08 06> 0 5 colour rgb < 3 1 05> 75 colour rgb < 28 12 04> 1 colour rgb < 3 1 05> scale 15 turbulence 2 75 finish specular 0 1 roughness 0075 diffuse 70 ambient 0 reflection 0 0 include functions inc declare function2 function f_agate x/ 5 y/ 5 z/ 5 1 declare function3 function x y z Radius xoff yoff zoff pow x-xoff 2 +pow y-yoff 2 +pow z-zoff 2 -pow Radius 2 declare ball isosurface function function3 x y z 1 0 0 0 -function2 x y z 1 // 71 max_gradient 8 contained_by sphere 0 1 5 texture mytex translate x 1 5 object ball translate <0 0 0> sphere 0 1 texture mytex //normal bozo scale 5 normal function function2 x y z 10 25 accuracy 0002 bump_size 1 5 rotate -y 32 translate -x 1 5 </syntaxhighlight> own GDallimore 2011-01-04 thumb left thumb left Spheres Demo effects Bump mapping Ray tracing Widescreen desktop backgrounds Isosurfaces 3D test models Images with Povray source code |