X3D #
X3D, ou Extensible 3D, est un standard international ISO/IEC ouvert pour la représentation et la communication de graphiques 3D interactifs sur le web. Ce format XML facilite la création de contenus 3D portables, visualisables dans des navigateurs, sans plugins supplémentaires. Maintenu par le Web3D Consortium, X3D évolue continuellement pour répondre aux besoins en visualisation scientifique, en éducation, et en réalité virtuelle/augmentée sur le web.
Prenons un exemple classique d’une scène X3D simple affichant un cône rouge tournant sur lui-même.
<X3D profile='Immersive' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-4.0.xsd'>
<head>
<meta name='title' content='Simple Cone'/>
</head>
<Scene>
<WorldInfo title='Simple rotating cone'/>
<Background skyColor='0 0.5 1'/>
<Viewpoint position='0 0 5'/>
<DirectionalLight/>
<TimeSensor DEF='Clock' cycleInterval='4' loop='true'/>
<Transform DEF='Spinner'>
<Shape>
<Cone bottomRadius='1' height='2'/>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
</Shape>
</Transform>
<OrientationInterpolator DEF='SpinPath' key='0 0.5 1' keyValue='0 1 0 0, 0 1 0 3.14159, 0 1 0 6.28318'/>
<ROUTE fromNode='Clock' fromField='fraction_changed' toNode='SpinPath' toField='set_fraction'/>
<ROUTE fromNode='SpinPath' fromField='value_changed' toNode='Spinner' toField='rotation'/>
</Scene>
</X3D>
Ce code définit une scène basique dans le profil Immersive de X3D version 4.0. La balise <Background> crée un ciel bleu clair, <Viewpoint> positionne la caméra à 5 unités sur l’axe Z pour voir l’origine, et <DirectionalLight> ajoute un éclairage directionnel par défaut. Le cône est créé via <Cone> avec un rayon de base de 1 et une hauteur de 2, coloré en rouge (<Material diffuseColor=‘1 0 0’>). Un <TimeSensor> nommé Clock génère un cycle de 4 secondes en boucle, envoyant une fraction (de 0 à 1) via une ROUTE à l’<OrientationInterpolator> SpinPath, qui interpole une rotation autour de l’axe Y de 0 à deux tours complets (en radians). Cette valeur est routée vers la rotation du <Transform> Spinner contenant le cône, produisant une animation de rotation continue. L’ensemble forme un exemple pédagogique démontrant géométrie primitive, apparence, éclairage et animation par interpolation temporelle.
Essayez les exemples suivants.
Sphère rouge avec un fond bleu ciel. #
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile="Immersive" version="4.0">
<head>
<meta name="title" content="Sphère rouge"/>
</head>
<Scene>
<Background skyColor="0.5 0.8 1"/>
<Viewpoint position="0 0 5" description="Vue initiale"/>
<Shape>
<Sphere radius="1"/>
<Appearance>
<Material diffuseColor="1 0 0"/>
</Appearance>
</Shape>
</Scene>
</X3D>
Un cube bleu et une sphère rouge côte à côte #
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile="Immersive" version="4.0">
<head>
<meta name="title" content="Cube et sphère"/>
</head>
<Scene>
<Background skyColor="1 1 1"/>
<Viewpoint position="0 0 10"/>
<Transform translation="-2 0 0">
<Shape>
<Box size="2 2 2"/>
<Appearance>
<Material diffuseColor="0 0 1"/>
</Appearance>
</Shape>
</Transform>
<Transform translation="2 0 0">
<Shape>
<Sphere radius="1"/>
<Appearance>
<Material diffuseColor="1 0 0"/>
</Appearance>
</Shape>
</Transform>
</Scene>
</X3D>
un cylindre vert et texte en 3D #
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile="Immersive" version="4.0">
<head>
<meta name="title" content="Formes basiques avec texte"/>
</head>
<Scene>
<Background skyColor="0 0 0"/>
<Viewpoint position="0 5 15"/>
<Transform translation="-3 0 0">
<Shape>
<Box size="3 3 3"/>
<Appearance>
<Material diffuseColor="0 0 1"/>
</Appearance>
</Shape>
</Transform>
<Transform translation="0 0 0">
<Shape>
<Cylinder radius="1.5" height="4"/>
<Appearance>
<Material diffuseColor="0 1 0"/>
</Appearance>
</Shape>
</Transform>
<Transform translation="3 0 0">
<Shape>
<Sphere radius="2"/>
<Appearance>
<Material diffuseColor="1 0 0"/>
</Appearance>
</Shape>
</Transform>
<Transform translation="0 -4 0" rotation="1 0 0 -1.57">
<Shape>
<Text string='"Exemple X3D"'>
<FontStyle size="2" justify='"MIDDLE"'/>
</Text>
<Appearance>
<Material emissiveColor="1 1 0"/>
</Appearance>
</Shape>
</Transform>
</Scene>
</X3D>