Babylon.JS, le moteur 3D WebGL open source simple & performant

23

Transcript of Babylon.JS, le moteur 3D WebGL open source simple & performant

Page 1: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 2: Babylon.JS, le moteur 3D WebGL open source simple & performant

Michel Rousseau

UI, UX, design

Microsoft France, division Dx

Blog :http://aka.ms/michel

twitter : @rousseau_Michel

[email protected]

David Rousset

web, IE, gaming

Microsoft Corp, division Dx

Blog : http://blogs.msdn.com/b/davrous/

twitter : @davrous

[email protected]

David Catuhe

web, IE, javascript

Microsoft Corp, division Dx

Blog : http://blogs.msdn.com/b/eternalcoding/

twitter : @deltakosh

[email protected]

Page 3: Babylon.JS, le moteur 3D WebGL open source simple & performant

#mstechdays

techdays.microsoft.fr

Le point de vue de l’artiste

Page 4: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 5: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 6: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 7: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 8: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 9: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 10: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 11: Babylon.JS, le moteur 3D WebGL open source simple & performant
Page 12: Babylon.JS, le moteur 3D WebGL open source simple & performant

les assets, c’est fait de :-géométries

- textures

- shaders

-entitésdiverses (lumières, sons, caméras, …)

- talent

Page 13: Babylon.JS, le moteur 3D WebGL open source simple & performant

Plutôt que des mots,

démo…

Page 14: Babylon.JS, le moteur 3D WebGL open source simple & performant

#mstechdays

techdays.microsoft.fr

L’audio

Page 15: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Le moteur audio de Babylon.js

Basé sur Web Audio

Son ambiant, omnidirectionnels ou directionnels

Son 3D en atténuation linéaire par défaut

Gérable par code ou via le format .babylon

Exportateur 3DS Max (Blender et Unity à venir)

On essaie de faire toujours aussi simple

Page 16: Babylon.JS, le moteur 3D WebGL open source simple & performant

#mstechdays

techdays.microsoft.fr

Les performances

Page 17: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Debug layer

Nombre de draw calls

Temps passe par fonctionnalité

Nombre d’objets

Nombre de vertices actifs

GPU / CPU locked

User marks + F12

Débusquer les pertes de performances

Page 18: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Niveaux de details

Définition de modèles en fonction de la distance

Décimation: processus automatique de réduction

LOD et décimation

Page 19: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Instances

Hardware instancing: réplication matérielle d’un seul modèle (SMMP: Single Model Multiple Position)

Multiplication des pains

Page 20: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Scene Optimizer

Sacrifier des fonctions pour de meilleures performances

Automatisation de l’optimisation

options = BABYLON.SceneOptimizerOptions.LowDegradationAllowed();

Page 21: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Scene OptimizerAutomatisation de l’optimisation

LowDegradationAllowed

• Level 0: MergeMeshes, Shadows and

LensFlares

• Level 1: PostProcesses and Particles

• Level 2: Texture(2, 1024)

ModerateDegradationAllowed

• Level 0: MergeMeshes, Shadows and

LensFlares

• Level 1: PostProcesses and Particles

• Level 2: Texture(2, 512)

• Level 3: RenderTargets

• Level 4: HardwareScaling(4, 2)

HighDegradationAllowed

• Level 0: MergeMeshes, Shadows and

LensFlares

• Level 1: PostProcesses and Particles

• Level 2: Texture(2, 256)

• Level 3: RenderTargets

• Level 4: HardwareScaling(4, 4)

Page 22: Babylon.JS, le moteur 3D WebGL open source simple & performant

tech.days 2015#mstechdays

Depth RendererConnaitre le fond des choses

Génération automatique d’une texture contenant le depth buffer

Permet de nombreux effets

Page 23: Babylon.JS, le moteur 3D WebGL open source simple & performant

techdays.microsoft.fr

#mstechdays

le moteur 3D webGlopen source simple & performant

@deltakosh

@davrous

@rousseau_michel