déc 21

ShaderToy – Raymarching

C’est la mode ! Alors j’ai cédé et voici ma première tentative d’utilisation du raymarching dans un bout de code en GLSL.

J’ai pour cela utilisé les indications présentées ici : http://www.iquilezles.org/

Lien Permanent pour cet article : http://forma3dev.fr/2013/12/21/shadertoy-raymarching/

juil 22

OpenGL 4.4 est sorti !

Khronos profite une fois encore du Siggraph pour sortir une nouvelle version de la spécification OpenGL.

Il s’agit donc de la version 4.4.

Parmi les nouveautés, on notera :

  • meilleur contrôle des emplacements mémoire et des caches pour les différents buffers
  • amélioration du système des queries (asynchrones)
  • amélioration du contrôle du placement des variables dans les shaders (notamment pour vectoriser certaines variables)
  • possibilité de binder plusieurs éléments d’un coup
  • possibilité de ne plus avoir à binder des unités de textures pour binder une texture
  • utilisation des textures creuses (permettant d’avoir des tailles de textures gigantesques, mais non remplies)

À noter que les drivers NVidia à jour sont déjà disponibles ainsi que GLEW dans sa version 1.10.

Lien Permanent pour cet article : http://forma3dev.fr/2013/07/22/opengl-4-4-est-sorti/

août 08

Version 4.3 d’OpenGL !

La version 4.3 de la spécification OpenGL vient d’être rendue publique par le groupe Khronos.

Cette version est utilisable avec toutes les cartes graphiques qui supportaient la version 4.2. Il y a pourtant de nombreuses améliorations et changements.

Tout d’abord, la spécification elle-même a été complètement remaniée et est plus orientée “moderne”.

Un nouveau type de shader vient prendre sa place dans le pipeline : le Compute Shader, qui permet de faire ce que l’on pouvait faire avec OpenCL, mais en plus intégré dans le reste d’OpenGL. D’ailleurs, les shaders sont maintenant autorisés à lire et écrire une grande quantité de données, et de passer ces données de shader en shader.

Des améliorations ont également été faites au niveau des textures. On a enfin un format de texture compressée, de bonne qualité et standardisé ! Il est également possible de demander à OpenGL d’interpréter les mêmes données de textures de plusieurs façons.

Pour finir, cette nouvelle spécification apporte des améliorations pour l’aide à la mise au point des programmes avec la possibilité d’avoir de multiples informations de debug, et une meilleure séparation des données entre les applications, ce qui devrait limiter certains problèmes de sécurité.

Il faut que je teste toutes ces nouvelles fonctionnalités pour en parler plus en détail, mais ça ne devrait pas tarder puisque NVidia a déjà mis à jour ses drivers pour supporter OpenGL 4.3.

Lien Permanent pour cet article : http://forma3dev.fr/2012/08/08/version-4-3-dopengl/

juil 09

Début du port Android du Quake Viewer !

J’ai décidé de me consacrer un peu à la programmation Android-NDK/OpenGLES. J’ai donc commencé à porter le viewer quake sur mon téléphone. OpenGLES a beaucoup de limitations, et il faut pas mal ruser pour avoir un bon résultat. De plus, le quake viewer utilise intensivement boost et C++1x, il faut donc réécrire pas mal de parties. Mais je suis confiant. En un petit week-end, j’ai pu commencer à faire un brouillon : l’affichage de la map, comme on doit pouvoir le voir sur le screenshot attaché.

Lien Permanent pour cet article : http://forma3dev.fr/2012/07/09/debut-du-port-android-du-quake-viewer/

juil 01

Programmer en OpenGL avec vim

Pour la quasi-totalité de mes éditions de texte, j’utilise l’éditeur vim. Celui-ci dispose de nombreux plug-ins permettant de l’adapter à beaucoup de besoins.

Lorsque j’édite du code OpenGL, j’utilise (en plus de ceux plus génériques) les plug-ins suivants :

Ces petits plus permettent de gagner beaucoup de temps lors du développement de programmes OpenGL.

Lien Permanent pour cet article : http://forma3dev.fr/2012/07/01/programmer-en-opengl-avec-vim/

mai 20

Amélioration du logger dans la DDX-Engine

Le système de log de la DDX-Engine était assez succinct et ne supportait pas des sorties fichiers sur toutes les architectures supportées.

Il est maintenant possible de choisir de placer les logs à l’écran, dans les logs systèmes, dans des fichiers (texte brut ou html), suivant 6 niveaux de gravité.

Il est possible aussi de ne logger que la première fois que l’on passe sur une ligne (utile pour éviter de remplir les logs avec une seule fonction appelée en boucle).

Il suffit de recompiler un projet pour choisir le niveau de gravité, tout ce qui est inférieur à ce niveau devient alors une opération vide et ne prend donc aucun temps à l’exécution.

Lien Permanent pour cet article : http://forma3dev.fr/2012/05/20/amelioration-du-logger-dans-la-ddx-engine/

mai 05

Le point sur les versions d’OpenGL

Entre la version 1.1, la 1.2.1, la 3.0, la 3.2 rétrocompatible, la 4.2 core, il n’est pas toujours facile de s’y retrouver dans la jungle des versions d’OpenGL.

En savoir plus »

Lien Permanent pour cet article : http://forma3dev.fr/2012/05/05/le-point-sur-les-versions-dopengl/

avr 07

Affichage en surimpression du wireframe dans le Quake3-viewer

Affichage des limites des triangles.Le développement du viewer pédagogique de maps Quake3 continue doucement.

Il est désormais possible d’ajouter dans la vue à la première personne une surimpression des limites des triangles utilisés pour dessiner la scène. Ce mode est souvent connu sous le terme “wireframe”.

Cela permet de bien montrer l’influence de la tesselation des patchs de Bézier ou que certaines zones qui semblent complexes ne sont en fait composées que de peu de triangles mais sont associées à un shader assez malin.

 

Lien Permanent pour cet article : http://forma3dev.fr/2012/04/07/affichage-en-surimpression-du-wireframe-dans-le-quake3-viewer/

mar 02

Support des fenêtres dans le Quake3-viewer !

  Le viewer pédagogique de maps Quake3 avance doucement avec le support des fenêtres pour chacune des vues : FPS, carte et console. Cela permet d’organiser chaque vue comme on le souhaite, afin de mettre en évidence un aspect ou un autre du moteur 3D.

Lien Permanent pour cet article : http://forma3dev.fr/2012/03/02/support-des-fenetres-dans-le-quake3-viewer/

août 08

OpenGL 4.2 est disponible !

  • ARB_base_instance
  • ARB_transform_feedback_instanced
  • ARB_compressed_texture_pixel_storage
  • ARB_conservative_depth
  • ARB_internalformat_query
  • ARB_map_buffer_alignment
  • ARB_shader_atomic_counters
  • ARB_shader_image_load_store
  • ARB_shading_language_packing
  • ARB_texture_storage
  • ARB_shading_language_420pack
    • Continuer une ligne sur la suivante.
    • Support de l’encodage UTF-8.
    • Conversion implicite des valeurs de retour.
    • Const local.
    • Qualifier ordering.
    • Uniform block binding location.
    • Sampler unit binding location.
    • Initializer list.
    • Vector-type .length.
    • Scalar swizzles.
    • Texel offset constants.
  • ARB_separate_shader_objects

Lien Permanent pour cet article : http://forma3dev.fr/2011/08/08/opengl-4-2-est-disponible/

Articles plus anciens «