The first weblog devoted to Demoniak3D Demo-System

Démo 3D temps réel: Temple du ciel

September 8th, 2008 Posted in Demos | No Comments »
  • English
  • French

Voici quelques explications (avec screenshots et video) sur le making of d’une demo de visite virtuelle qui a été faite pour le concours TDT3D sur l’architecture asiatique.

Cette demo sera disponible dans la nouvelle section Demos Utilisateurs qui sera créée prochainement sur oZone3D.Net.

URL: Temple of Heaven @ shadow.fr

Read the rest of this entry »

DemoniakED Alpha

August 5th, 2008 Posted in 3D, Demoniak3D, GLSL, Lua, OpenGL, Programming, Utility, Wip | 1 Comment »
  • English
  • French

Voici une capture de la première version alpha de DemoniakED qui utilise la même technologie que Demoniak, mais permet un travail visuel et plus proche d’un logiciel 3D classique, et donc bien plus accessible aux infographistes. D’autres captures ici

Read the rest of this entry »

Rendu d’une Orchidée

May 13th, 2008 Posted in Wip | No Comments »
  • English
  • French

shadow nous montre quelques images de son projet de modélisation et de rendu d’une orchidée avec Demoniak3D. Tout se passe ICI.

LuaFileSystem

April 30th, 2008 Posted in Lua, Tutorials | 3 Comments »
  • English
  • French

LuaFileSystem est une petite lib pour LUA qui permet de gérer les répertoires et fichiers du système de fichier de l’OS (Windows, Linux, etc.). LuaFileSystem est intégrée directement dans le core de Demoniak3D depuis la version 1.23.0. Pour l’utiliser il suffit d’invoquer l’objet lfs dans votre script LUA. Couplé avec la lib io de Lua, vous pouvez maintenant coder toutes les routines de gestion de fichiers que vous souhaitez! Je vous ai préparé une petite demo qui montre comment utiliser LuaFileSystem avec Demoniak3D ainsi qu’une petite compilation de liens:

LuaFileSystem

DEMO:
- Demoniak3D LuaFileSystem Demo

LINKS:
- LuaFileSystem Reference
- LuaFileSystem Example: Directory iterator

Gestion de Plusieurs Touches Simultanément

April 29th, 2008 Posted in Demos, Tips'n'Tricks, Tutorials | No Comments »
  • English
  • French

Oui il est possible et même très simple de gérer l’appui sur plusieurs touches du clavier en même temps en LUA. La petite démo suivante vous permet d’appuyer simultanément sur les touches X, C, V, B, N et M. La lettre correspondante de chaque touche est affichée.

DOWNLOAD:
- Demoniak3D Demo

HUD et Ordre en Z

April 29th, 2008 Posted in Lua, Tips'n'Tricks, Tutorials | No Comments »
  • English
  • French

Il est possible de spécifier l’ordre dans lequel sont affichés les HUD en jouant sur la position z du HUD et en activant le test de profondeur (depth-test). Le bout de code suivant nous montre comment afficher un HUD rouge par dessus un HUD blanc (bien que le HUD rouge ait été déclaré en premier dans le script XML). Il faut juste faire attention à la plage de valeurs de z qui est comprise entre -1.0 et +1.0.

<hud name="Red_Hud" render="TRUE" >
	<position x="-30.0" y="-20.0" z="0.7" />
	<size width="100" height="100" />
	
	<vertex_color index="0" 
				  r="1.0" g="0.0" b="0.0" a="1.0"  />
	<vertex_color index="1" 
				  r="1.0" g="0.0" b="0.0" a="1.0"  />	
	<vertex_color index="2" 
				  r="1.0" g="0.0" b="0.0" a="1.0"  />	
	<vertex_color index="3" 
				  r="1.0" g="0.0" b="0.0" a="1.0"  />	
</hud>

<hud name="White_Hud" render="TRUE" >
	<position x="-50.0" y="0.0" z="0.8" />
	<size width="100" height="100" />
</hud>


<script name="init_scene" run_mode="INIT" >
	<raw_data><![CDATA[	 
	
	HYP_Object.SetDepthBufferState("White_Hud", 1);
	HYP_Object.SetDepthBufferState("Red_Hud", 1);
	
	HYP_Object.SetPosition("Red_Hud", -30, -20, 0.9);

	]]></raw_data>
</script> 

