Talar97

[GK] Lab03

Mar 18th, 2018
572
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "colors.inc"
  2. #include "stones.inc"
  3. #include "textures.inc"
  4. #include "metals.inc"
  5.  
  6. //Praca, na której się wzorowałem: https://i.imgur.com/9cWcK2B.jpg
  7. /*  
  8.     Ustawienie kamery:
  9.     location <-8, 4, -7>
  10.     look_at <-1,1,0>
  11.     angle 30
  12.    
  13.     location <0, 7, 0>
  14.     look_at <0,0,0>
  15.     angle 0
  16. */
  17.  
  18. camera {
  19.     location <0, 7, 0>
  20.     look_at <0,0,0>
  21.     angle 0
  22. }
  23.  
  24. light_source {
  25.     <0, 10, 0>
  26.     color White
  27.     //area_light <5, 0, 0>, <0, 0, 5>, 5, 5
  28.     adaptive 1
  29.     jitter
  30. }
  31.  
  32. plane{
  33.     <0,1,0>, -1.5
  34.     pigment { checker White White }
  35. }
  36.  
  37.  
  38. //Stół
  39. #declare stol = union{
  40.     //szklany blat stołu
  41.     box{
  42.         <0,0,0>,
  43.         <5,0.05,3>          
  44.         //pigment { Red }
  45.         texture { Glass }
  46.     }
  47.    
  48.     //drewniane elementy stołu
  49.     box{
  50.         <0,0,0>
  51.         <5, 0.2, 2.5>
  52.         texture { DMFWood1 }
  53.         translate <0,-.2001,0.25>
  54.     }
  55.     box{
  56.         <0,0,0>
  57.         <0.2,0.25,3>
  58.         texture { DMFWood1 scale .5 }
  59.         translate <-0.2,-.2,0>
  60.     }
  61.     box{
  62.         <0,0,0>
  63.         <0.2,0.25,3>
  64.         texture { DMFWood1 scale .5 }
  65.         translate <5,-.2,0>
  66.     }
  67.    
  68.     //Nogi
  69.     box{
  70.         <0,0,0>
  71.         <0.2,0.25,3>
  72.         //pigment { Red }
  73.         texture { DMFWood1 scale 1.25 }
  74.         translate <-.2,0,0.2>
  75.         rotate <90,0,0>
  76.     }
  77.    
  78.     box{
  79.         <0,0,0>
  80.         <0.2,0.25,3>
  81.         //pigment { Red }
  82.         texture { DMFWood1 scale 1.25 }
  83.         translate <-.2,2.75,0.2>
  84.         rotate <90,0,0>
  85.     }
  86.    
  87.     box{
  88.         <0,0,0>
  89.         <0.2,0.25,3>
  90.         //pigment { Red }
  91.         texture { DMFWood1 scale 1.25 }
  92.         translate <5,0,0.2>
  93.         rotate <90,0,0>
  94.     }
  95.    
  96.     box{
  97.         <0,0,0>
  98.         <0.2,0.25,3>
  99.         //pigment { Red }
  100.         texture { DMFWood1 scale 1.25 }
  101.         translate <5,2.75,0.2>
  102.         rotate <90,0,0>
  103.     }
  104.    
  105.    
  106.     translate <-2,1,0>
  107.     //rotate <0,90,0>
  108. }
  109.  
  110. //talerz
  111. #declare talerz = union{
  112.     lathe {
  113.         cubic_spline
  114.         4,
  115.         <0,0>, <1,1>, <2.45,1.45>,<.8,.8>
  116.         finish {
  117.             ambient .3
  118.             phong .75
  119.         }
  120.         pigment { White }
  121.     }
  122.    
  123.     cylinder{
  124.         <0,0,0>
  125.         <0,0.05,0>
  126.         1.1
  127.         translate <0,1,0>
  128.     }
  129.     scale .2
  130.     pigment { White }
  131.     rotate <0,0,0>
  132. }
  133.  
  134. //Kubek1
  135. #declare kubek1 = union{
  136.     difference{
  137.         cylinder{
  138.             <0,1,0>
  139.             <0,0,0>
  140.             .5
  141.         }
  142.         cylinder{
  143.             <0,1,0>
  144.             <0,0,0>
  145.             .435
  146.             translate <0,.1,0>
  147.         }
  148.     }
  149.     difference{
  150.        cylinder{
  151.             <0,.2,0>
  152.             <0,0,0>
  153.             .4
  154.        }
  155.        cylinder{
  156.             <0,.5,0>
  157.             <0,-.1,0>
  158.             .35
  159.        }
  160.        box{
  161.             <0,-.1,0>
  162.             <1,1,1>
  163.             translate <-.2,0,-.2>
  164.             rotate <0,0,90>
  165.        }
  166.        rotate <90, 0, 145>
  167.        translate <-.5, .5, 0>
  168.     }
  169.     pigment { White }
  170.     translate <-1,0,-1>
  171.     finish {
  172.       ambient .2
  173.       diffuse .6
  174.       reflection {
  175.           .05
  176.           metallic
  177.         }
  178.     }
  179.     scale .2
  180.     rotate<0,225,0>
  181. }
  182.  
  183. //Kubek2
  184. #declare kubek2 = union{
  185.     difference{
  186.         cylinder{
  187.             <0,1,0>
  188.             <0,0,0>
  189.             .5
  190.         }
  191.         cylinder{
  192.             <0,1,0>
  193.             <0,0,0>
  194.             .435
  195.             translate <0,.1,0>
  196.         }
  197.     }
  198.     difference{
  199.        cylinder{
  200.             <0,.2,0>
  201.             <0,0,0>
  202.             .4
  203.        }
  204.        cylinder{
  205.             <0,.5,0>
  206.             <0,-.1,0>
  207.             .35
  208.        }
  209.        box{
  210.             <0,-.1,0>
  211.             <1,1,1>
  212.             translate <-.2,0,-.2>
  213.             rotate <0,0,90>
  214.        }
  215.        rotate <90, 0, 145>
  216.        translate <-.5, .5, 0>
  217.     }
  218.     pigment { White }
  219.     translate <-1,0,-1>
  220.     finish {
  221.       ambient .2
  222.       diffuse .6
  223.       reflection {
  224.           .05
  225.           metallic
  226.         }
  227.     }
  228.     scale .2
  229.     rotate<0,60,0>
  230. }
  231.  
  232. #declare wazon = union{
  233.     lathe {
  234.         cubic_spline //rodzaj krawedzi
  235.         6, //liczba punktow
  236.         <0,0>, <1,0>, <1,2>, <1,2>, <1.1,3>, <1,2> //punkty kontrolne pigment { Blue }
  237.         finish {
  238.             ambient .3
  239.             phong .75
  240.         }
  241.         pigment { Brown_Agate scale .2}
  242.     }
  243.     cylinder{
  244.         <0,0,0>
  245.         <0,0.05,0>
  246.         1
  247.         pigment { Black }
  248.         //translate <0,-1,0>
  249.     }
  250.     cylinder{
  251.         <0,0,0>
  252.         <0,0.05,0>
  253.         1
  254.         texture { Water }
  255.         translate <0,2.8,0>
  256.     }
  257.     scale .2
  258. }
  259.  
  260. #declare szklanka = union{
  261.     difference{
  262.         cylinder{
  263.             <0,1.2,0>
  264.             <0,0,0>
  265.             .4
  266.         }
  267.         cylinder{
  268.             <0,1.2,0>
  269.             <0,0,0>
  270.             .335
  271.             translate <0,.1,0>
  272.         }
  273.     }
  274.     texture { Glass }
  275.     scale .2
  276. }
  277.  
  278. #declare  lyzka1 = union{
  279.     //Rączka
  280.     box{
  281.         <0,0,0>
  282.         <.25,2.35,.1>
  283.         translate <-.13,.65,0>
  284.     }
  285.     //Zaokrąglona część
  286.     difference{
  287.         sphere{
  288.             <0,0,0>
  289.             .6
  290.         }
  291.         box{
  292.             <0,-1,0>
  293.             <2,1,1>
  294.             translate <-.7,-.4,-1>
  295.         }
  296.        
  297.         sphere{
  298.             <0,0,0>
  299.             .55
  300.             translate <0,0,0.05>
  301.         }
  302.         scale <0,1.2,.8>
  303.     }
  304.     texture { Chrome_Metal }
  305.         finish {
  306.                 ambient .1
  307.                 diffuse .1
  308.                 specular 1
  309.                 roughness .001
  310.                 reflection {
  311.                 .75
  312.                 metallic
  313.                 }
  314.         }
  315.     translate<0,-.5,0>
  316.     rotate<270,0,180>
  317.     scale .1
  318. }
  319.  
  320. #declare  lyzka2 = union{
  321.     //Rączka
  322.     box{
  323.         <0,0,0>
  324.         <.25,2.35,.1>
  325.         translate <-.13,.65,0>
  326.     }
  327.     //Zaokrąglona część
  328.     difference{
  329.         sphere{
  330.             <0,0,0>
  331.             .6
  332.         }
  333.         box{
  334.             <0,-1,0>
  335.             <2,1,1>
  336.             translate <-.7,-.4,-1>
  337.         }
  338.        
  339.         sphere{
  340.             <0,0,0>
  341.             .55
  342.             translate <0,0,0.05>
  343.         }
  344.         scale <0,1.2,.8>
  345.     }
  346.     texture { Chrome_Metal }
  347.         finish {
  348.                 ambient .1
  349.                 diffuse .1
  350.                 specular 1
  351.                 roughness .001
  352.                 reflection {
  353.                 .75
  354.                 metallic
  355.                 }
  356.         }
  357.     translate<0,-.5,0>
  358.     rotate<90,0,0>
  359.     scale .1
  360. }
  361.  
  362. #declare duza_miska = sor {
  363.     5
  364.     <0.00000, 0.11576>,
  365.     <0.00540, 0.06286>,
  366.     <0.40867, 0.12891>,
  367.     <0.49523, 0.39240>,
  368.     <0.38466, 0.76153>
  369.     open
  370.     sturm
  371.     pigment { Red }
  372. }
  373.  
  374. #declare mala_miska = sor {
  375.     5
  376.     <0.42675, 1.05942>,
  377.     <0.00000, 0.04321>,
  378.     <0.11033, 0.04502>,
  379.     <0.18136, 0.14398>,
  380.     <0.25000, 0.93301>
  381.     open
  382.     sturm
  383.     pigment { Green }
  384.     scale 1.3
  385. }
  386.  
  387. #declare wazon2 =  union{
  388.     sor {
  389.         9
  390.         <0.00000, 0.00000>,
  391.         <0.00000, 0.00000>,
  392.         <0.14704, 0.00686>,
  393.         <0.31266, 0.45682>,
  394.         <0.22961, 0.58551>,
  395.         <0.14077, 0.69324>,
  396.         <0.09634, 0.86362>,
  397.         <0.08098, 1.01172>,
  398.         <0.00000, 1.00000>
  399.         open
  400.         sturm
  401.         pigment { Brown_Agate scale .1}
  402.     }
  403.     cylinder{
  404.         <0,0,0>
  405.         <0,0.05,0>
  406.         0.08
  407.         texture { Water }
  408.         translate <0,0.8,0>
  409.     }  
  410. }
  411.  
  412. #declare dzbanek = union{
  413.     sor {
  414.         9
  415.         <0.00000, 0.00000>,
  416.         <0.00000, 0.00000>,
  417.         <0.14704, 0.00686>,
  418.         <0.21429, 0.17395>,
  419.         <0.19243, 0.34032>,
  420.         <0.14718, 0.47765>,
  421.         <0.14355, 0.61293>,
  422.         <0.18498, 0.70203>,
  423.         <0.33165, 0.87443>
  424.         open
  425.         sturm
  426.     }
  427.    
  428.     difference{
  429.             cylinder{
  430.                     <0,.1,0>
  431.                     <0,0,0>
  432.                     .4
  433.             }
  434.             cylinder{
  435.                     <0,.5,0>
  436.                     <0,-.1,0>
  437.                     .35
  438.             }
  439.             box{
  440.                     <0,-.1,0>
  441.                     <1,1,1>
  442.                     translate <-.2,0,-.2>
  443.                     rotate <0,0,90>
  444.             }
  445.             rotate <90, 0, 145>
  446.             translate <-.25, .65, -.05>
  447.             scale 0.6
  448.         }
  449.     texture { pigment { White } }
  450.     rotate <0,-180,0>
  451. }
  452.  
  453.  
  454. /*TODO:
  455.     -Sztućce
  456. */
  457.  
  458. //Utworzenie zadeklarowanych obiektów
  459. object{ stol }
  460.  
  461. object{ talerz translate <-1,.85,.65>   }
  462. object{ talerz translate <-1,.85,2.35>  }
  463. object{ talerz translate <2,.85,.65>    }
  464. object{ talerz translate <2,.85,2.35>   }
  465.  
  466. object{ kubek1 translate <-.7,1.035,1.1>   }
  467. object{ kubek1 translate <2.3,1.035,1.1>   }
  468. object{ kubek2 translate <-1.2,1.035,1.85>   }
  469. object{ kubek2 translate <1.8,1.035,1.85>   }
  470.  
  471. object{ wazon2 translate<.55,1.03,1.6>}
  472.  
  473. union{
  474.     object{ szklanka translate <1,1.035,1.3> }
  475.     object{ szklanka translate <0.85,1.035,1.3> }
  476.     object{ szklanka translate <1,1.035,1.1> }
  477.     object{ szklanka translate <0.85,1.035,1.1> }
  478.     translate <-.8,0,.75>
  479. }
  480.  
  481. object{ lyzka1 translate <-.35,1.050,.55> scale <1,1,1.35>}
  482. object{ lyzka1 translate <2.65,1.050,.55> scale <1,1,1.35>}
  483. object{ lyzka2 translate <-1.65,1.050,1.7> scale <1,1,1.35>}
  484. object{ lyzka2 translate <1.35,1.050,1.7> scale <1,1,1.35>}
  485.  
  486. object { dzbanek translate <.75,1.03,1.05>}
RAW Paste Data