NoGreg (le blog de LeGreg)
Retour au blog <<

Rechercher

Archives

Août 2006

DICE : réponse BF : BC

Mardi 22 août 2006 à 06 h 28
Un des dévelopeurs de Dice, poste sur son blog, en se moquant (gentiment) des réactions des gens sur les forums :
battlefield bad company screenshots

Ce n'est évidemment pas la réponse officielle de Dice. On apprend par contre que le jeu utilise son propre moteur (tout comme BF2), appelé le Frostbite engine.

LeGreg

A la plage..

Dimanche 20 août 2006 à 22 h 04
Une série de photos un peu plus anciennes, prises sur l'ile de Maui à Hawaii.







Enjoy!

LeGreg
4 commentaires, dernier de LeGreg.

Oppossum de Virginie (was Grand jeu.)

Vendredi 11 août 2006 à 08 h 35
Il y a donc des marsupiaux sauvages qui fouillent les poubelles en Californie.



Merci à Cireme pour la réponse.

LeGreg
6 commentaires, dernier de LeGreg.

Pourquoi HL2 supporte HDR + AA sur votre carte graphique et pas les autres jeux ?

Samedi 5 août 2006 à 03 h 37
C'est une remarque qui revient souvent : le rendu HDR et l'antialiasing simultanément est possible, la preuve HL2 le supporte sur ma carte graphique.

Alors, pourquoi les autres jeux ne le supportent pas ?

La raison est un peu technique, désolé pour la suite du post, mais c'est la seule et la vraie raison.

Tone mapping
Comme je l'avais détaillé dans mon article sur le HDR, les jeux procèdent au rendu HDR en deux passes généralement. Une première passe qui écrit dans un buffer de couleur de résolution supérieure en FP16 par canal de couleur (virgule flottante sur 16 bits) soit 64 bits au total pour les quatre couleurs alpha, rouge, vert et bleu. Puis une passe spéciale de tone mapping, qui consiste a comprimer "intelligemment" ces 16 bits par canal en 8 bits par canal en se focalisant sur l'intervalle qui a le plus grand intérêt pour le joueur (voir mon article précédent pour voir ce que cela recouvre en réalité).

Le problème pour les jeux qui switchent au rendu dans ce format est que les cartes de l'an dernier ne supportent pas le rendu simultané en fp16 avec multisampling. C'est une limitation dure, qui n'est pas contournable. Pourquoi ? parce que les cartes graphiques sont conçues longtemps en avance, toute modification avancée des fonctionalités demande des mois et des mois de conception, et que donc que ces fonctionalités sont figées au moment de la première conception, avec parfois quelques ajouts "mineurs" au cours de la vie de l'architecture. Si lorsque la puce a été conçu, le rendu HDR avec multisampling n'était pas une priorité (à cause de son coût en transistor ce qui aurait gonflé le coût de la puce au delà du raisonnable) alors pendant toute la durée de vie de cette architecture cette fonctionalité sera absente, et ne sera introduite (si nécessaire et raisonnable) qu'à l'architecture suivante.

La méthode HL2
la méthode adoptée par HL2 est donc la suivante : comme c'est le passage par le buffer fp16 qui pose problème, il suffit de supprimer ce passage pour écrire directement dans un format ARGB 8 bits qui supporte le multisampling.
Cela consiste donc à faire le texturing, le shading etc, dans une unique passe dont la dernière instruction est l'instruction de tone mapping. Ainsi, le jeu bénéficie bien d'un dynamic range, avec tone mapping et peut utiliser les capacités d'antialiasing offertes par le format 8 bits.

Quelles limitations ?
Cela parait simple sur le papier mais c'est en fait un casse-tete si vous n'avez pas fait les bons choix de rendu au préalable. Exit, tout algorithme d'affichage des ombres un peu compliquées, votre ombre doit être affichée dans votre unique passe avec tout le reste. Exit les shaders qui sont plus larges que ce que permet votre plateforme minimale. En pratique il est toujours possible de moduler, offrir des shaders simples sur une radeon 9700 et des shaders plus complexes sur une geforce 7800 mais meme sur cette dernière il n'est pas possible d'exprimer tous les shaders possibles et imaginables en une seule passe. Far Cry par exemple n'a pas cette limitation et la plupart des shaders d'éclairage et autres sont en plusieurs passes. 3Dmark06 procède de même en effectuant plusieurs passes pour ses effets d'éclairage.

De meme certains effets comme l'alpha blending pour la semi transparence sont habituellement fait dans l'espace linéaire high dynamic range (fp16) mais cela n'est plus possible avec cette technique donc il faut soit éliminer les objets semi transparents de votre scène, soit utiliser une approximation qui opère dans l'espace final 8 bits.

La méthode utilisée par HL2 vient donc avec des limitations de taille qui fait que ce n'est pas applicable par défaut à n'importe quel jeu lambda.

Elle a cependant des avantages, en plus d'une plus grande compatibilité avec du matériel ancien, la performance devrait être bien meilleure puisque le rendu dans les buffers 64 bits (fp16) est habituellement plus lent du fait de la bande passante nécessaire et d'autres problèmes d'architecture. Et on s'économise une passe de tone mapping et quelques buffers intermédiaires qui prennent de la mémoire. En plus le filtrage de l'antialiasing effectué par le hardware a lieu dans l'espace d'affichage de votre écran (modulo une conversion sRGB), ce qui apporte un plus visuel.

Méthode d'avenir ?

On pourrait avoir du mal à voir cela comme méthode d'avenir à cause de l'arrivée prochaine de d3d10 qui obligera les nouveaux hardware à supporter le multisampling sur les buffers 64 bits ainsi que tout le reste (texture filtering, alpha blending), rendant toutes ces méthodes de contournement coûteuse en terme de temps de développement et de contraintes de design.
Mais en même temps, les nouveautés apportées par D3D10 feront qu'il sera peut-etre plus facile de faire rentrer tous les effets d'éclairage dans une passe unique et le problème de la bande passante, de la performance sera toujours présente au moins sur les cartes bas de gamme. Et puis les cartes Direct3D9 vont encore exister pendant un certain moment et constituer une part non négligeable du marché des quelques prochaines années.

A suivre donc..

LeGreg
4 commentaires, dernier de LeGreg.

Crytek au siggraph

Mercredi 2 août 2006 à 15 h 47
Un petit article pour résumer la présentation de Crytek au Siggraph 2006 à Boston.

Lire la suite :
Atmospheric effects in the Cry engine
13 commentaires, dernier de LeGreg.