Archive pour 1.3.2010

Réflexion

Après des années à se creuser les méninges pour obtenir des réflexions cubiques adéquates et économes, force est de constater que certains pans entiers des shaders de NOVA n’étaient peu ou pas usités. C’est le cas avec la texture dynamique NOVA True Ref. Posée dans le canal de réflexion, celle-ci calcule une texture cubique en fonction du point de pivot de l’objet, la re-combine et applique cette texture à l’objet, selon une matrice de réflexion. Bien. Le hic vient du fait que bien des utilisateurs faisaient un test avec cette texture, en n’omettant aucun objet de la scène cela va de soit, et déçu de l’apparent manque de performances du shader final, rebroussaient chemin. Ok, mais pour quelle solution ? Bien souvent, en passant par le tweak 3dsMax et son shader DirectX 9, on faisait calculer cette texture cubique par Max, en statique, et on la posait dans le canal de réflexion du shader NOVA.

Mais à ceci, deux contraintes : Primo, cette technique est assez rébarbative (pour pas dire franchement chiante). Ensuite, la scène Max n’étant pas prévue pour le rendu temps-réel, on se retrouvait souvent à calculer une réflexion archi-fausse du point de vue de NOVA. Et puis, bien sûr, cette texture est statique. Si un objet bouge dans la scène, cela n’affecte pas la texture de réflexion. Bref, c’est long, pas optimum et pas "accurate".

Profitant donc de la refonte du moteur en DirectX 10, on a remis à plat les réflexions cubiques afin d’en finir avec tout cet imbroglio. Le but était de redonner une nouvelle jeunesse à la texture NOVA true-ref. Donc, primo, on a ajouté un compteur de frame au shader afin de ne calculer la true-ref qu’à un certain intervalle, voire même de ne la calculer qu’une fois, à l’initialisation de la scène. Du coup, on obtient effectivement une vrai texture réaliste de réflexion cubique performante. Et comme dans le shader, on peut définir la résolution de cette texture, on peut appliquer à l’objet une texture très détaillée, mais calculée seulement une fois toute les 100 frames, par exemple. Deuxio, si vous souhaitez encore optimiser le pipeline, vous pouvez extraire cette texture dynamique en une texture statique directement depuis NOVA Explorer, via l’entities browser (un clic droit sur le paramètre True ref de l’objet -> Save Bitmap to DIsk).

De quoi se payer de belles textures en True ref pour rien du tout avec NOVA 2010. Si on ajoute à ceci un petit fresnel multiplicatif sur la réflexion…miam…

XPS is back online…

Première bonne nouvelle de ma mini-rentrée, mon XPS est de nouveau opérationnel, avec un changement des cartes vidéo. Dell a été plus réactif que prévu et c’est tout à leur honneur. Il a fallu forcer un peu, mais le résultat est là. Je pense tout de même que cette machine commence à leur couter cher. Mon service tag est devenu un gros mot, au service technique de Dell…

|