Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
  CSG - Constructive Solid Geometry
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial
- Download-Seite

  - CSG Constructive
            Solid
            Geometry
    - union + merge
    - difference
    - intersection
       + invers
    - clipped_by
    - Koinzidenzprobleme
   > Texturen u. CSG
                                           
Boolesche Algebra mit Körpern - Teil VII

Über Texturen bei CSG-Objekten

Probleme, die sich mit strukturierten Texturen bei allen Arten von csg-Objekten ergeben können:
  Bei durch "union" verbundenen Körpern behalten die einzelnene Teilkörper ihre ursprüngliche Textur bei. Bei Körpern, die durch Differenz oder Schnittmenge ('intersection') gebildet werden, erhält der Körper an den ab- oder ausgeschnittenen Körperparien die Textur des dort jeweils davon subtrahierten Körpers.
  Will man ein csg-Objekt mit einer durchgängigen strukturierten Textur versehen, so sollte die Texturierung des Objektes möglichst erst am Ende der union, difference oder intersection für den gesamten Körper zusammen erfolgen. Dies spart nicht nur Schreibarbeit, sondern garantiert auch die Durchgängigkeit von strukturierten Mustern. Eine andere elegante Methode bietet das Schüsselwort "cutaway_textures" (vgl. unterstes Beispiel).

Beispiele:
Texturen bei Differenzbildung
difference{
  box   { <0,0,0>,<1,1,1>
          texture{ My_YellowGreen }
        }
  sphere{ <0,0,0>,0.5
          texture{ My_Yellow } 
          translate<1,1,0>
        }
}// end of difference --------------
Unterbrochene Maserung
difference{
  box   { <0,0,0>,<1,1,1>
          texture{ My_Wood } 
        }
  sphere{ <0,0,0>,0.5
          texture{ My_Wood } 
          translate<1,1,0>
        }
}// end of difference -------------
Durchgehende Maserung
Einzelkörper ohne Textur,
gemeinsame Textur am Ende definiert.
difference{
  box   { <0,0,0>,<1,1,1>
        }
  sphere{ <0,0,0>,0.5
          translate<1,1,0>
        }
  texture{ My_Wood } 
}// end of difference -------------
Durchgehende Maserung
Verwendet "cutaway_textures",
Textur des Grundkörpers wird verwendet.
difference{
  box   { <0,0,0>,<1,1,1>
          texture{ My_Wood }
        }
  sphere{ <0,0,0>,0.5
          translate<1,1,0>
        }
cutaway_textures
}// end of difference --------------


Texturen bei "difference"
 
Unterbrochene Maserung
 
Durchgängige Maserung


CSG | union + merge | difference | intersection + inverse | clipped_by | Koinzidenz | Texturen
top

© Friedrich A. Lohmüller, 2012
www.f-lohmueller.de