GeeXLab
Current version: 0.45.1
>GeeXLab homepage

FurMark
Current version: 1.30.0
>FurMark homepage

GPU Caps Viewer
Current version: 1.55.0.0
>GPU Caps Viewer homepage

GPU Shark
Current version: 0.26.0.0
>GPU Shark homepage


Blogs
>JeGX's HackLab

Geeks3D's Articles
>GPU Memory Speed Demystified

>Multi-Threading Programming Resources

>GeForce and Radeon OpenCL Overview

>How to Get your Multi-core CPU Busy at 100%

>How To Make a VGA Dummy Plug

>Night Vision Post Processing Filter

PhysX FluidMark
Current version: 1.5.4
>FluidMark homepage

TessMark
Current version: 0.3.0
>TessMark homepage

ShaderToyMark
Current version: 0.3.0
>ShaderToyMark homepage
>ShaderToyMark Scores

Demoniak3D
Current Version: 1.23.0
>Demoniak3D
>Download
>Libraries and Plugins
>Demos
>Online Help - Reference Guide
>Codes Samples
 
Introduction à la Demoscene

Par Jérôme GUINOT aka 'JeGX' - The oZone3D Team
jegx [at] ozone3d [dot] net

Version initiale: 30 Septembre 2005
Dernière mise à jour: 03 Janvier 2006



"Sin/Cosine are the humble bricks with which one can build cathedrals, as long as there is enough patience and imagination!"
Navis - Andromeda Software Development


Demo, demoscene, demomaker, demoparty... Tous ces mots sont synonymes de passion, de sacrifice, de nuits blanches (je parle de celles où l'on voit soudainement, à une heure qui n'en est plus vraiment une, un voile blanc, une sorte de glow sorti d'un rendu hdr, qui se pose sur la rétine et qui nous dit: vas te coucher, ça ne sert plus à rien...), de dépendance physique vis-à-vis du code, des gfx ou de la zik, et enfin de paix retrouvée lorsque la prod est là!

Enfin voilà, après cette petite intro qui résume assez bien l'ambiance, je vais essayer de vous présenter un peu ce monde de passionné(e)s des techniques multimédias et plus particulièrement des démos, terme ayant une signification précise dans cet univers extrême.


ASD - Planet Risk


Tout d'abord clarifions le vocabulaire. La demoscene est le terme général pour qualifier la scène demo.

Une demo peut être considérée comme une sorte de clip-video multimédia. Mais, à la différence d'une vidéo, chaque image (ou frame) d'une demo est générée en temps réel par de la programmation et de l'algorithme! Une demo est un dosage entre de la programmation (C++ ou autre), des graphismes 2D/3D et de la musique. C'est d'ailleurs la musique qui impose le tempo de la demo!

Petit détail mais qui a son importance: une démo est un programme graphique non-interactif: vous ne pouvez que la contempler...

Un demomaker est une personne (seule ou faisant partie d'un group - le demogroup) qui participe à la création d'une demo. Les demomakers sont classifiés en 3 catégories. La première est celle des coders. Ces êtres étranges sont responsables du codage de la demo, généralement un mélange de C++ / OpenGL / Direct3D. La seconde catégorie est celle des graphistes 2D/3D, responsables de la création des médias visuels (textures, modèles 3D). Mais attention, ces graphistes ont des contraintes liées à la 3D temps réel (textures dans une certaine résolution ou modèles 3D devant respecter des critères de nombre de polygones, matériaux, textures...) ce qui complique leur travail. Enfin la troisième catégorie est celle des musiciens, ceux-là mêmes qui composent les bandes son des demos.

Une demoparty est un événement réunissant des demomakers et groupes de demos, qui se déroule dans des endroits permettant de rassembler plusieurs centaines voire milliers (pour les plus importantes demoparties) de passioné(e)s. Ces endroits peuvent être, par exemple, des gymnases ou salles de fêtes. Parmis les demoparties les plus importantes, on peut citer l'Assembly (Finlande - temple de la demo) qui rassemble chaque année plusieurs milliers de personnes!

Une demoparty comporte plusieurs types de challenges: 3D temps réel, musique, gfx, tuning/overclocking (il m'a semblé avoir vu à ce sujet un résultat de + de 14000 points au 3DMark05 lors de l'Assembly 05), wild et d'autres encore dont l'énumération serait inutile et fastidieuse. Pour ce qui nous interesse, les contests de prog realtime sont répartis en:
  • Intro 256: le code exécutable de la demo et ses données tiennent en 256 octets. 100% assembleur!
  • Intro 4k: le code exécutable de la demo et ses données tiennent en 4 ko. C/C++ ou assembleur!
  • Intro 64k: le code exécutable de la demo et ses données tiennent en 64 ko. C/C++ ou assembleur!
  • Demo: la discipline reine. C'est la super production. Il n'y a pas de taille stricte, celle-ci dépendant des demoparties. En moyenne, la taille d'une demo se situe autour des 10Mo (exe+media).

Voici des liens sur quelques sites de demoparties actives:
Et voici 2 liens intéressants pour compléter ce que je viens de dire:

La première chose à faire pour essayer de comprendre la demoscene est simplement de regarder des demos. Tout d'abord, assurez-vous que votre machine soit opérationnelle (carte graphique 3D et drivers correctement installés afin d'exploiter OpenGL ou Direct3D). Une fois que c'est ok, dirigez-vous sur un des sites suivants afin de vous mettre au parfum des dernières actus de la demoscene et surtout d'y télécharger les productions des dernières demoparties:
Si vous disposez d'une config musclée, alors offrez-vous un spectacle grandiose en regardant les demos du groupe Andromeda Software Development (asd.demoscene.gr). Ces prods (Planet Risk ou la toute dernière Iconoclast - première à l'Assembly05) sont vraiment impressionnantes par leur contenu, surtout si l'on pense que c'est codé en C++ sans pratiquement l'aide d'aucun logiciel... Ce type de demo place la barre très très haut. Mais en la regardant (pour ceux qui peuvent...) on commence à saisir la folie créatrice qui règne dans les boîtes craniènnes des demomakers.


