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
 



Demoniak3D Old Building Demo

Release Date: January 26, 2008


» Back To Demos Index

Stumble it! | | | |


1 - Images Gallery

2 - Downloads

3 - Making-Of

4 - Useful Links

5 - Credits




1 - Images Gallery


Demoniak3D Old Building Demo
Demoniak3D Old Building Demo
Demoniak3D Old Building Demo




2 - Downloads


Demoniak3D Old Building Demo
Win32 Executable + Source code
Zip Archive - (39804k)
Release Date: January 27, 2008

Dézippez l'archive et lancez DEMO_Old_Building.exe. C'est tout! Le code source de la démo se touve dans le fichier DEMO_Old_Building_1280x1024.xml.


Pour tout bug-report ou feedback, envoyez un mail à jegx[AT]ozone3d[DOT]net et ajoutez "[DEMO FEEDBACK]" au sujet. Vous pouvez aussi poster vos feedbacks dans le topic de la demo: Demoniak3D Demo - Old Building.

Configuration recommandée:
  • Système d'Exploitation: Windows XP SP2 / Vista
  • Processeur: Pentium III ou AMD Athlon et supérieur - 800 MHz et supérieur
  • Mémoire: 1Go RAM et supérieur
  • Carte Graphique: ATI Radeon (avec les derniers pilotes Catalyst) ou NVIDIA GeForce (avec les derniers pilotes Forceware) et au moins 256Mo de mémoire graphique
  • Résolution: 1280x1024 - 32 bits/pixel

3 - Making-Of

Voici un making-of rapide de la réalisation de la demo du vieil immeuble.

3.1 - Préparation du modèle 3D

Le point de départ de la démo est la modélisation de l'immeuble. La modélisation a été faite avec Moment of Inspiration (MoI) et retouchée dans Cinema4D par ce bon vieux Steph3D.

Demoniak3D Old Building Demo - Modelling in MoI
Modélisation avec MoI

Une fois la modélisation terminée, il faut encore pouvoir extraire (le mot est faible!) l'oeuvre de C4D. Pour y parvenir, nous avons utilisé le plugin Riptide qui permet d'export le modèle en OBJ.

Le modèle OBJ de l'immeuble est ensuite chargé dans le viewer Hyperview3D (disponible prochaiement donc ne me demandez pas pour le moment où on peut le télécharger) afin de vérifier le bon export et surtout de l'enregistrer au format o3mff afin de le protéger des regards indiscrets:

Demoniak3D Old Building Demo

Demoniak3D Old Building Demo