Bien sur, ceci est aussi valable si les HUDs ont été créés dynamiquement avec LUA.

DOWNLOAD:
- DEMONIAK3D-HUD-Z-ORDER-DEMO.zip

Demoniak3D 1.23.0

April 29th, 2008 Posted in Demoniak3D, News | 1 Comment »
  • English
  • French

Demoniak3D 1.23.0 est disponible. Cette version corrige le bug du watermark du player Demoniak3D de la version PRO.

Du coté des nouveautés, Demoniak3D 1.23.0 supporte la lib LuaFileSystem qui permet de gérer les répertoires du système de fichiers de Windows. Pratique
par exemple pour parcourir une arborescence de fichiers de données. Quelques nouvelles fonctions LUA ont été ajoutées pour la gestion des VBQuads.

Pour plus de détails, voilà le changelog complet:

  • New: added new Lua lib for dealing with directories: LuaFileSystem 1.4.0.
    You can use this lib via the lfs object. For example to get the current dir,
    just write cur_dir = lfs.currentdir().

  • New: added new functions to deal with VBQuad in HYP_Mesh lib: VBQuad_Create(), VBQuad_Destroy(), VBQuad_SetQuadVertexUV() and VBQuad_GetQuadVertexUV() (see here).
  • New: added calculator element in demoniak3d-config.xml in order to specify the full path
    to your favorite calculator program (see here).

  • New: added new attribute to scene node: use_window_offset. If you set it to FALSE,
    you can reload a scene without affecting the window position (see here).

  • Bugfix: watermark was always displayed in Demoniak3D_Player.



Links:
- Download Page

Comment livrer une démo avec la version PRO

March 18th, 2008 Posted in Tips'n'Tricks, Tutorials | 1 Comment »
  • English
  • French

La version PRO de Demoniak3D est nodelocked, c’est à dire qu’elle est liée à la machine. Il n’est donc pas possible de distribuer le fichier Demoniak3D.exe. En revanche, la version PRO est livrée avec un player de scènes Demoniak3D (Demoniak3D_Player.exe). Ce player ne peut lire qu’une scène en format binaire. Ce format binaire est créé par Demoniak3D PRO (CTRL+E). En appuyant sur CTRL+E, Demoniak3D PRO va créer un fichier demo.h3d dans le répertoire de la demo. Ce fichier contient toute la description de la scène (XML, LUA, GLSL) en binaire. Le code source de la demo est maintenant caché des regards indiscrets. Pour livrer la démo, suivez la procédure décrite dans ce billet (Comment livrer une démo avec la version FREE) avec les petites différences suivantes:
- le fichier exécutable à copier et à renommer est Demoniak3D_Player.exe.
- le fichier principal de la démo est demo.h3d (vous pouvez bien sur le renommer). Ce fichier est à mettre dans l’attribut auto_load du noeud startup_params.

Et voilà, la livraison d’une démo avec la version PRO n’est pas plus compliquée que ça (d’un point de vue développeur Demoniak3d…).

Comment livrer une démo avec la version FREE

March 18th, 2008 Posted in Tips'n'Tricks, Tutorials | 1 Comment »
  • English
  • French

Il est possible avec la version FREE de Demoniak3D de créer une démo qui se lance directement en double-cliquant sur un fichier exécutable. Mais l’utilisateur final aura toujours accès aux codes sources
de la démo (fichiers xml, lua, glsl). Seule la version commerciale (PRO) de Demoniak3D permet de protéger les codes sources des démos.

Une fois la démo codée et opérationnelle, il suffit de créer un répertoire dans lequel vous copierez votre démo (fichiers xml, lua, glsl et medias). Ensuite vous copiez dans ce répertoire l’exécutable Demoniak3D.exe accompagné de ses DLL et plugins (*.o3p). Tous les plugins ne sont pas nécessaires: si par exemple la demo ne charge que des fichiers .3DS, vous pouvez supprimer les plugins OBJ, FBX, et ainsi de suite. Idem pour le répertoire particle_system_plugins: si vous n’utilisez pas de particules, ce répertoire entier peut être supprimé. Il en va de même pour les fichiers d’aide de Demoniak3D: ils peuvent être supprimés. Maintenant que la structure du répertoire de la démo est en place, il vous reste à faire les choses suivantes:

