diff --git a/content/Annexes/Markdown.md b/content/Annexes/Markdown.md index 6e093a7c..8ecc3871 100644 --- a/content/Annexes/Markdown.md +++ b/content/Annexes/Markdown.md @@ -37,6 +37,11 @@ En résumé : - plusieurs items ``` +```md +- [ ] to-do +- [x] done +``` + ```md ```cpp // Bloc de code C++ @@ -61,11 +66,11 @@ Notes de bas de page \[^1] \> Citation ```txt -| Tableaux | :grin: | :sparkles: | -| ------------- |:-------------:| -----:| -| col 3 is | right-aligned | $1600 | -| col 2 is | centered | $12 | -| zebra stripes | are neat | $1 | +| Tableaux | :grin: | :sparkles: | +| ------------- | :-----------: | ---------: | +| col 3 is | right-aligned | $1600 | +| col 2 is | centered | $12 | +| zebra stripes | are neat | $1 | ``` Séparateur : @@ -92,6 +97,9 @@ Image : - avec - plusieurs items +- [ ] to-do +- [x] done + ```cpp // Bloc de code C++ int x{0}; @@ -111,11 +119,11 @@ Notes de bas de page [^1] > Citation -| Tableaux | 😁 | ✨ | -| ------------- |:-------------:| -----:| +| Tableaux | 😁 | ✨ | +| ------------- | :-----------: | ----: | | col 3 is | right-aligned | $1600 | -| col 2 is | centered | $12 | -| zebra stripes | are neat | $1 | +| col 2 is | centered | $12 | +| zebra stripes | are neat | $1 | Séparateur : @@ -141,4 +149,6 @@ Salut, ceci est un secret ! ## Générer une table des matières VS Code peut générer automatiquement une table des matières pour votre document, qui va lister toutes les différentes sections que vous aurez délimitées avec des titres (`#`, `##`, `###`, etc.).
-Pour cela, mettez votre curseur là où vous voulez la générer (typiquement au début de votre document), puis faites F1 et cherchez et sélectionnez `Markdown All In One: Create Table of Contents` (ou juste `toc` pour faire court). \ No newline at end of file +Pour cela, mettez votre curseur là où vous voulez la générer (typiquement au début de votre document), puis faites F1 et cherchez et sélectionnez `Markdown All In One: Create Table of Contents` (ou juste `toc` pour faire court). + +![](Markdown_imgs/toc.png) \ No newline at end of file diff --git a/content/Annexes/Markdown_imgs/toc.png b/content/Annexes/Markdown_imgs/toc.png new file mode 100644 index 00000000..74fed585 Binary files /dev/null and b/content/Annexes/Markdown_imgs/toc.png differ diff --git a/content/Workshop/01-Sujet.md b/content/Workshop/01-Sujet.md index 13c22ed9..b64089cc 100644 --- a/content/Workshop/01-Sujet.md +++ b/content/Workshop/01-Sujet.md @@ -46,11 +46,10 @@ for (glm::vec3& color : image.pixels()) - Pour créer une couleur avec les trois composantes identiques (donc un niveau de gris), la syntaxe `glm::vec3{grey}` est équivalente à `glm::vec3{grey, grey, grey}`. - Vous pouvez généralement faire vos opérations directement sur les couleurs, pas besoin de les faire 3 fois sur chacun des canaux : ```cpp -glm::vec3 color1{}; -glm::vec3 color2{}; -glm::vec3 final_color{}; +glm::vec3 const color1{}; +glm::vec3 const color2{}; -final_color = color1 + color2; +glm::vec3 const final_color = color1 + color2; // équivalent à : // final_color.r = color1.r + color2.r; // final_color.g = color1.g + color2.g; @@ -92,17 +91,17 @@ int main() ## Rendu et Rapport -__*À rendre avant samedi à 23h59*__.
-*Pour le rendu, il suffit de [mettre votre lien git ici](https://docs.google.com/spreadsheets/d/1x2uqvKdhndstidmW4xoWkNTlbwHFDWGlpohdb6TRORY/edit?usp=sharing)*. Attention, vérifiez bien que votre repo est en public, ou si il est en privé, pensez à m'inviter dessus ([*julesfouchy*](https://github.com/julesfouchy/)). +__*À rendre avant vendredi à 23h59*__.
+Pour le rendu, il suffit de mettre votre lien git sur la google sheet que je vais vous partager sur Discord. Attention, vérifiez bien que votre repo est en public, ou si il est en privé pensez à m'inviter dessus ([*julesfouchy*](https://github.com/julesfouchy/)). -Pour le rapport, faites une section par exercice que vous avez fait. Montrez une image avant et après application de l'effet (comme c'est fait dans l'énoncé des exercices). Si vous jugez cela utile, vous pouvez mettre un petit texte expliquant des spécificités de l'algo que vous avez implémenté, et les pièges potentiels dans lesquels il ne faut pas tomber. +Pour le rapport, faites une section par exercice que vous avez fait. Montrez une image avant et après application de l'effet (comme c'est fait dans l'énoncé des exercices). **Le rapport n'a pas besoin d'être long**. Pour les exercices où vous jugez cela utile, mettez un petit texte expliquant des spécificités de l'algo que vous avez implémenté, et les pièges potentiels dans lesquels il ne faut pas tomber. -À faire en Markdown obligatoirement (Si vous ne connaissez pas c'est l'occasion de découvrir, c'est super utile. Je vous montre tout ça vendredi). +À faire en Markdown obligatoirement. (Si vous ne connaissez pas c'est l'occasion de découvrir, c'est super utile. Je vous montre tout ça vendredi). -À mettre directement en tant que ReadMe.md à la racine du repo. +À mettre directement en tant que `README.md` à la racine du repo. ## Soutenance -Présentez un des algos avancés que vous avez fait, en 5-10 minutes. C'est de la vulgarisation, il faut que tous vos camarades puissent comprendre. Expliquez l'algo dans les grandes lignes, et parlez des petits pièges de code auxquels il faut faire attention. +Présentez un des algos avancés que vous avez fait, en 5-10 minutes. C'est de la vulgarisation, il faut que tous vos camarades puissent comprendre. Expliquez l'algo dans les grandes lignes, et parlez des petits pièges de code auxquels il faut faire attention. **Attention** à ne pas juste montrer le code et le lire ligne par ligne!! PS : la soutenance est optionnelle, on va essayer de ne pas présenter plusieurs fois le même algo, donc vous n'êtes pas obligé.es de passer. Et si plusieurs groupes souhaitent passer sur le même algo, on va essayer de vous regrouper pour que vous fassiez une seule présentation, ensemble. \ No newline at end of file diff --git a/content/Workshop/02-Planning.md b/content/Workshop/02-Planning.md index 8bb08d62..f6bd2f49 100644 --- a/content/Workshop/02-Planning.md +++ b/content/Workshop/02-Planning.md @@ -7,7 +7,7 @@ ## Mardi - [ ] *Cours* : Présentation de git -- [ ] Test et prise en main de git (l'un push quelque chose et l'autre le pull par exemple) +- [ ] Test et prise en main de git - [ ] Mettre sur le repository les exercices que vous avez fait hier - [ ] Autonomie, avancer dans les exercices @@ -24,6 +24,6 @@ ## Vendredi - [ ] *Cours* : Présentation de Markdown pour l'écriture du rapport -- [ ] Écriture du rapport (Vous avez jusqu'à samedi 23h59 pour le rendre) +- [ ] Écriture du rapport (Vous avez jusqu'à vendredi 23h59 pour le rendre) - [ ] Préparation de la présentation pour celleux concerné.es - [ ] Présentations l'après-midi diff --git a/content/Workshop/03-Exercices.md b/content/Workshop/03-Exercices.md index 458c7885..1d459a99 100644 --- a/content/Workshop/03-Exercices.md +++ b/content/Workshop/03-Exercices.md @@ -156,7 +156,7 @@ puis itérer sur les pixels pour les colorer. Quelle est l'équation d'un disque ? Comment peut on s'en servir pour savoir si un pixel est à l'intérieur ou à l'extérieur du disque ? -### ⭐ Cercle +### ⭐⭐ Cercle ![](output/circle.png) @@ -181,12 +181,6 @@ Maintenant que vous savez dessiner un cercle, dessinez-en plusieurs sur la même Comment passer de coordonnées polaires (angle et rayon) à des coordonnées cartésiennes (x et y) ? -### ⭐⭐ Animation - -![](output/animation.gif) - -Pour faire une animation, on va exporter plein d'images les unes après les autres, en faisant légèrement bouger le disque entre deux images. Vous pouvez ensuite utiliser un outil externe pour assembler ces images en une vidéo / gif. Par exemple [Ezgif](https://ezgif.com/maker). - ## ⭐⭐ Mosaïque ![](output/mosaic.png) @@ -217,7 +211,9 @@ Prendre un rectangle de pixels et l'intervertir avec un autre rectangle de pixel ## ⭐⭐⭐ Tri de pixels -![](output/pixel_sorting.png) +| ![](output/pixel_sorting.png) | ![](output/pixel_sorting2.png) | ![](output/pixel_sorting3.png) | +| ----------------------------- | ------------------------------ | ------------------------------ | +| Trier tous les pixels | Trier les lignes | Trier des parties aléatoires | Voici une bonne vidéo expliquant l'algorithme (vous pouvez ignorer le début spécifique à Processing où on voit comment afficher l'image) : @@ -225,7 +221,7 @@ Voici une bonne vidéo expliquant l'algorithme (vous pouvez ignorer le début sp Utilisez `image.pixels()` pour récupérer le tableau contenant tous les pixels de l'image et le trier. -Ensuite, au lieu de trier tous les pixels de l'image, triez par colonne (ou par ligne) pour un effet plus joli. (Il faudra trier des sous-parties du tableau `image.pixels()`.) Ou encore, triez des sous-parties prises aléatoirement dans l'image. +Ensuite, au lieu de trier tous les pixels de l'image, triez par ligne (ou par colonne) pour un effet plus joli. (Il faudra trier des sous-parties du tableau `image.pixels()`.) Ou encore, triez des sous-parties prises aléatoirement dans l'image. :::info Pour trier un tableau, vous pouvez utiliser `std::sort`. Vous verrez ça plus en détail au S2, mais voici une brève explication : @@ -264,29 +260,6 @@ On passe ce qu'on appelle une *lambda* en 3ème argument : c'est une fonction d -## ⭐⭐⭐ Dégradés dans l'espace de couleur Lab - -Pour commencer, repartez de l'exo [⭐ Dégradé](#-dégradé) et adaptez-le pour faire un dégradé de couleur : - -![](./output/gradient_srgb.png) - -
- Indice - - Vous pouvez utiliser la fonction [`glm::mix`](https://glm.g-truc.net/0.9.4/api/a00129.html#ga3f64b3986efe205cf30300700667e761) pour mélanger deux couleurs en fonction d'un pourcentage. -
- -Maintenant, on peut remarquer que ce dégradé n'est pas super, et que la couleur au milieu est très sombre par rapport aux couleurs aux extrémités. Le problème c'est que nos couleurs sont exprimées dans l'espace de couleur sRGB, qui n'est pas adapté pour ce genre d'opérations de mélange entre couleurs. D'autres espaces de couleur ont été développés exprès pour ça, notamment Lab : - - -
- -[Voici l'article original introduisant Oklab](https://bottosson.github.io/posts/oklab/), vous y trouverez toutes les infos nécessaires pour implémenter les conversions entre sRGB et Oklab : - -![](./output/gradient_oklab.png) - -Comparez les dégradés dans les différents espaces de couleur : lequel préférez vous ? Essayez des dégradés avec d'autres couleurs : est-ce que Oklab est toujours mieux que sRGB ? Que se passe-t-il si on fait le mélange dans d'autres espaces de couleur, comme Linear RGB ou HSL ? - ## ⭐⭐⭐(⭐) Fractale de Mandelbrot ![](output/mandelbrot.png) diff --git a/content/Workshop/output/pixel_sorting.png b/content/Workshop/output/pixel_sorting.png index 09431ed7..87457b87 100644 Binary files a/content/Workshop/output/pixel_sorting.png and b/content/Workshop/output/pixel_sorting.png differ diff --git a/content/Workshop/output/pixel_sorting2.png b/content/Workshop/output/pixel_sorting2.png new file mode 100644 index 00000000..25cf4cf3 Binary files /dev/null and b/content/Workshop/output/pixel_sorting2.png differ diff --git a/content/Workshop/output/pixel_sorting3.png b/content/Workshop/output/pixel_sorting3.png new file mode 100644 index 00000000..09431ed7 Binary files /dev/null and b/content/Workshop/output/pixel_sorting3.png differ diff --git a/src/pages/index.mdx b/src/pages/index.mdx index e4c7fe27..46fedbef 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -27,7 +27,7 @@ Si vous ne faites pas partie des étudiants **IMAC 1**, vous êtes tout de même ## Qui suis-je ? -Je m'appelle **Enguerrand DE SMET** et je suis actuellement **programmeur gameplay** à **Ubisoft** depuis maintenant 2 ans. Je suis de la promotion **IMAC 2021**, et j'ai également effectué le double-cursus Master Informatique proposé en dernière année du cursus IMAC. +Je m'appelle **Enguerrand DE SMET** et je suis actuellement **programmeur gameplay** à **Ubisoft** depuis maintenant 5 ans. Je suis de la promotion **IMAC 2021**, et j'ai également effectué le double-cursus Master Informatique proposé en dernière année du cursus IMAC. En ce qui concerne l'enseignement, j'ai d'abord commencé à donner des cours de soutien en programmation aux **IMAC 1** pendant 2 ans pour maintenant continuer cette année en tant que professeur de C++ pour les **IMAC 1**. Je vais présenter les notions de la manière la plus claire possible mais tous **vos retours et commentaires sont plus que bienvenus** pour améliorer et adapter mes cours à vos besoins dans la mesure du possible !