131 lines
4.9 KiB
HTML
131 lines
4.9 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>libimage: les df3 de povray</title>
|
|
<link rel="stylesheet" type="text/css" href="libimage.css">
|
|
<meta name="generator" content="Vim et huile de phalange">
|
|
<meta name="keywords" content="libimage, krabulator, operations">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<a name="top"><h1>libimage / les df3 de povray</h1></a>
|
|
|
|
<p align=center>
|
|
<tt>dernière mise à jour: 10 novembre 2013</tt><br>
|
|
<i>
|
|
<a href="http://tboudet.free.fr/libimage/img-df3.html">#</a> et
|
|
<a href="http://la.buvette.org/devel/libimage/img-df3.html">#</a>
|
|
</i>
|
|
</p>
|
|
|
|
<p class="menuhaut">
|
|
[<a href="libimage.html">libimage</a>]
|
|
[<a href="img-povhf15.html">height fields</a>]
|
|
</p>
|
|
|
|
<p class="explique">
|
|
The density_file pattern is a 3-D bitmap pattern that occupies a unit
|
|
cube from location <0,0,0> to <1,1,1> The data file is a raw binary
|
|
file format created for POV-Ray called df3 format. The syntax provides
|
|
for the possibility of implementing other formats in the future. This
|
|
pattern was originally created for use with halo or media but it may
|
|
be used anywhere any pattern may be used.
|
|
</p>
|
|
|
|
<p>
|
|
Bon, il faut avouer que le code actuel est totalement buggué, que son
|
|
<small>API</small> est pitoyable, et que je n'y consacre pas autant
|
|
d'énergie qu'il le faudrait. Vous pouvez quand même aller
|
|
<a href="/POV/df3.html">voir</a> l'avancement des essais.
|
|
</p>
|
|
|
|
|
|
<h2>Primitives</h2>
|
|
|
|
<p>
|
|
C'est toujours en cours de mise au point. Les <small>API</small> ne sont
|
|
pas encore figées.
|
|
</p>
|
|
|
|
<dl class="proto">
|
|
|
|
<dt>DensityF3Head * Image_df3_alloc(char *nom, int x, int y, int z, int b);
|
|
<dd>Création d'un objet de type <small>DF3</small>. Les trois paramètres
|
|
<tt>x, y & z</tt> sont les dimensions, <tt>b</tt> est le nombre
|
|
prévu de bytes par cellule à l'enregistrement dans un fichier. Les
|
|
divers autres attributs sont initialisés à une valeur raisonnable.
|
|
Chaque cellule est stockée dans un <i>double</i>, avec 1.0 représentant
|
|
la valeur maximum.
|
|
|
|
<dt>int Image_df3_free(DensityF3Head *ptr);
|
|
<dd>Destruction féroce d'un objet de type <small>DF3</small>. Si la valeur
|
|
de retour n'est pas nulle, c'est catastrophe.
|
|
|
|
<dt>int Image_df3_put(DensityF3Head *ptr, int x, int y, int z, double dv);</dt>
|
|
<dd>Dépose une valeur dans le machin. Retourne <small>INVALID_PARAM</small>
|
|
si les coordonnées xyz sont en dehors du cube. Devrait aussi retourner un
|
|
errcode si la valeur est en dehors des valeurs légales.</dd>
|
|
|
|
<dt>int Image_df3_get(DensityF3Head *ptr, int x, int y, int z, double *pdv);</dt>
|
|
<dd>Lecture d'une valeur dans le machin. Si en dehors du cube,
|
|
renvoie <small>INVALID_PARAM</small>.</dd>
|
|
|
|
<dt>int Image_print_DF3head(DensityF3Head *h, char *txt, int flag);
|
|
<dd>Affichage (plus ou moins) en clair d'un descripteur de DF3. Si la
|
|
valeur de retour n'est pas nulle, c'est qu'un problême a peut-être
|
|
été détecté.
|
|
|
|
<dt>int Image_df3f_get_dims(char *fname, int dims[], int display);
|
|
<dd>Lecture des dimensions d'un fichier df3. L'argument <tt>dims</tt>
|
|
doit être un <tt>int dims[3]</tt>. Si <tt>display</tt> est différent de
|
|
zéro, des trucs seront affichés.
|
|
|
|
<dt>int Image_df3_export(DensityF3Head *ptr, char *fname, int nbbytes);</dt>
|
|
<dd>Enregistrement des données dans un fichier. Si <tt>nbbytes</tt> est à
|
|
zéro, c'est la valeur donnée à la création de la structure qui sera
|
|
utilisée. Sinon, on donne 1, 2 ou 4.
|
|
</dl>
|
|
|
|
<h2>Essais divers</h2>
|
|
|
|
<p>Attention, à ce jour (2 mars 2008), ces fonctions ne travaillent
|
|
que sur des fichiers à un octet [0..255] par cellule. On peut en
|
|
fait les classer dans la catégorie <i>bricolages divers</i> pour
|
|
se rassurer si elles ne fonctionnnent pas.
|
|
</p>
|
|
|
|
<dl class="proto">
|
|
|
|
<dt>int Image_df3_xper_0(Image_Desc *src, char * fname_df3, int k);
|
|
<dd>Tentative de fabrication d'un fichier DF3 à partir d'une image en RGB.
|
|
Le résultat n'est pas concluant, mais l'idée mérite d'être approfondie.
|
|
|
|
<dt>int Image_df3_plot_histo(char *fname_df3, char *nomtga, int flag);
|
|
<dd>Histogramme linéaire du contenu d'un fichier DF3. Utilité plus que
|
|
douteuse. Nous allons essayer da faire mieux.
|
|
|
|
<dt>int Image_df3f_2_txt(char *nomdf3, char *nomtxt);
|
|
<dd>Dump d'un fichier df3 dans un fichier texte, à priori <i>parsable</i>
|
|
par les outils Unix classiques.
|
|
|
|
<dt>int
|
|
Image_df3f_2_povinc(char *nomdf3, char *nominc, char *nomobj, int k, double dv);</dt>
|
|
<dd>C'est cette fonction qui est actuellement en cours de test dans cette
|
|
<a href="http://la.buvette.org/POV/ex/df3.html">page</a>, et les résultats
|
|
semblent prometteurs. Le paramètre <tt>k</tt> contrôle le type du machin
|
|
qui va servir à matérialiser le contenu de la cellule. Pour le moment,
|
|
il n'y a que la bouboule.
|
|
</dd>
|
|
</dl>
|
|
|
|
<p>Il existe d'autres fonctions pour traiter les types de données
|
|
qu'utilise POVray : les <a href="img-povhf15.html">champs d'altitude</a> pour
|
|
le moment.</p>
|
|
|
|
<hr noshade>
|
|
<p align=center>[ <a href="http://tboudet.free.fr/cv.html">tTh cherche</a> ]</p>
|
|
|
|
</body>
|
|
</html>
|