- éditer le fichier demoniak3d-config.xml et modifier l’élément auto_load du noeud startup_params. auto_load contient le nom du fichier de la démo: dans notre cas il s’agit du fichier XML principal
de la demo (celui qui contient le noeud racine demoniak3d).
- affecter la valeur 0 à l’élément XML check_version. Cela désactivera la vérification online des mises à jours de Demoniak3D.
- renommer Demoniak3D.exe: par exemple en myKool3DDemo.exe.
- mettre toute la demo dans un beau fichier zip et le mettre en téléchargement quelque part sur le Net.

L’utilisateur final n’a plus qu’à dézipper la démo et cliquer sur myKool3DDemo.exe pour lancer la démo!

Demoniak3D 1.22.0

March 18th, 2008 Posted in News | No Comments »
  • English
  • French

Demoniak3D 1.22.0 est disponible. Cette version corrige le bug de la fonction HYP_Input.SetMousePos()
(voir WhishList forum) et ajoute un support expérimental des MRTs (Mutltiple Render Tagets) via la fonction HYP_Scene.SetMultipleRenderTargets() (voir MRT thread).
Les MRTs sont accessibles via les shaders GLSL. Je prendrais en compte les autres demandes du forum WishList lors des prochaines releases.



Links:
- Download

TDT3D.com: nouveau forum Demoniak3D

March 18th, 2008 Posted in News | No Comments »
  • English
  • French

Le portail francophone de l’infographie 3D, www.tdt3d.com, vient d’ouvir un nouveau forum consacré à Demoniak3D. Ce forum se trouve ici: TDT3D – Forum Demoniak3D. Vous pourrez poser vos questions et broder autour de Demoniak3D en français ou en anglais comme bon vous semble. Un grand merci à Benoît, le gourou qui se cache derrière le site tdt3d.

DemAux: librairie auxiliaire

March 18th, 2008 Posted in Lua | No Comments »
  • English
  • French

DemAux (pour DEMoniak3d AUXiliary library) est une librairie LUA qui propose des fonctionnalités complémetaires aux fonctions de base de la l’API hôte LUA de Demoniak3D (LUA host-API).
Pour cette première version 0.1.0, DemAux intégre un module de manipulation de vecteurs 3d (math_vec3.lua), quelques fonctions mathématiques de base (comme un générateur de nombres aléatoires avec borne inférieure et supérieure) et un module de manipilation des objets de la scene (object.lua). Cette librairie est destinée à grandir avec l’ajout de nouvelles fonctions de haut niveau (creation de splines — bezier et catmull-rom — pour les chemins d’animations par exemple). Pourquoi une telle librairie? Tout simplement pour ne pas alourdir l’API LUA de Demoniak3D. L’API LUA offre toutes les fonctions de bas niveau qu’il n’est pas possible de créer sans avoir accès au code de Demoniak3D (comme par exemple fixer la position d’un objet avec HYP_Object.SetPosition). Mais toutes les autres fonctions qui ne nécessitent pas un accès direct au coeur de Demoniak3D peuvent etre codées dans DemAux en se basant sur les fonctionnalités de LUA et sur l’API de Demoniak3D (comme par exemple la fonction DEM_MoveObjectAlongAxis – fichier object.lua).

Si vous avez codé une petite routine que vous trouvez utile pour la communauté Demoniak3D, contactez-moi (jegx AT ozone3d DOT net) et je me ferai un plaisir de l’intégrer à la lib DemAux avec tous vos crédits, cela va de soi!

Links:
- DemAux Homepage

Demoniak3D 1.21.0

February 26th, 2008 Posted in News | No Comments »
  • English
  • French

Le mise en place du forum Wish List / Feature Requests a été bénéfique pour Demoniak3D puisque l’essentiel des changements de cette nouvelle version vient des idées postées dans ce forum. Un grand merci à tous ceux qui y ont contribué.



Links:
- Download

Changelog:

  • New: added GetPitch(), GetYaw(), GetRoll(), GetAbsolutePitch(), GetAbsoluteYaw() and GetAbsoluteRoll() to HYP_Object lib (see here).
  • New: added SetMousePos() to HYP_Input lib (see here).
  • New: added CreateGizmo() and DestroyGizmo() to HYP_Object lib (see here).
  • New: added Destroy() to HYP_Object lib (see here)
  • Bugfix: in lens flare engine. In some situations (for instance camera behind the light source and mesh in front of light source) the flares were not displayed. Thanks to John Difool for this bug-report.
  • Bugfix: tangent space vectors are now properly updated after averaging normals with average_normals attribute of mesh node (see here.)