ASD - Iconoclast


Un autre moyen pour regarder facilement un max de démos est de se brancher sur demoscene.tv. Pour cela il vous faut le lecteur multimédia Winamp et le fichier demoscene_tv_listen.pls (vous pouvez le downloader à la fin de la page) qui permet la lecture en streaming. Vous chargez ce fichier dans Winamp et vous avez en continu un flux de démos et intros avec toutes les infos sur les auteurs. Vraiment sympa!

Voici une sélection des sites de quelques demogroups:
Si l'envie de coder votre première demo vous assaillit, il y a plusieurs façons de vous y prendre:
  • Vous savez coder en C++. Allez trainer sur les sites de programmation 3D et glaner un maximum de tutoriaux sur la façon de coder des petits effets en OpenGL ou Direct3D. Un excellent point de départ se situe sur ce site même: OpenGL / Direct3D Tutorials. Une fois que vous avez les quelques bases de prog 3D, essayez de trouver des codes sources de demos (pas évident à trouver mais certains groupes généreux releasent de temps à autres les sources complètes de tout leur arsenal) et analysez-les. Ils sont une source inépuisable pour apprendre les techniques de programmation des demos.
  • Vous n'êtes absolument pas un gourou du C++: une seule solution: Demoniak3D. La demo suivante Suffocate SB01 a été codée en moins d'une journée. Je vous laisse imaginer ce que vous pouvez arriver à faire avec quelques jours de travail.



Downloads



Demoscene.tv Winamp stream


GeeXLab demos


GLSL - Mesh exploder


PhysX 3 cloth demo


Normal visualizer with GS


Compute Shaders test on Radeon


Raymarching in GLSL



Misc
>Texture DataPack #1
>Asus Silent Knight CPU Cooler
Page generated in 0.0019721984863281 seconds.