kosh 22. janvier 2010, 08:29

Depuis le temps que j’ai envie de faire ce post, je vais enfin pouvoir me lâcher (enfin au moins un peu).

Nova 2010 est dans sa phase finale et certaines fonctionnalités peuvent désormais être annoncées. En aparté, il faut savoir que Nova 2010 est de loin la plus grosse version de Nova en termes de nouveautés.

Parmi ces dernières , une me tient particulièrement à coeur, il s’agit du support de DirectX 10. En effet, Nova 2010 est capable de rendre une scène en utilisant soit un coeur DirectX 9, soit un coeur DirectX 10 soit un coeur totalement software.

Grâce à ce mécanisme de providers, il est donc possible d’accéder aux shaders 4.0 et notamment au geometry shader qui apporte un vrai plus en termes de souplesse et de performances dans le cadre des ombres, des particules, des bones, du warping et j’en passe.

Par exemple, la même scène utilisant des bones va tourner à 100 fps sous provider DirectX 9 et à plus de 1000 sous provider DirectX 10 !

Le plus sympa dans tout ça c’est que l’utilisateur de Nova pourra aisément passer d’un provider à l’autre à l’envie et sans contrainte.

 

Oui, je sais, ça tue.

kosh 13. janvier 2010, 16:08

Microsoft organise comme chaque année les TechDays au palais des congrés de Paris.
C’est le plus gros événement technique de l’année et ne serait-ce que pour voir des stars telles que moi (oui ça va merci), le déplacement vaut le coup.

D’ailleurs cette année j’anime deux sessions et je vous invite à vous y inscrire :)

Intégrez de la puissance supplémentaire dans vos applications de gestion grâce au GPGPU
Audience : Développeurs Enseignants et chercheurs
Niveau : Expert (400)
Le lundi 8 février 2010, 11:00- 12:00.

Coding4Fun  (avec le petit Mitsu F. (qui préfére garder l’anonymat)).
Audience : Architectes Décideur technologique Développeurs Enseignants et chercheurs Informaticiens
Niveau : Découverte (100)
Le lundi 8 février 2010, 17:30- 18:30.

J’en profite pour caler le petit logo avec le mec qui ressemble à rien…

Vignette_Speaker_H

Je viens de publier un superbe article (n’ayons pas peur des mots) sur DirectX 10 et l’optimisation des shaders.

Cet article est hébergé par le célébre site www.techheadbrothers.com.

N’hesitez donc pas à aller le lire si le sujet vous intéresse.

Kosh 14. octobre 2009, 16:19

On me demande souvent en consulting ce qui fait la différence entre une version de DirectX et une autre. Des millions de choses bien sûr me viennent à l’esprit. Ceci dit pour faire court, voici pour chaque version de DirectX la fonctionnalité qui m’a le plus frappé à chaque fois:

  • DirectX 2 et 3 : Direct3D
  • DirectX 5 : DrawPrimitives (la fin de ces merdes d’execute buffers)
  • DirectX 6 : Le multi-texturing
  • DirectX 7 : Le transform and lighting (Le début des GPU)
  • DirectX 8 : Les shaders
  • DirectX 9 : Les shaders 3.0
  • DirectX 10 : Le geometry shader
  • DirectX 11: Le shader linkage (bizarrement)

Vous noterez au passage pour la petite histoire qu’il n’y a pas de DirectX 4 car à l’époque Microsoft avait lancé simultanément le développement de DirectX 4 (petite mise à jour) et de DirectX 5 (grosse update). Il s’est avéré que les retours utilisateurs se moquaient complétement de la version 4 et étaient impatient quand à la 5. DirectX 4.0 fut donc abandonné. Mais comme il existait des tonnes de documents référençant DirectX 5.0, ce dernier ne fut pas renommé en 4 et il n’y eu donc jamais de DirectX 4.0.

kosh 10. septembre 2009, 23:00

Déjà que ma femme ne me voit pas beaucoup mais avec l’arrivée de DirectX 11 officillement (le SDK est ici), ca ne va pas s’améliorer.

