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>
 |