Du VRML Dynamique avec ASP

Dans la série "VRML dynamique" entamée par J.M. Flamant avec le PHP, nous allons étudier le même principe appliqué aux Active Server Page de Microsoft (et oui, je sais, j'ai signé un pacte avec le diable ;-)

Etape 1 : Comment votre navigateur reconnaît-il les contenus VRML ?
Etape 2 : Générer un fichier VRML avec ASP
Etape 3 : Introduction de paramètres
Etape 4 : Inclure votre ASP-VRML dans une page web
Est-ce la seule solution ?
Quelques liens

Nota : pour comprendre le cours suivant, vous devez avoir quelques petites notions de HTML, ASP, VBScript... et bien sûr, de VRML !

 

Etape 1 : Comment votre navigateur reconnaît-il les contenus VRML ?

Qu'est-ce qu'un fichier VRML ? Un fichier dont l'extension est .wrl ? Non, ce n'est pas de cette façon que votre navigateur reconnaît les fichiers VRML. Ce qui identifie le type de fichier est le type MIME, généré par le serveur web. Ça tombe bien, car nous savons que les fichiers ASP doivent avoir une extension .asp. Nous devrons donc générer un entête avec le bon type MIME.

Quel est le type MIME pour les fichiers VRML :
- au commencement c'était "x-world/x-vrml" (ça fonctionne encore)
- maintenant c'est "model/vrml" (c'est mieux d'utiliser celui-ci)

Et maintenant, comment générer l'entête avec le bon type MIME en utilisant ASP ? Une ligne suffit :

<% response.ContentType = "model/vrml" %>

Cela doit être la toute première ligne de votre fichier ASP.

Pour créer un fichier VRML valide, nous devons ensuite mettre l'entête VRML classique :

<% response.write("#VRML V2.0 utf8") %>

Donc le début de notre fichier asp/pseudo VRML sera :

<% response.ContentType = "model/vrml" %>
<% response.write("#VRML V2.0 utf8") %>

voir résultat
(rien à voir, sauf que c'est votre browser VRML qui ouvre ce fichier ASP)

 

Etape 2 : Générer un fichier VRML avec ASP

Maintenant nous savons comment envoyer un fichier reconnu comme étant du VRML par les navigateurs internet. Nous n'avons plus qu'à écrire la suite du code VRML, simplement comme dans cet exemple :

<% response.ContentType = "model/vrml" %>
<% response.write("#VRML V2.0 utf8") %>

NavigationInfo{
     type "EXAMINE"
}
Shape{
     appearance Appearance{
          material Material{
               diffuseColor 1 0 0
          }
     }
     geometry Box{}
}

voir résultat

 

Etape  3 : Introduction de paramètres

Maintenant nous allons pouvoir utiliser la puissance de l'ASP pour introduire des paramètres dans notre code VRML :
- paramètres passés avec la chaîne d'URL
- paramètres extraits de bases de données
- paramètres lus dans des cookies
- etc...

Dans cet exemple, nous décidons de faire dépendre la forme et la couleur de l'objet de 2 paramètres passés avec la chaîne d'URL ( shape et  color )

<% response.ContentType = "model/vrml" %>
<% response.write("#VRML V2.0 utf8") %>

NavigationInfo{
     type "EXAMINE"
}
Shape{
     appearance Appearance{
          material Material{
               diffuseColor <%=Request.QueryString("color")%>
          }
     }
     geometry <%=Request.QueryString("shape")%>{}
}


voir résultat avec shape=Box et color = 1 0 0


voir résultat avec shape=Cone et  color = 0 1 0


voir résultat avec shape=Sphere et color = 0 0 1

 

Etape 4 : Inclure votre ASP-VRML dans une page web

Si vous ne voulez pas afficher votre VRML dans une pleine fenêtre, vous pouvez l'inclure dans une autre page ASP. Ici nous mettons le précédent fichier ASP-VRML dans une page ASP qui permet de contrôler la scène 3D par deux listes déroulantes

voir code

voir résultat

Est-ce la seule solution ?

Est-ce la seule solution pour générer dynamiquement du VRML ? Non, bien sûr. D'abord, vous pouvez utiliser la même méthode avec PHP. Vous pouvez aussi créer du VRML à la volée avec du Javascript dans la page HTML. Mais le meilleur moyen reste d'utiliser l'EAI (Enhanced Authoring Interface), qui est la voie royale pour contrôler le contenu d'une scène VRML. De plus, l'EAI vous permettra de modifier la scène pendant l'exploration, alors que PHP ou ASP ne permettent d'intervenir sur le contenu qu'avant le chargement. Seul petit problème : l'usage de l'EAI implique de connaître Java.

Bon, donc ASP n'est pas la seule méthode, mais : ça existe, ça marche, et ça n'est pas très compliqué, non ?

 

Quelques liens

Si ça vous intéresse, un lien (seulement, il y a très peu de littérature sur le sujet) :

- Un
post d' Alan Taylor dans le forum comp.lang.vrml newsgroup (31-03-1998)

Vincent Gardet - 2002 - traduction du tutorial original de http://www.gardet.nom.fr/vrmlcity/

 
19 internaute(s) sur Web3d-fr
Copyright Web3d-fr 2001-2004