Wak Exporter et MAX 10

February 20th, 2008 Posted in News | No Comments »
  • English
  • French

Bonne nouvelle pour les utilisateurs de MAX 10. Il semblerait que l’exporter Wak pour MAX 9 fonctionne aussi avec MAX 10 (toujours en version 32 bits). J’attends d’autres retours à ce niveau…

Plugin Wak pour MAX 9

February 19th, 2008 Posted in News | No Comments »
  • English
  • French

Le plugin Wak pour 3D Studio MAX 9 est disponible en version 32-bits uniquement. Un petit merci au passage à Benoît pour son test du plugin.

Pour mémoire, Wak est un exporter de modèles 3D pour 3D Studio MAX. Le format exporté peut être directement chargé avec Demoniak3D comme n’importe quel fichier *.3DS ou *.OBJ.

La homepage de Wak: www.ozone3d.net/wak/

Comment centrer le Pivot d’un Mesh

February 12th, 2008 Posted in Lua, Tips'n'Tricks | No Comments »
  • English
  • French

Steph3D nous propose une petite fonction pour recentrer le pivot (ou tripod) d’un mesh. En effet dans certains, le repère local (ou pivot ou tripod) d’un mesh n’est pas centré sur ce dernier mais décalé. Ce qui pose des problèmes pour effectuer des rotations du mesh autour de lui même par exemple.

function AutoCentre(mesh_id)
	local x, y, z = HYP_Object.GetBoundingVolumeAbsoluteCenter( mesh_id );
	HYP_Mesh.SetPivotPosition(mesh_id, x, y, z );
end

Mise à jour des Liens Utiles

February 11th, 2008 Posted in News | No Comments »
  • English
  • French

La liste des liens utiles a été mise à jour avec 4 nouveaux liens:

1 – GLSL – Les bases du langage et GLSL – Notions supplémentaires.
Ces deux pages expliquent les bases du GLSL de manière simple et relativement détaillé. Cerise sur le gateau: c’est en français.

2 – www.pitjamajusto.com: site de musiques gratuites au format mp3.

3 – Intiation à Demoniak3D @ media-pixel.net: le site media-pixel.net vous propose un tutoriel d’initiation à Demoniak3D tout en français avec la mise en scène d’un skateboard. Le tutorial est bien écrit et toutes les étapes sont bien détaillées. Une bonne resource pour aborder Demoniak3D.

Blog en deux langues

February 11th, 2008 Posted in News | 2 Comments »
  • English
  • French

A partir de maintenant les billets seront en deux langues: français et anglais. Cette prouesse technique est réalisable grâce à ce super plugin pour WordPress: jLanguage. Chque billet écrit en français et en anglais affichera dans la partie supérieure droite deux icônes pour le choix de la langue.

Wish List Forum

February 10th, 2008 Posted in FR, News, UK | 2 Comments »
  • English
  • French

Je viens d’ajouter un nouveau forum pour toutes les demandes de nouvelles fonctionnalités pour Demoniak3D. Si vous avez une idée en tête, si vous voyez qu’il manque une fonction LUA, si un nouveau tutorial ou code sample pour expliquer telle ou telle fonctionnalité vous manque, alors n’hésitez pas spammer ce forum. Je ne garantie pas d’exauser tous vos souhaits mais je ferai de mon mieux.

Le forum: Demoniak3D Wish List

Average Normals et Bump Mapping

February 8th, 2008 Posted in FR, Tips'n'Tricks | 2 Comments »

Demoniak3D possède un petit bug dans la gestion des normals des meshs en XML. Lorsque l’on utilise l’attribut average_normals="TRUE"
et que l’on fait du bump mapping, le vecteur tangent nécessaire au bump mapping dans le vertex shader n’est pas mis à jour correctement. Il en resulte
des zones où le rendu est faux (pôle de la sphere):

En attendant la correction du bug, je vous propose le workaround suivant:

<script name="init" run_mode="EXECUTE_ONCE" >
	<raw_data><![CDATA[
	
	HYP_Object.AverageNormals("myMesh");
	HYP_Object.ComputeTangentSpace("myMesh");
	
	]]></raw_data>
</script>

En fait il suffit de mettre à jour les vecteurs tangents manuellement après avoir moyenné les normales.
Merci à John Difool pour m’avoir signalé le bug.