Comment faire exister l'intérieur d'un batiment ? Comment le rendre crédible malgré l'incohérence des choses que l'on peut voir à l'intérieur ? C'est une question que je me suis posée après l'aventure du cloitre, et la désintégration de l'univers myryssien. Plusieurs questions même, sur des notions comme l'échelle, la lumière, le niveau de détails... Je vais vous raconter le trajet mental et les contorsions techniques découlantes.
Attention, le texte et les explications qui suivent ne sont pas forcément à jour. Oui je sais, ce n'est plus pixelizé, parce que ma nouvelle machine actuelle est assez puissante pour l'antialiasing, et peut-être bientôt le focal_blur, mais là, il ne faut pas réver.
Cette première scène est relativement simple : il y a un batiment pour le moment très approximatif et dont on ne voit que l'intérieur, dans lequel sont placés des trucs et des machins destinés à être évolutifs. Ensuite, il y a un plateau et un réalisateur qui procède au tournage (les ventilos grondent...) et finalement on obtient la vidéo. Tout ça avec ces quelques lignes de code.
la première étape est simple: il faut imaginer un cadre, un contexte, un espace clôt et soigneusement borné par des valeurs numériques arbitraires (voir ci-contre) à proportions dissonantes. Afin que chacun des éléments soient à leur place de prédilection dans un espace relativement simple à percevoir dans l'espace 3D. Ensuite, il faut imaginer des éléments simples, voire même rudimentaires, mais assez simple pour ne pas gréver le temps de calcul. Les curieux peuvent voir de quoi il s'agit. L'important, c'est qu'ils aient les bonnes proportions pour s'intégrer dans l'espace défini à la première étape. La suite est moins évidente. Avoir un espace construit et harmonieux est une chose, y habiter en est une autre. Se déplacer à l'intérieur, regarder les détails de chaque chose, peut-être même un jour pouvoir regarder par la fenêtre pour découvrir la campagne et les arbres qui nous entourent... |
#declare Sz_X = 10; #declare Sz_Y = 8; #declare Sz_Z = 17; #declare E_mur = 0.40; #declare PHONG = 0.3333; |
En janvier 2022, le Tetalab m'a fait don d'une machine puissante, un Xéon qui dépote et qui me rend enfin plein de choses possibles. L'état du projet à ce moment est archivé (sauf le code, hélas, qui a été écrasé par la nouvelle version).
La suite est moins évidente. C'est souvent une alternance entre le dessin de toutes ces choses étranges qui se retrouvent exposées là, sans trop savoir de quoi il s'agit, et d'un autre coté, le mouvement de la caméra qui va parcourir cette espace en 70 secondes.
Retravailler le design d'un des objets est un process de la classe des intégrations continues. Le fichier SDL est essai.pov et le worker est mkrush.sh. La cible rush.gif dans le Makefile permet d'avoir un cliché des dernières images calculées, lesquelles sont aussi visibles dans leur grande splendeur.
Quand au mouvement de caméra, c'est une autre histoire. Il y aurait eu des essais à une époque mais les avancées sont encore trop peu nombreuses. Pour le moment, c'est un calcul un peu trop soft, et je sens venir le passage aux