Export POV-Ray

L'exportation vers POV-Ray est l'une des raisons historiques du développement d'Arabeske. Une forme d'exportation implicite, à base de material_maps, existe depuis longtemps, mais la version de développement 1.1.7 a introduit une exportation directe sous forme de code source POV-Ray.

Le module d'exportation exporte des objets POV. Il est donc nécessaire d'avoir défini des polygones ou des segments "épais" dans Arabeske, c'est pourquoi l'export vers POV-Ray n'est disponible que dans les modes "final" et "entrelacé".

Pour exporter, sélectionnez Fichier -> Export -> POV-Ray, puis choisissez le nom de fichier. L'extension par défaut, si cette option est activée, est ".pov", tandis que le sélecteur de fichier affiche les fichiers .pov et .inc. Cliquez Export.

On vous demande alors de choisir entre deux modes d'exportation:

Voici un exemple de rendu obtenu à partir de l'export basique:

Basic-style sample export (35k)

Regardons de plus près l'exportation en mode "expert". Les informations données dans le fichier exporté sont:

Enfin, vous devez fournir entre une et quatre macros, selon le mode depuis lequel vous exportez et les lignes que vous utilisez:

Point important: ce mode d'exportation ne fournit bien évidemment aucune forme de bounding ou de clipping, ce qui fait que si rien n'est mis en place, de nombreux objets indésirables ou trop grands seront tracés. Le clipping doit être mis en place dans votre propre code.

A noter également: les informations de bounding_box vous indiquent la taille du motif exporté en coordonnées POV-Ray. Si vous désirez un motif 10x10 dans votre scène, il suffit d'utiliser l'opérateur scale dans votre code.

Exemple de scène complète

Une version améliorée de cet exemple est diponible ici.

Généralités poviennes:

#include "metals.inc"
#include "colors.inc"

camera {
    up y
    right -x
    location <10, 10, -20>
    look_at <0, 0, 0>
    angle 5
}

light_source{
    <-1, -2, -5>
    rgb 1.5
}

Première macro, qui dessine un polygone en utilisant l'objet "prism", avec la couleur exportée par Arabeske.

#macro AraUserPolygon(A, index)
    prism{
        -1, 0,
        dimension_size(A, 1)
        #local i=0;
        #while (i<dimension_size(A, 1))
            A[i]
            #local i=i+1;
        #end
        pigment {rgb AraColors[index]}
        clipped_by{box{<-1, -.01, -1>, <1, .1, 1>}}
        rotate -90*x
    }
#end

Seconde macro, indispensable en mode "final". Elle trace les segments sous forme de cylindres dorés arrondis de rayon AraUserSegmentThickness/2.

#macro AraUserSegment(Origin, End)
    union{
        cylinder{Origin, End, AraUserSegmentThickness/2}
        sphere{Origin, AraUserSegmentThickness/2}
        sphere{End, AraUserSegmentThickness/2}
        clipped_by{box{<-1, -.01, -1>, <1, .1, 1>}}
        rotate -90*x
        texture{T_Gold_1E}
    }
#end

Enfin, inclusion du motif exporté depuis Arabeske:

#include "expert.pov"

Et voilà! Avec un fond nuageux, le résultat donne ceci:

Simple expert-style export (39k)