Le format o3mff stocke la géométrie de l'objet ainsi que les textures. Pour cette démo, les textures ont été cuites (ou bakées comme on dit) directement dans Cinema4D. Cela permet d'avoir un rendu réaliste (qui tient compte des ombres et autres paramètres d'illumination globale) pour une pénalité de rendu quasi nulle puisqu'aucun calcul de lumière n'est effectué.

Au passage on en profite pour regarder quels sont les matériaux associés aux vitres de l'immeuble et des lampadaires. Ceci est important car la démo a besoin d'accéder à ces matériaux pour leur ajouter les effets de réflection.

Demoniak3D Old Building Demo

Maintenant que le gros du travail de préparation est fait, on peut se lancer dans le codage de la démo Demoniak3D.



3.2 - Chargement du modèle 3D

Demoniak3D Old Building Demo
<model name="TheBuilding" 
	   filename="data/building_v1.o3mff" 
	   lighting="FALSE" 
	   texturing="TRUE" 
	   use_vbo="TRUE" >
	   
	<loading_option
	load_texture="TRUE" 
	load_normal_map="FALSE" 
	pixel_format="RGB_BYTE" 
	auto_gen_mipmaps="FALSE" 
	compute_vertices_normals="FALSE" 
	compute_tangent_space_vectors="FALSE" 
	average_vertices_normals="FALSE" 
	free_pixmap_after_upload="TRUE" 
	s3tc="FALSE" />		   
</model>


3.3 - Environnement à l'infini: la skybox

Demoniak3D Old Building Demo

Le code de chargement de la skybox est localisé dans l'élément xml <skybox>.



3.4 - Réflection sur les vitres: environmement mapping

Afin de donner plus de réalisme au vitres de l'immeuble et aux carreaux des lampadaires (qui apparaissent blancs dans les images précédentes), nous allons appliquer un simple shader GLSL de sphere mapping. Pour plus de détail sur la technique du sphere mapping voir: Spherical Environment Mapping.

OpenGL.org

Le shader suivant est appliqué aux matériaux composants les surfaces transparentes (vitre et vitre_lp dans le code source):

[Vertex_Shader]
varying vec3 u, n;
void main()
{	
	gl_Position = ftransform();		
	gl_TexCoord[0] = gl_MultiTexCoord0;
	u = normalize( vec3(gl_ModelViewMatrix * gl_Vertex) );
	n = normalize( gl_NormalMatrix * gl_Normal );
	gl_FrontColor = gl_Color;
}

[Pixel_Shader]
varying vec3 u, n;
uniform sampler2D envMap;
void main (void)
{
	vec3 r = reflect( u, n );
	float m = 2.0 * sqrt( r.x*r.x + r.y*r.y + (r.z+1.0)*(r.z+1.0) );
	vec2 tc;
	tc.s = r.x/m + 0.5;
	tc.t = r.y/m + 0.5;

	vec4 env = texture2D( envMap, tc * 1.0) * 0.7;
	env.a = 0.0;
	gl_FragColor = gl_Color + env;
}

Ce shader utilise la texture d'environnement suivante:

Demoniak3D Old Building Demo


Demoniak3D Old Building Demo


3.5 - Petite interface graphique

Le code suivant dans la démo permet d'inclusion d'une petite librairie de gestion d'interface graphique:

<include lib="lib_demo_interface.xml" />

Demoniak3D Old Building Demo


3.6 - Fumée de la cheminée: système de particules

Le système de particules permet de réaliser toutes sortes de petits effets graphiques interessants dont celui de la fumée. Le secret réside dans le choix de la texture des particules et du réglage des coefficients de blending:

Demoniak3D Old Building Demo

Le code de la fumée se situe au niveau de l'élément <particle_system>:

Demoniak3D Old Building Demo


3.7 - Animation de caméra: motion-path

La démo possède un mode automatique: au bout de cinq secondes d'inactivité de la souris, la caméra passe en mode automatique et la trajectoire de la caméra suit un chemin d'animation ou motion-path. Ce motion-path a été réalisé avec le CameraPathEditor.

Demoniak3D Old Building Demo


3.8 - La petite touche de fun: l'équalizer quadribandes

L'équalizer quadribandes permet de suivre les variation de la musique de fond par lecture du buffer audio. L'équalizer est créé dynamiquement en LUA (voir la fonction BuildEqualizer()). Ensuite plus la lecture du buffer audio (HYP_Sound.GetSpectrumValue()) nous permet de bouger les vertices de chacun des 4 bandes.

Demoniak3D Old Building Demo


Voilà, c'est terminé pour ce petit making-of. J'ai laissé volontairement de coté beaucoup de détails par manque évident de temps. Mais je répondrai avec grand plaisir à vos questions sur le fil de discussion de cette démo: Old Building @ Demoniak3D Forum. Pour ce qui concerne la modélisation avec Cinema4D, le fil de discussion est le suivant (en français): Vieil Immeuble @ Steph3D Forum.



4 - Useful Links


5 - Credits


=:[CODE]:=
Author:Jerome 'JeGX' Guinot
Contact:jegx [at] ozone3d [dot] net
Homepage:www.ozone3d.net


=:[GFX 2D/3D]:=
Author:Stephane 'Steph3D' Laux
Contact:steph [at] steph3d [dot] net
Homepage:www.steph3d.net


=:[Musik]:=
Author:Virgill & Tasium
Music Name:Elements - (C)2001
Homepage:@ scenemusic


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.0029709339141846 seconds.