présentation du projet nanovoxel

Post on 26-Feb-2016

35 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Présentation du projet NanoVoxel. Pierre Planeau Anatole Duprat. Sommaire. I.Introduction Le projet Pourquoi ? II. Démonstration III .Comment ? Les Voxels Spécifications Algorithmes La lumière Le ciel L’eau IV. NanoVoxel Début Actuellement Prochainement V .Questions. - PowerPoint PPT Presentation

TRANSCRIPT

Présentation du projet NanoVoxelPierre PlaneauAnatole Duprat

Sommaire• I. Introduction

▫ Le projet▫ Pourquoi ?

• II. Démonstration• III. Comment ?

▫ Les Voxels▫ Spécifications▫ Algorithmes▫ La lumière▫ Le ciel▫ L’eau

• IV. NanoVoxel▫ Début▫ Actuellement▫ Prochainement

• V. Questions

I. Introduction1. Le projet2. Pourquoi ?

Le projet•Jeu 3D basé sur les voxels

Le projet•Inspiré par Minecraft et Cube World

Minecraft

Cube World

Pourquoi ?•Entrainement et plaisir personnel•Créer une alternative à Minecraft•Dépasser Minecraft et Cube World

II. Démonstration

III. Comment ?1. Les Voxels2. Spécifications3. Algorithmes4. La lumière5. Le ciel6. L’eau

Les Voxels•Un voxel est un pixel dans l’espace•Les voxels sont simples à manipuler et

contiennent de l’information utile en une simple valeur

Un voxelPlusieurs voxels

Structure

Un Chunk contient des Voxels.

Une Map contient des Chunks.

Map

Chunk

Voxel

Spécifications•Le C++ pour sa rapidité, sa portabilité, sa

stabilité et sa large communauté•Le contexte SFML pour sa simplicité et sa

compatibilité native avec l’OpenGL•L’OpenGL pour sa portabilité et sa

simplicité

Algorithmes•Bruit de Perlin•Terrain•Affichage des faces•Ambient Occlusion

Premier « vrai » rendu

AlgorithmesLe bruit de Perlin

2 4

168

AlgorithmesLe bruit de Perlin

+ + +

=

AlgorithmesLe bruit de Perlin

AlgorithmesTerrain

D = y

AlgorithmesTerrain

D = y + cos(x)

AlgorithmesTerrain

D = y + cos( longueur( x, y, z ) )

AlgorithmesTerrain

D = bruitPerlin(x, y, z)

AlgorithmesTerrain

D = y + bruitPerlin(x, y, z)

AlgorithmesAffichage des faces

Répéter pour tous les voxels Si ( voxel actuel = non vide ) alors Si ( voxel suivant = vide ) alors Il faut afficher une face Sinon Pas de face à afficher Fin Si Sinon Pas de face à afficher Fin SiFin Répéter pour

Sens de parcours

Affiche

AlgorithmesAmbient Occlusion

AlgorithmesAmbient Occlusion

AlgorithmesAmbient Occlusion

AlgorithmesAmbient Occlusion

× =

La lumièreProduit scalaire

-110

0.5

La lumière

×

Le cielCiel = couleur( 0.5, 0.7, 1.0 )

Le cielCiel = mix( couleur( 0.5, 0.7, 1.0 ), couleur( 1.0, 1.0, 1.0 ), y²)

Le cielCiel = mix( couleur( 0.5, 0.7, 1.0 ), couleur( 1.0, 1.0, 1.0 ), y²)

Soleil = couleur( 1.0, 0.5, 0.1 ) / ( 1.0 + distance( point actuel, position soleil ) )10

Soleil + Ciel

y

x

L’eau

L’eau

L’eau

IV. NanoVoxel1. Début2. Actuellement3. Prochainement

Début•Tout à commencé avec un voxel

Des bugs… épileptiques !

Actuellement•Le jeu charge 1 404 928 voxels et est

très fluide•Le projet tient sur 6010 lignes de code•Cela représente environ 3 mois de travail

Prochainement•Restructuration du code•Physique•Génération de villes•Différents types de paysages•Un univers (monstres, PNJ, quêtes, etc.)•Ombres dynamiques•Un mode multi-joueurs•etc

V. Questions

Merci de votre attention !

top related