Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Introduction

Par Monsieur Spi, le 05 janvier 2010

Menu général

“Il faut rendre à César ce qui est à César !”, je tiens donc à remercier Ferry Permadi pour m'avoir autoriser à traduire et publier son travail. Je me suis permis d'étayer certains passages et de rajouter des définitions lorsque cela me semblait nécessaire, et puisqu'on parle de définition…

Définition

Voyons ce que dit Wikipedia (Source)


    "Le raycasting est une technique de calcul d'images de synthèse 3D. […]
    Elle a été utilisée avec succès au début des années 1990 dans les jeux vidéo comme Wolfenstein 3D ou Doom.
    L'implémentation était alors entièrement logicielle et ne faisait pas appel à du matériel spécifique.
    […] Il tire parti de certaines caractéristiques du monde virtuel :
    • les murs sont des plans, en général perpendiculaires par rapport au sol
    • il n'y a pas de primitives complexes ou alors sous la forme d'approximations planaires
    • les mondes virtuels sont de facto plus simples
    […] Le raycasting produit des images plutôt anguleuses avec des effets de bloc désagréables. Autre limitation courante de la technique du raycasting : […] Il n'est pas possible d'effectuer une rotation autour de l'axe de la caméra (roll). Ceci est du au fait que le raycasting est essentiellement une technique basée sur un espace en 2D et non pas sur une description complète en 3D du monde.

    Tombée en désuétude lors de l'apparition des moteurs entièrement en 3d, cette technique a été remise au goût du jour par les technologies portables comme java ou flash."

Mouais, pas beaucoup plus explicite tout çà, essayons de pousser un peu cette explication.

Le Ray Casting (littéralement le « lancer de rayons ») n’est pas à proprement parler un moteur de jeu.
Il s’agirait plutôt d’une méthode notamment utilisée pour afficher le rendu final de certains jeux dits “3D”.

Vous avez un exemple très connu de Ray Casting, les radars.
Nous ne procéderons pas exactement de la même manière qu’un radar mais nous allons nous servir du même procédé.
C'est-à-dire lancer des rayons depuis un point fixe vers un objet afin d’obtenir des informations utiles pour l'afficher à l’écran.

Un peu d’histoire



La naissance

super-mario.jpg

« super Mario Kart »
Pour la deuxième fois dans un jeu vidéo (F-Zero est le véritable papa mais c'est Mario qui reste dans toutes les mémoires), on utilise du Mode 7 .
Une projection déformée pour obtenir l’impression de profondeur à partir d’un plan à deux dimensions (donc plat).



L'enfance

wolf3d.jpg

« Wolfenstein 3D »
Plus qu’une évolution, une révolution, les murs sortent du sol et le joueur bave devant un des tout premier FPS de l’histoire.
Le monde est encore très limité, c'est normal il est encore tout jeune, pas d’escaliers, pas de collines, aucune dénivellation.



L'adolescence

doom2.jpg

« Doom », « Doom II » et toute une flopée d’autres jeux basés sur des évolutions des concepts utilisés dans Wolfenstein.
Et quelles évolutions ! Le monde n’est plus uniforme et plat, escaliers, grottes, collines, dénivelés,…
Tout ou presque est possible, l’immersion est complète mais le rendu reste très cubique.



La maturité

outcast.jpg

« Outcast »
C'est sans doute ce jeu qui poussera le plus loin la technique du Raycasting en s'appuyant sur des voxels.
A lire : un excellent tutoriel en français sur le sujet.

Pas tout à fait de la 3D, plus tout à fait de la 2D, de la 2,5D.
Il manque encore quelques libertés par rapport à un moteur 3D complet mais les possibilités sont déjà énormes.
Fini les mondes cubiques place aux formes et aux volumes.

Mais Outcast est également un des derniers jeux s'appuyant exclusivement sur le Raycating logiciel.
Une toute nouvelle génération de cartes vidéos gérant l'accélération de façon matérielle débarque.
Ces cartes permettent alors de développer de vrais moteurs 3D qui fonctionnent en temps réel.
Peu à peu le Ray Casting est tombé en désuétude.

Pourquoi en reparler ?

Tout simplement parce que Flash non plus ne sait pas (encore) utiliser les cartes vidéo comme il le faudrait.
Il s’agit donc d’une technique parfaitement appropriée pour simuler des univers simples pour des technologies portables telles que Flash ou Java. C'est également un bon moyen de s'initier en douceur aux principes de la 3D et de découvrir l'univers passionnant de la troisième dimension.

Il faut néanmoins préciser que le Raycasting n’est pas en soit une méthode pour faire de la 3D.
Mais une tromperie qui utilise la projection d’un plan 2D (le sol) sur un autre plan 2D (l’écran).
Cependant la projection en elle même est une des bases de la représentation en trois dimensions.

Tout ceci ne veut pas dire que Flash ne sait pas faire de 3D.
Seulement il calcule tout à l’aide du processeur donc il faut penser à optimiser en permanence.
Si vous voulez explorer les possibilités de l’ActionScript dans le domaine de la 3D, je vous recommande d’aller plutôt visiter les sites suivants :

Mais pour l’instant nous … on triche.

La suite

Page suivante > Définir le monde