1 Quakelight : le making of Julien Frelat Chef de projet InnoveWare Solutions Code Session : RIA309.

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

1 Quakelight : le making of Julien Frelat Chef de projet InnoveWare Solutions Code Session : RIA309

2 Agenda Le projet Quakelight Affichage bitmap Gestion sonore Le futur avec Silverlight 3 ?

3 Le projet Quakelight Présentation Portage du jeu Quake en Silverlight 2 Jeu 3D open-source Challenge favori sur les nouvelles plateformes Inspiré par une version Flash Objectifs Affichage bitmap fluide du moteur 3D Spatialisation des sons (effet surround) Utiliser Silverlight 2 avec ses limitations

4 Affichage bitmap Limitations de Silverlight 2 JPEG ou PNG, pas de format brut Techniques existantes 1 pixel = 1 rectangle Encodage PNG sans compression La solution InnoveWare : PNG wrapper Pré-encodage et organisation mémoire optimisée Hack Silverlight 2 : pas de CRC sur les données Encodage/décodage en 256 couleurs (PNG 8-bit)

5 PNG wrapper MemoryStream PNG pré-encodée Entête PNG (fixe) LargeurHauteurFlags (PNG 8-bit) Bloc PALETTE RGB(modifiable)RGB(modifiable)...RGB(modifiable) Bloc IMAGE (non compressé) Flags Ligne de pixels (modifiable) CRC 0 (hack)...Flags... (hack)...Flags Ligne de pixels (modifiable) CRC 0 (hack) CRC IMAGE 0 (hack) Bloc FIN

6 Affichage bitmap optimisé en Silverlight 2

7 Gestion sonore Limitations de Silverlight 2 Sons pré-encodés au format MP3 Jouer un son en continu (délai) Effets surround (3D) Effets sonores de mitraillage Effets sonores dambiance (musique continue)

8 Effets surround et alternance Utilisation de canaux pour limiter le nombre de sons MP3 à mixer simultanément channels[x].media = new MediaElement(); Spatialiser les sons channels[x].media.Volume = master_volume; channels[x].media.Balance = right_volume – left_volume; Alterner des sons rapidement if (channels[x].media.CurrentState != MediaElementState.Playing || channels[x].looping) { channels[x].media.Stop(); parentCanvas.Children.Remove(channels[x].media); }

9 Gestion sonore Limitations de Silverlight 2 Sons pré-encodés au format MP3 Jouer un son en continu (délai) Effets surround (3D) Effets sonores de mitraillage Effets sonores dambiance (musique continue) Solution en cours détude : MediaStreamSource Lecture asynchrone de samples audio ou vidéo

10 Lecture asynchrone de samples Fichier audio MP3 (N samples) Sample 1 Sample 2... Sample N Sample 1 GetSampleAsyncGetSampleAsyncGetSampleAsyncGetSampleAsyncGetSampleAsync

11 Le futur avec Silverlight 3 ? Améliorations graphiques Support natif de la 3D Accélération matérielle Fonctionnalités souhaitées Affichage bitmap (WriteableBitmap) ? Gestion sonore dynamique et en boucle ?

12 Synthèse A retenir Performances et potentiel de Silverlight pour les jeux vidéos Techniques avancées pour laffichage bitmap et le son en Silverlight 2 Promesses de Silverlight 3 Pour plus dinformations :

13 Quakelight

14

15 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Votre potentiel, notre passion TM