En vrac, on va pouvoir s’amuser avec:

  • Shaders de tesselation (gestion de la tesselation dans les shaders (LOD, skinning, etc…) : Hull shader, tesselator (non programmable directement) et domain shader (ca fait du monde).
  • Compute shader (utilisation de la puissance de la carte graphique pour faire des calculs)
  • Fortes améliorations pour un meilleur support du multithreading
  • Link dynamique au niveau des shaders : Cette fonction semble être bien sympa. En effet avec les shaders actuels il est complexe de ne pas faire un gros shader qui fait tout. Avec le link dynamique on pourra dynamiquement assembler ses shaders à la volée à partir de plusieurs méthodes dispatchées et maintenues à part. C’est l’apparition des sous-routines!!

De nombreuses autres choses sont présentes et je reviendrai dessus dès que j’aurai explorer la bête.

Pour la petite histoire, la partie tesselation est directement issue de ce qui existe sur XBox 360.

kosh 13. février 2009, 01:14

Et voila, les TechDays 2009 sont finis. Ce fut une fois de plus un superbe événement ou j’ai eu beaucoup de plaisir à animer 3 sessions. Je pense notamment à ma session Coding For Fun avec mon camarade Mitsu Furuta ou l’on s’est bien amusé.

Pour ceux qui souhaitent retrouver les présentations et tout le code des démos, c’est par ici que ca se passe.

kosh 4. février 2009, 10:34

Petite pub pour mes sessions aux TechDays 2009:

 DirectX10 pour les Windows Formstdspeakermsfv9

 Nouveautés de WPF 3.5 SP1

 Coding4Fun

 

Comme toujours mes sessions sont très orientées 3D et présentation. Nous parlerons donc de DirectX10, de pixels shaders et avec Mitsu nous vous montrerons que l’on peut s’amuser avec des petites applications “ludiques” ;)

Cela arrive même aux meilleurs! La fuite mémoire! Le truc horrible qui peut faire suer des heures durant.

J’ai donc découvert récemment une fuite mémoire dans Nova. Devant une telle horreur j’allais prévenir ma femme de mon indisponibilité sur les 7 prochaines nuits. Quand tout à coup j’ai découvert un superbe outil au sein même du SDK DirectX.

Lorsque l’on installe le SDK de DirectX, il ajoute un control panel spécifique. Ce dernier permet notamment d’activer le mode debug de DirectX.

image

Dans ce mode, lorsque l’on lance une application utilisant DirectX elle trace dans la fenêtre de sortie de nombreuses informations et notamment les fuites mémoires.

Dans les informations associées à une fuite, DirectX fait apparaitre le numéro d’allocation (AllocID). Or, il est possible avec le control panel de DirectX de demander un break de l’exécution lorsqu’une certaine allocation a lieu.

image

Cette merveilleuse fonctionnalité permet donc de déclencher le debuggeur à l’endroit précis ou a lieu l’allocation de mémoire qui ne sera pas libérée.

kosh 18. juin 2008, 13:48

Suite à plusieurs demandes, je viens de mettre en ligne le code de PowerPoint3D. Ce projet utilise le SDK de Nova 2008.

Il s'agit d'un projet Visual Studio 2008 qui va référencer à la fois Nova et les dll managed de DirectX. L'ensemble des assemblies sont présentes dans l'archive.

Attention toutefois, le SDK de Nova est en mode gratuit et donc ne peut fonctionner que 5 minutes d'affilée.

Le fonctionnement de l'ensemble est relativement simple: Le projet charge un fichier pptx (pres.pptx) et extrait les images de chaque slide. Il charge ensuite une scène Nova et remplace les textures d'un objet à la volée avec le slide courant.

Le projet Visual Studio 2008 : ici.

Kosh 5. avril 2008, 11:00

Grande nouvelle!!! Le superbe SlimDX vient de sortir estampillé "Mars 2008". Et autant vous le dire tout de suite, ça déchire. Nous avons enfin un wrapper managed pour DirectX 9 ET 10.

Excité comme une puce je me suis levé à 6h ce matin (impossible de dormir avec ça en tête) et j'ai commencé le portage du provider DirectX 9 de Nova depuis Managed DirectX (celui de Microsoft en 1.1) vers SlimDX.

Résultat des courses : génial. SlimDX tire parti des generics ce qui donne un code bien plus concis. De plus, l'API parfois un peu lourde de Managed DirectX est maintenant plus logique (adieu les classes statiques utilitaires du style TextureLoader, tout est sur Texture).

DirectX 9 est quasi parfaitement couvert (j'ai juste noté l'absence d'un enum : FogMode).

Je ne me suis pas encore penché sur DirectX 10 mais ca sent très très bon:)

Pour découvrir tout ça en live : SlimDX.