The first weblog devoted to Demoniak3D Demo-System

Real Time 3D Demo: Japanese Temple

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

Here are some explanations (in french only but there are some screenshots and a video) about the making of a virtual visit demo created for TDT3D asian architecture contest.

This demo will be available in the new Users’s Demos section that will be created on oZone3D.Net soon.

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

Here’s a screenshot of the alpha version of Demoniak3D editor that uses the same technology than Demoniak3D and offers a visual work. Demoniak3D editor is perfectly adapted to 3D graphics artists.

Read the rest of this entry »

Orchid Rendering

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

shadow shows us some new pictures of his Demoniak3D project about the modelling and rendering of an orchid. Just jump HERE (in french).

LuaFileSystem

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

LuaFileSystem is a small lib for LUA that makes it possible to manage OS’s directories and files (Windows, Linux, etc.). LuaFileSystem is a part of Demoniak3D’core since version 1.23.0. To use it, just call the lfs object in your Lua script. Coupled with Lua’s io lib, you can now code all file-management routines you wish! I’ve prepared a small demo that shows you how to use LuaFileSystem with Demoniak3D as well as a links compilation:

LuaFileSystem

DEMO:
- Demoniak3D LuaFileSystem Demo

LINKS:
- LuaFileSystem Reference
- LuaFileSystem Example: Directory iterator

Handling Several Keys Simultaneously

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

Yes it’s possible and it’s very easy to handle several keys in the same time in LUA. The following small demo allows you to press simultaneously on the X, C, V, B, N and M keys. The corresponding character is displayed.

DOWNLOAD:
- Demoniak3D Demo

HUD and Z-Order

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

It’s possible to specify the order in which HUDs will be displayed by tuning HUD’s z position and enabling depth test. The following code snippet show us how to display a red HUD over a white one (although the red HUD has been specified first in the XML script). Just pay attention to the z range: -1.0 to +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> 

Of course, this is also valid if the HUDs are LUA-dynamically created.

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 is available. This version fixes the watermark bug in the player that comes with the PRO version.

In the news side, Demoniak3D 1.23.0 adds the support of LuaFileSystem that makes it possible to manage the directories of Windows file system.
Useful to scan a full directory (with its sub directories) in order to read some data files. Some new LUA functions have been added to the VBQuad management.

For more detail, here is the full changelog:

  • 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

How to release a demo with the PRO version

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

The PRO version of Demoniak3D is nodelocked, i.e. it is locked to the computer. Then you can’t distribute Demoniak3D.exe file. In return, a Demoniak3D scene player comes with the PRO version (Demoniak3D_Player.exe). This player is only capable to read a scene in a binary format. That binary format is created by Demoniak3D PRO (CTRL+E). Pressing CTRL+E will make Demoniak3D
to create a file called demo.h3d in the demo’s folder. This file holds all the scene description (XML, LUA and GLSL) in binary format. Demo’s source code is now hidden and protected. To release the demo, just follow the procedure described in this entry (How to release a demo with the FREE version) with the following small differences:
- the executable file to be copied and renamed is now Demoniak3D_Player.exe.
- the demo’s main file is now demo.h3d (of course, you can rename this file). The name of this file has to be put in the auto_load attribute of startup_params node.

Et voilà, the release of a demo with the PRO version is not very difficult (from a Demoniak3D developper standpoint…).

How to release a demo with the FREE version

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

You can create with the FREE version of Demoniak3D a demo that is lauchable directly with a bouble-click on an executable file. But the end-user will always have access to demo’s source codes
(xml, glsl and lua files). Only the commercial version (PRO) of Demoniak3D makes it possible to protect demo’s source codes.

Once the demo coded and operational, just create a folder where you will copy your demo (xml, lua, glsl and media files). Then copy in that folder Demoniak3D.exe executable with its DLL and plugins (*.o3p). All plugins are not mandatory: if the demo, for instance, loads 3DS files only, vous can delete all others 3D loaders plugins (OBJ, etc.). Same thing for the particle_system_plugins folder: if you don’t use particle at all, the whole folder car be deleted. Now that the demo’s folder is ok, you need to do the following tasks:

- edit demoniak3d-config.xml file and change auto_load attribute of startup node. auto_load holds the name of the demo file: in our case it’s the main XML file, the one that contains the
root node demoniak3d.
- set to 0 check_version attribute. That will be disabled online check for new versions of Demoniak3D.
- rename Demoniak3D.exe: for example with myKool3DDemo.exe.
- archive all the demo in a nice zip file and put it in download somewhere in the Net.

