Skip to content

Releases: grandch/3dEngine

rendu-IG3-anim

11 Mar 18:57

Choose a tag to compare

L'objectif du TP est de réaliser une animation (simpliste) à l'aide d'une approche skinning.

Liens utiles :

[globjects](https://github.com/cginternals/globjects)
[glbinding](https://github.com/cginternals/glbinding)
[Sujet d'un TP semblable (english) mais avec plus de détails](https://www.cs.utexas.edu/~theshark/courses/cs354/assignments/assignment_5.shtml)
Skinning: Real-Time Shape Deformation, Part I: Direct methods,  http://skinning.org/

Vous devez au moins animer un cylindre à l'aide de deux os.

Comme vu en cours (j'espère), un os est simplement une transformation.

Un squelette est une hiérarchie d'os.

Pour animer un mailllage, vous aurez besoin d'associer un poids à chaque vertex pour chaque os.

Dans le cas d'un cylindre, vous pouvez définir ce poids avec une simple fonction de "distance" le long du cylindre, de tel sort que chaque extrémité soit influencer par un seul os, et qu'au centre, un mélange doux des deux os interviennent.

Travail à faire (en partant du code fourni, à adapter suivant ce que vous avez) :

définir une classe Bone contenant une transformation
ajouter les données de poids au Vertex
calculer les poids pour chaque Vertex
définir 2 Bones succéssif dont les articlulations se trouvent respectivement à la base et au milieu du cylindre
animer l'articulation du milieu (vous pouvez ajouter des primitives visuelles pour afficher avec deux segments les deux bones)
ajouter au maillage une donnée "pose de référence"
animer les points du maillage en CPU (et mettre à jour les données sur le GPU)
effectuer le même calcul sur GPU (en envoyant les poids et les matrices de transformation au shader).

Voici des exemples de résultat attendus (avec en rouge l'influence du bone 1, en vert celle du bone 2, pour deux frame différentes, pour deux calcul de poids différent).

skinningGPU
skinningCPU

rendu-IG3-rendu

11 Mar 18:28

Choose a tag to compare

Commencez par finir la partir matériau multifacette du M1 si non fini.

Ensuite quelque chose qui vous plait parmi

Simulation atmosphérique ***
Lens flare (simulation de lentille c.f. [ici](https://resources.mpi-inf.mpg.de/lensflareRendering/) ) ***
Shadow map *
Cubemaps ou envmaps *
Percentage closer filtering shadow maps **
Shadow volume **
Order indepedent transparency [[presentation](http://on-demand.gputechconf.com/gtc/2014/presentations/S4385-order-independent-transparency-opengl.pdf)][[presentation](http://developer.amd.com/wordpress/media/2013/06/2041_final.pdf)][[papier](https://moodle.univ-tlse3.fr/pluginfile.php/119491/course/section/15761/j.1467-8659.2010.01725.x.pdf)] ***
Antialiasing ([FXAwhitePaper](http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf) ou [course notes](http://iryoku.com/aacourse/downloads/09-FXAA-3.11-in-15-Slides.pdf) ou autre technique AA voir le cours [siggraph](http://iryoku.com/aacourse/) ) ***
Rendu HDR (tonemapping + bloom, voir LearnOpenGL, mais j'attends mieux !) [voir [Moving Frostbite to PBR](https://www.ea.com/frostbite/news/moving-frostbite-to-pb)] **
SSAO [Voir ici](http://developer.amd.com/wordpress/media/2012/10/Chapter8-Mittring-Finding_NextGen_CryEngine2.pdf) et [Ici](http://perso.telecom-paristech.fr/~boubek/papers/SAO/) **

Les "*" est une indication du niveau de difficulté a priori, plus il y a de *, plus c'est difficile.

deferred
pbr

rendu-TP-IG2

19 Dec 14:09

Choose a tag to compare

A réaliser pour le TP :

Choix d'une bibliothèque de manipulation et d'affichage de maillages.
Selection du voisinage d'un point par le nombre d'anneaux topologiques.
Calcul et affichage (par variation de couleur) du Laplacien par diffusion.
Calcul et affichage du Laplacien par résolution d'un système linéaire.
Lissage Laplacien.
Selection d'un voisinage par une zone.
Déformation du maillage par translation pondérée par le Laplacien calculé entre 0 (bord) et 1 (poignée) sur le maillage.
Modification des valeurs du Laplacien par une fonction de transfert pour contrôler le profil de la déformation.

rendu-TP-IG1

18 Apr 20:48

Choose a tag to compare