| Q&A |
Ozone3D,
Jerome Guinot (JeGX)
November 2006 |
| |
 |
"L'apprentissage
d'Hyperion se compte en minutes ! Après, tout
dépend de ce que l'on veut faire, mais on peut
aller très loin et bâtir des applications
complexes avec Hyperion
(script LUA orienté objet, gestion du réseau
/ sockets, etc.). Il est évident que pour développer
un jeu, il vaut mieux avoir de bonnes notions de programmation,
mais pour
les scènes simples, aucune connaissance en développement
n'est nécessaire. On peut dire
qu'Hyperion s'adapte au niveau de l'utilisateur."
<
Chromatic Aberration |
|
| |
|
| Q1 |
Ozone3D
développe des produits autour de la 3D. A qui s'adresse
ses logiciels ? |
| A1 |
Tout
d'abord quelques précisions sur oZone3D. oZone3D est
le nom du moteur 3D temps réel qui sert de fondation
aux logiciels 3D présents sur le site. oZone3D.Net est
la denomination du site web. L'équipe derrière
derrière le site oZone3D.Net est représentée
par l'association Hypergraphics-3D. Les logiciels que nous développons
sont destinés aussi bien au grand public amateur de 3D
qu'aux
professionnels. Hyperion, puisque c'est de lui qu'il s'agit
principalement, est décliné en trois versions:
free, indie et pro. Au niveau 3D temps réel, les trois
versions proposent les mêmes fonctionnalités. La
version free est idéale pour découvrir le produit
car elle permet de tout tester sans aucune limitation notable.
Le hobbyiste / fanatique de 3D, n'a pas à débourser
un centime d'euro pour tester le rendu realtime de son dernier
modèle fait avec 3D Studio ou Cinéma4D, ou encore
pour tester un nouveau shader GLSL de lumière. Quant
au professionnel, il peut avoir une vraie vision du soft et
de ses possibilités avant de l'acheter. De notre point
de vue, les professionnels sont tous ceux qui traitent quotidiennement
avec la 3D: infographistes/designers qui veulent faire des présentations
3D (interactives
ou non) de leurs objets, les studios de developpement de jeux
videos et les développeurs indépendants qui souhaitent
sortir rapidement un jeu à petit budget, ou encore les
architectes et autres professions similaires qui veulent rapidement
mettre en place une visite virtuelle. Hyperion étant
développé par une équipe 100% francophone,
toute la documentation qui l'accompagne est en français
(fait assez rare pour ce genre de soft) et bien sur aussi en
anglais. Cela nous donne pas mal de travail pour maintenir cette
documentation mais je sais les francophones y seront sans aucun
doute sensibles. |
| |
|
| Q2 |
Hyperion
permet de réaliser des présentations 3D, quels
sont les fichiers 3D pris en charge par le moteur ? Supportez-vous
Collada ? |
| A2 |
Effectivement
les présentations 3D font parties des innombrables applications
que l'on peut créer avec Hyperion. Actuellement il est
possible de charger directement les meshes à partir des
formats standards tels que les .3ds (3D Studio), les .obj (Alias
Wavefront)
ou les .fbx (kaydara filmbox) pour les principaux. Le format
le mieux supporté est le 3DS qui est exporté par
la plupart des solutions de modélisation comme 3D Studio
MAX ou Cinema4D. Le format 3DS impose quelques petites contraintes
pour l'infographiste mais
une fois qu'elles sont maitrisées, le 3DS est un excellent
format pour le chargement direct. L'obj est aussi un format
sympathique bien que la version actuelle d'Hyperion ne le charge
pas correctement dans certains cas. Mais ce problème
est a été résolu avec l'utilisation d'un
nouveau viewer 3D qui est en cours de développement:
HyperView3D. HyperView3D sera disponible d'ici quelques semaines
et gère correctement le format obj. Ce viewer est de
plus capable d'exporter les modèles 3D vers un format
propriètaire sécurisé qui ne peut être
lu que par Hyperion. Bien pratique pour diffuser une demo sur
le web ou envoyer un prototype à un client sans que l'utilisateur
final puisse
détourner l'utilisation de l'objet 3D. Un autre format
pratique est le format de modèle 3D XML du moteur oZone3D.
Etant en XML, il est très facile à charger mais
surtout facile à générer. Ce format supporte
le multitexturing avec des jeux de coordonnées de textures
différents pour chaque unité de texture. Ceci
est commode pour livrer un modèle avec sa texture de
base et une lightmap par exemple.
De plus, en utilisant les fonctionnalités de scripting
offertes par les logiciels de modélisation, l'infographiste
expérimenté pourra coder, avec le langage qu'il
connait, un "exporter" vers le format XML d'oZone3D.
Je Nous mettrons prochainement online prochainement un petit
tutoriel sur les quelques règles à respecter pour
modéliser correctement en vu d'une utilisation pour une
application 3D temps réel et plus
particulièrement pour Hyperion. Collada fait partie des
formats qui seront gérés par HyperView3D. Il est
cependant dommage que collada manque un peu de documentation
(pas évident de trouver sur le site de collada un exemple
de fichier collada). Pour un format qui a une vocation de à
devenir un standard, le minimum est de fournir des outils (sdk)
pour le charger rapidement avec de bons exemples de codes sources
et surtout des exemples de fichiers collada (*.dae) pour aider
le pauvre développeur 3D à intégrer collada
rapidement dans ses applications. Tout sera mis en oeuvre pour
le supporter le mieux possible. Le formalisme XML de collada
devrait aider et c'est ce formalisme qui fait la force de collada
et plus généralement de tous les formats basés
sur XML. |
| |
|
| Q3 |
Les
démo d'Hyperion sont impressionnantes : ombres, displacements,
phong... Est-il facile d'utiliser des effets aussi avancés
? |
| A3 |
Nous
pouvons dire oui sans hésitations, mais en adoptant
un principe de précaution. Pour les ombres c'est enfantin:
chaque mesh peut se comporter en shadow-caster (ou lanceur
d'ombre en bon français). Il suffit pour cela d'activer
au niveau de chaque mesh un boolean (true ou false). Concrêtement
cela donne:
| <mesh
name="monster" shadow_caster="TRUE"
/> |
Actuellement, seules les ombres volumiques
basées sur le stencil sont supportées. Les ombres
douces seront quant à elles bientot disponibles. Mais
il n'y a pas ugence car pour le moment peu de configurations
sont capables de faire touner correctement des
demos avec des ombres douces bien filtrées (très
douces...). Rendez-vous à la page suivante pour vous
en convaincre:
http://www.ozone3d.net/demos_projects/soft_shadows_benchmark.php
La plupart des effets impressionnants
sont basés sur les vertex et pixels shaders écrits
en GLSL (le langage de shading temps réel d'OpenGL).
Généralement, les shaders programmables permettent
de faire tout (et surtout n'importe quoi s'ils ne sont pas
manipulés correctement!). Certains shaders, comme celui
de Phong par exemple,
ne nécessitent pas de grandes connaissances: un simple
copier/coller de l'un des tutoriaux du site vers la demo finale
devrait suffire. Mais pour aller plus loin que le simple copier
/ coller qui à court terme est très limitatif
(sauf quand l'uber-shader ultime sera mis au point), il est
conseillé d'avoir quelques notions de base en programmation
des shaders afin de pouvoir les tweaker soi-même. Sur
le site oZone3D.Net, des tutoriaux sur la programmation des
shaders GLSL (écrits par JeGX, développeur principal
d'Hyperion) sont régulièrement publiés.
Ces tutoriaux utilisent Hyperion comme plateforme d'expérimentation
et permettent à ceux qui le souhaitent de pouvoir être
autonomes avec ces formidables outils graphiques que sont
les shaders temps réel. Dans un futur très proche,
il y aura une nouvelle section sur le site destinée
aux shaders GLSL. Ce sera une sorte de grande base de données
de shaders prêts à l'emploi. Chaque shader aura
sa fiche technique décrivant comment l'utiliser accompagné
d'un projet hyperion montrant le shader en action.
|
| |
|
| Q4 |
Faut-il
être programmeur pour l'utiliser, ou bien un infographiste
sous 3ds max peut générer lui même des exécutables
? |
| A4 |
Un
des but d'Hyperion est de mettre la 3D temps réel à
la portée de tous. La seule difficulté est de
savoir ouvrir un éditeur de texte comme le notepad
de Windows. Sur la page d'Hyperion ( http://www.ozone3d.net/hyperion.php#code_sample
), il y a un exemple de scène qui permet de présenter
un objet 3D. Le code est Hyperion est le suivant :
<hyperion>
<scene name="myScene" />
<camera name="Main_Camera" navigation_mode="FLY"
>
<position x="0.0" y="50.0" z="130.0"
/>
</camera>
<model name="myModel"
filename="baked_sphere.3ds"
texturing="TRUE" lighting="FALSE"
/>
</hyperion> |
Ce code génère une scène
3D avec une caméra et charge un modèle 3DS (baked_sphere.3ds).
Ce code est à la portée de n'importe quel infographiste.
Pour ce genre de cas simple, l'apprentissage d'Hyperion se
compte en minutes (et certainement qu'après avoir lu
ces lignes les lecteurs auront déjà compris
comment utiliser Hyperion). Après, tout dépend
de ce que l'on veut faire, mais on peut aller très
loin et bâtir des applications complexes avec Hyperion
(script LUA orienté objet, gestion du réseau
/ sockets, etc.). Il est évident que pour développer
un jeu, il vaut mieux avoir de bonnes notions de programmation
mais pour les scènes simples, aucune connaissance en
développement n'est nécessaire. On peut dire
qu'Hyperion s'adapte au niveau de l'utilisateur. Un utilisateur
ayant très peu ou pas de connaissance en prog 3D pourra
deja faire des scenes simples tandis qu'un utilisateur expérimenté
aux techniques 3D pourra se lancer dans des scènes
complexes..
|
| |
|
| Q5 |
Quel
est le rôle de LynX 3D Viewer Lite ? |
| A5 |
LynX
3D Viewer est un viewer d'objets 3D. Il est basé sur
le même moteur 3D que Hyperion et utilise donc les mêmes
librairies et plugins pour charger les modèles 3D. Le
LynX permet de rapidement savoir si un modèle 3D pourra
être chargé correctement dans Hyperion.
Mais au delà de cette simple fonction, le LynX permet
de décortiquer la structure d'un modèle 3D, de
savoir quels sont les meshes qui le composent, de connaitre
les matériaux utilisés et leurs propriétés.
Pour faire l'animation d'un modèle complexe comme une
voiture par exemple, il devient indispensable d'accéder
séparement aux meshes qui composent le modèle
(les roues en particulier) afin de pouvoir les faire tourner
par exemple. Dans ce cas, le LynX est d'une aide précieuse
pour récupérer les informations sur les roues
de la voiture: le nom des meshes, les materiaux les constituant,
les dimensions. Ces informations pourront être ensuite
exploitées dans Hyperion pour animer la voiture. Mais
comme dit précédemment, un nouveau viewer 3D (HyperView3D),
actuellement en développement, remplacera à court
terme le LynX. HyperView3D offre offrira plus de fonctionnalités
(comme l'ambient-occlusion) et surtout permettra d'exporter
le format de protection des modèles 3D. |
| |
|
| Q6 |
Sous
quelle licence sont proposés vos logiciels ? |
| A6 |
Hyperion
est disponible sous une licence commerciale pour les versions
pro et indie. La version free quant à elle est soumise
à une simple licence d'utilisation privée. HyperView3D
sera proposé avec les mêmes types de licence. |
| |
|
| Q7 |
Sous
quelles formes peuvent-être diffusés les contenus
créés ? Executables Windows, Linux?, MacOSX?,
Web ? |
| A7 |
On
peut faire le parallèle entre le fonctionnement d'Hyperion
et celui d'un navigateur web. Hyperion prend en entrée
des scripts XML dans la même logique qu'un browser web
prend des pages HTML. Il est donc possible de diffuser les sources
d'une démo accompagnées des medias (modèles
3D, textures, fichiers audio) qui pourra être lue par
toute personne possédant Hyperion. Les versions commerciales
d'Hyperion permettent en plus de créer une version binaire
de la scène. Ce fichier binaire, avec l'extension *.h3d,
encapsule tout le code XML, LUA et GLSL utilisé par la
démo. On se retrouve dans une situation proche de celle
d'Acrobat Reader: n'importe qui peut lire un pdf pour peu qu'il
ait le reader Acrobat sur son ordinateur. Avec le format h3d
c'est un peu la même chose: n'importe quelle personne
ayant Hyperion sera en mesure de lire une demo au format h3d.
L'intêret de cette solution est que la demo restera valable
pour toute les plateformes du moment que la plateforme possède
un reader Hyperion. Pour le moment, Hyperion est disponible
seulement pour la plateforme Windows. |
| |
|
| |
|
| |
|
 |
|
|