Il s'agissait d'un problème d'optimisation sur les textes, Povray ayant apparemment du mal à calculer les "bounding boxes" (voir ci dessous) autour des éléments de texte...
J'ai donc, autour de chaque "texte" ajouté un bounding box "à la mimine", et du coup, le rendu du clavier seul est passé de 15 minutes à 2 minutes !!!
(content le Stef)
les boîtes d'optimisation ("bounding boxes")
Le description de ce que sont les boîtes d'optimisation nécessite un petit rappel sur le fonctionnement d'un raytracer.
La tâche première d'un raytracer consiste à "balayer" systématiquement le champ de vision de la caméra, pixel par pixel, afin de déterminer la couleur finale de de ces pixels. Pour chaque pixel, un premier rayon (appelé "rayon primaire", qui démarre de la position de la caméra et qui passe par la position du pixel considéré dans le plan de projection), un premier rayon, donc, est tracé dans l'espace, et le programme doit déterminer si ce rayon touche ou non un objet, et si oui, lequel et à quel endroit.
Dans un raytracer très basique (POV-Ray 1.0, par exemple), cela demande de vérifier, pour chaque objet présent, si une intersection se produit avec le rayon. Si on a 1000 objets, cela signifie 1000 tests d'intersection par pixel, même si finalement aucun de ces tests n'aura été concluant. Si on a une image avec deux arbres distants, constitués chacun de 1500 objets, chaque pixel donnera lieu à 3000 tests d'intersection, y compris ceux de l'autre arbre qu'on a aucune chance de toucher, et même si on tombe finalement sur le ciel.
Alors, pour éviter à notre brave raytracer de perdre du temps à lancer des rayons pour rien, on a inventé les boîtes d'optimisation (concernant POV-Ray, elles sont apparues dans la version 2.0). Ce sont des parallélépipèdes rectangles, toujours parallèles au système d'axes, qui "englobent" totalement les objets et groupes d'objets. Ces boîtes sont hiérarchisées, c'est-à-dire qu'elles suivent la structure des objets complexes (union, intersection,...), et qu'une boîte d'optimisation peut contenir un groupe d'objets, qui ont leur propre boîte, qui, à son tour, etc...
Désormais, le rayon primaire ne va plus, dans un premier temps, s'intéresser aux objets eux-mêmes, mais à leur boîte d'optimisation. Si l'intersection avec une de ces boîtes est avérée, alors c'est le contenu de la boîte, et seulement de celle-là, qui sera à son tour analysé. Les autres boîtes peuvent contenir des tas d'objets, le programme n'en a cure, puisqu'il est certain de ne pas risquer d'en rencontrer un seul.
(vu sur http://users.skynet.be/bs936509/povfr/r ... g-bbox.htm )