Article sur l’optimisation des Shaders DirectX10

29. octobre 2009

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.

.Net, DirectX, 3D

Les classes Timers de .NET

21. octobre 2009

Une question qui revient souvent concerne le fait qu’il y existe deux classes Timers dans le .NET : System.Windows.Forms.Timer et System.Timers.Timer.

Alors pourquoi me direz-vous? Et bien parce que ce ne sont pas les mêmes usages.

System.Windows.Forms.Timers

Ce timer se base sur un message Windows envoyé à l’application et qui sera donc traité par la boucle des messages et donc dans le thread de l’interface.

Avantage : Pas besoin de faire des Invoke pour accéder à l’interface puisque l’événement levé par le timer sera traité par le thread de l’interface.

Inconvénient : Le timer n’est pas précis car il passe par le système de messages de Windows. De plus il ne profite pas des multi-cpus du fait que tout est exécuté par un seul thread.

System.Timers.Timer

Ce timer se base sur des timers natifs (qui utilisent des threads).

Avantage : Très précis et gére bien les ressources mutli-cpus.

Inconvénient : Nécessite des Invoke pour accéder à l’interface.

.Net, Windows, Windows Forms

Le truc à la con du jour : Les propriétés par objet d’un projet Visual C++

17. octobre 2009

La méconnaissance de certains outils peut parfois faire perdre énormément de temps.  J’en veux pour preuve les deux derniers jours (et nuits) que je viens de passer.

A la base le problème est idiot, je dois rajouter une définition de préprocesseur à mon projet. Je vais donc dans les propriétés du-dit projet et nonchalament je lui colle la valeur dans la ligne “Preprocessor Definitions”. Oui je sais cela laisse peu de place à l’imagination et on a envie de se dire que ca va marcher direct.

image

Et la, c’est le drame. Cette fichue définition n’est pas prise en compte!!!!! Bon après avoir cherché logiquement, empiriquement puis après avoir pété un plomb et sacrifié 2 jeunes vierges sur un autel en pleine forêt j’ai finalement trouvé la solution.

En effet, il existe dans Visual Studio (pour la partie C++) la possibilité de surcharger les propriétés du projet par fichier! Un simple clic droit/propriétés sur un fichier et on se retrouve avec les mêmes propriétés mais juste pour le fichier en question.

image

Et bien sur, le fichier en question avait défini ses propres valeurs avec en plus un charmant “NoInherit”. Bon je ne vous cache pas que j’ai un peu pris feu quand j’ai vu ça mais à mon retour sur terre j’ai pu vérifier que EFFECTIVEMENT mon truc marchait sans cette MERDE de propriété défini sur mon fichier.

Conclusion : Si vous avez des comportements bizarres avec les configurations de projets de Visual Studio, allez faire un tour du coté de vos fichiers :)

Visual Studio

DirectX

14. octobre 2009

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.

DirectX

Le dressage des draps

6. octobre 2009

Ce qui me choque lorsque je regarde certains films, c’est la capacité quasi-divine qu’ont les draps à se positionner parfaitement sur la poitrine des femmes qui se lévent ou bougent dans un lit.

Je pense qu’il y a un gars dont le métier est de dresser les draps pour qu’ils se positionnent parfaitement afin de cacher ces seins que l’on ne saurait voir.

Parce que les draps ordinaires, ceux qui sont chez vous et chez moi, ils sont sauvages, ils sont dans leur habitat naturel, ils n’ont subis aucun dressage. Résultat, quand ma femme se léve ou bouge dans le lit, au mieux les draps font une boule anarchique et se battent la rondelle de cacher quoique ce soit.

Et finalement, je vous le dis, je préfére le drap sauvage.

Divers, Philo