superellipsoid et round_box permettent de créer un cube aux arêtes arrondies.

Le superellipsoid est toujours contenu
dans un cube défini par box {<-1,-1,-1>,<1,1,1>}quelque soit la valeurs des paramètres.
Le superellipsoid se définit de la façon suivante:
superellipsoid { <e, n> ....}
Les valeurs e et n doivent être toujours supérieures à 0, et peuvent aller jusqu'à des valeurs élevées (3,  4)
Lorsque les valeurs e et n sont égales à 1, on obtient une sphère .

Lorsque la valeur e augmente de 0 à 1,  les arêtes s'arrondissent progressivement jusqu'à former un cylindre centrer sur l'axe Z.

superellipsoid { <0.1, 0.1> pigment { Red} translate y*1}
superellipsoid { <0.5, 0.1> pigment { Aquamarine }translate <2.3, 1, 0>}
superellipsoid { <1, 0.1> pigment { CadetBlue }translate <4.6, 1, 0>}

plane { y,0 texture { T_Wood11 scale <8, 1, 8> } finish { reflection 0.2}}
light_source { <5, 50, -30> color White }
camera {
location <2.3, 5, -15>
look_at <2.3, 0, 0>
angle 30}
superellipsoid
superellipsoid { <0.1, 0.1> pigment { Yellow} translate y*1}
superellipsoid { <0.1, 0.5> pigment { Pink } translate <2.3, 1, 0>}
superellipsoid { <0.1, 1> pigment { SummerSky } translate <4.6, 1, 0>}

plane { y,0 texture { T_Wood11 scale <8, 1, 8> } finish { reflection 0.2}}
light_source { <5, 50, -30> color White }
camera {
location <2.3, 5, -15>
look_at <2.3, 0, 0>
angle 30}
superellipsoid2
superellipsoid { <1, 1> pigment { Aquamarine } translate y*1}
superellipsoid { <1, 2> pigment { Pink } translate <2.3, 1, 0> }
superellipsoid { <1.5, 1> pigment { Silver } translate <4.6, 1, 0>}
superellipsoid { <1.5, 3> pigment { CadetBlue } translate <6.9, 1, 0>}

plane { y,0 texture { T_Wood11 scale <8, 1, 8> } finish { reflection 0.2}}
light_source { <5, 50, -30> color White }
light_source { <-5, 10, -30> color White*0.4 shadowless}
camera {
location <3.45, 5, -15>
look_at <3.45, 0, 0>
angle 40}

superellipsoid3

Le round_box est réalisé à partir d'une macro apparue dans Povray 3.5. Contenue dans le fichier shapes.inc, il faut donc ajouter "include shapes.inc" en début de script.
Le Round_Box à l'avantage d'être plus rapide à calculer.

object { Round_Box (<-1, 0, -1><1, 2, 1> 0.1, no )
pigment { Cyan }
rotate y*25
translate x*-2
}
La valeur 0.1 donne l'arrondi de l'arête. Cette valeur est comprise entre 0 et 1. Si cette valeur = 1, on obtient une sphère.

object { Round_Box (<-1, 0, -1><1, 2, 1> 0.5, no )
pigment { Flesh }
rotate y*25
translate x*2
}
round_box
Si on veut un Round_Box transparent, il faut remplacer "no" par "yes".

object { Round_Box (<-1, 0, -1><1, 2, 1> 0.3, no )
pigment { SummerSky transmit 0.8}
rotate y*25
translate x*-2
}
object { Round_Box (<-1, 0, -1><1, 2, 1> 0.3, yes )
pigment { SummerSky transmit 0.8}
rotate y*25
translate x*-2
}
round_box

sommaire formes simples csg