NoGreg
Le blog de LeGreg sur NoFrag.
Articles sur le blog :
- Crytek, atmospheric effects
- Direct3D 10 preview
- Voxel
- Raytracer in C++
- Vista 32 bits ou 64 bits
- CPU vs GPU
- Half Life 2, HDR and Antialiasing
- Travail aux USA
- Protection against user or User protection
- Apprenez l'arabe
- HD dans les films aussi
- Exhaustion des adresses IPv4
- Google Chrome
Mes autres centres d'intérêt :
- Programming (graphics, gpu, voxel, raytracing)
- Real time rendering
- Photos
- Foam sheathing
- Animation mentor
- John McCain
- Welcome Office
- Alapage

Articles sur le blog :
- Crytek, atmospheric effects
- Direct3D 10 preview
- Voxel
- Raytracer in C++
- Vista 32 bits ou 64 bits
- CPU vs GPU
- Half Life 2, HDR and Antialiasing
- Travail aux USA
- Protection against user or User protection
- Apprenez l'arabe
- HD dans les films aussi
- Exhaustion des adresses IPv4
- Google Chrome
Mes autres centres d'intérêt :
- Programming (graphics, gpu, voxel, raytracing)
- Real time rendering
- Photos
- Foam sheathing
- Animation mentor
- John McCain
- Welcome Office
- Alapage
Archives
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- décembre 2007
- septembre 2007
- août 2007
- mai 2007
- avril 2007
- mars 2007
- décembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- avril 2006
- mars 2006
- février 2006
- janvier 2006
- décembre 2005
- novembre 2005
- octobre 2005
- septembre 2005
- août 2005
- juillet 2005
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
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
Commenter.
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

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
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
Lire la suite :
Atmospheric effects in the Cry engine
13 commentaires, dernier de LeGreg.