The end user has only to unzip the demo and double-click on myKool3DDemo.exe to launch the demo.

Demoniak3D 1.22.0

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

Demoniak3D 1.22.0 is available. This version fixes the bug of the HYP_Input.SetMousePos() function (see WhishList forum) and adds an experimental support of the MRTs (Mutltiple Render Tagets) via the HYP_Scene.SetMultipleRenderTargets() function (see MRT thread).
MRTs are accessible through GLSL shaders. I will process the rest of the feature requests in the next releases.



Links:
- Download

TDT3D.com: new Demonak3D forum

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

The french portal of 3d computer graphics, www.tdt3d.com, has opened a new forum devoted to Demoniak3D. This forum is here: TDT3D – Demoniak3D Forum. You will be able to post your questions and talk about Demoniak3D in french or english as you want. Thanks to Benoît, the guru behind tdt3d website!

DemAux: auxiliary library

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

DemAux (shortcut for DEMoniak3d AUXiliary library) is a LUA library that offers additional functionalities to Demoniak3D LUA host-API. For this first version 0.1.0, DemAux integrates a 3d vectors handling module (math_vec3.lua), some basic mathematics functions (such as a random number generator with inferior and superior limits) and a scene objects handling module (object.lua). This library will grow with the time with the adding of new high level functionalities (such as spline creation — bezier and catmull-rom — for motion path based animations). Why such a library my friends? Simply to not make heavy Demoniak3D LUA API. The LUA API offers all low level functions you can’t create without an access to Demoniak3D internals (like setting the position of an object with HYP_Object.SetPosition). But all other functions that don’t require an access to Demoniak3D internals, can be coded and added
in DemAux by using LUA core functions and LUA host-API (such as DEM_MoveObjectAlongAxis function – object.lua file).

If you have coded a small piece of code that you find useful for Demoniak3D community, please feel free to contact me (jegx AT ozone3d DOT net) and I will be glad to add your work with all your credits into DemAux.

Links:
- DemAux Homepage

Demoniak3D 1.21.0

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

The creation of the Wish List / Feature Requests forum has been beneficial for Demoniak3D since most of changes of this new version comes from ideas posted in that forum. Thanks to all contributors!



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 and MAX 10

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

Good news for MAX 10 users. Seems the Wak exporter for MAX 9 works also with MAX 10 (still 32-bit). I’m waiting for other feedbacks…

Wak Plugin for MAX 9

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

The Wak plugin for 3D Studio MAX 9 is available in 32-bit version only. Thanks to Benoît for his test.

Just for refreshing your memory, Wak is an 3D models exporter for 3D Studio MAX. The exported format can be directly loaded with Demoniak3D like any *.3DS or *.OBJ file.

Wak’s homepage: www.ozone3d.net/wak/

How to Center the Pivot of a Mesh

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

Steph3D offers us a little function to center back the pivot of a mesh. Actually, in some cases, the local axis (or pivot or tripod) of a mesh are not centered on it but are shifted. This is a problem for executing, for instance, selft-rotations of a mesh.

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

Update of Useful Links

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

The useful links list has been updated with 4 news links:

1 – GLSL – language basis and GLSL – Additional notions.
Both pages explain the basis of GLSL in a simple way with many details. But these pages are in french…

2 – www.pitjamajusto.com: pitjamajusto.com provides free music in mp3 format, under a Creative Commons license. That means you can freely
download, listen to, copy, distribute (making CD’s to your friends or sharing in a peer-to-peer network) our music as long as you give credits to the authors.

3 – Intiation to Demoniak3D @ media-pixel.net: media-pixel.net offers an initiation to Demoniak3D in french
with a skateboard-based scene. The tutorial is well written and detailed. A good resource to start with Demoniak3D.

Blog in two languages

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

From now, posts will be available in two languages: french and english. This cool feature is done by this nice WordPress plugin: jLanguage. Each post written in french and english will display two icons in the top-right part of the post to switch language.

Wish List Forum

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

I’ve added a new forum for your wish list concerning Demoniak3D. Whether you have an idea, whether you notice a missing LUA function, whether you need a new tutorial or code sample, then don’t hesitate to spam this forum. I don’t guarantee to realize all your dreams but I’ll try to do my best for.

The 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.