très content d'être tombé sur ta chaîne, en tant que dev pro j'ai l'impression d'avoir raté toute une catégorie de la programmation c'est impressionnant
C'est vraiment un sujet hyper intéressant, content de voir ça en français. Cela me fais beaucoup penser au moteur de OneLoneCoder (OLC) qui a construit tout un moteur graphique dans la console Il arrive même à se passer des caractères ASCII et à afficher des pixels en COULEUR ! (toujours dans la console) Je ne sais pas si tu comptes faire quelque chose d'aussi poussé mais j'ai hâte de la suite.
super vidéo ! c'est dommage que tu n'ai pas plus d'abonnés, t'as pleins de trucs super intéressant et accessibles à faire découvrir. d'ailleurs comment tu fais pour exécuter tes scripts vscode dans un terminal externe ?
Sympa comme petit projet ! Ceci dit, je ne sais pas quelle version de Python tu utilises mais j'imagine que tu es au moins sur du 3.7, ainsi je te recommande d'utiliser des 'dataclass' pour tes objets simples. Ca t'évitera le boilerplate du constructeur, ce qui allège grandement la lisibilité (que ce soit pour toi, les néophytes ou les chevronnés).
Ce n'est pas encore un projet d'actualité. Mais parfois il m'arrive de me dire qu'un jeu en ASCII pourrais être sympa à créer. Un peu comme le mode aventure de Dwarf Fortress. En tout cas, je prend note ton conseil. Merci :)
Je m'abonne directement 👏. Vous avez parlé de rasterization, c'est ce qu'y est utilisé par toute les librairies où il existe d'autres principes de base ?
C'est principalement cette technique qui est utilisée. Après, le terme "Rasterization" signifie simplement "déterminer les pixels sur lesquels se trouve un objet". Donc techniquement parlant, il existe aussi la technique du raycasting (utilisé par les premiers fps notamment) et sa version ++ le raytracing (pour simplifier). Il y en a quelques autres mais la rasterization telle que montrée dans cette vidéo est la principale
C grave bien ! Merci des tutos juste moi lors de l'affichage sa fait un défilement comme une veille TV je sais pas si il y a moyen de regler se problème ?
Pour l'écrasante majorité, oui. Après pour les sphères, c'est généralement des triangles mis ensemble (comme tu peux le voir au début), plus les triangles sont petits et nombreux plus la forme apparaît lisse. Mais généralement par soucis d'optimisation, on utilise des gros triangles avec ce qu'on appelle un shader pour gérer la lumière (la couleur de chaque partie du triangle) pour lisser artificiellement la sphère et donner une impression de lissage.
Avec les triangles, on fait quelque chose qui ressemble à une sphère (plus il y a de triangle, plus ça ressemble). Et ensuite, on peut appliquer une ou plusieurs tessellations, ce qui permet de lisser en multipliant le nombre de triangles. Il existe d'autres techniques pour faire de la 3D, mais elles sont beaucoup moins utilisée.
N'y a t il pas moyen d'exécuter des shader en python sans library parce que là les perf vont être apeurant? Si non je suggère de séparer l'écran en chunks et d'utiliser les différents threads du cpu. PS: Super vidéo j'ai atte de voir la suite 👍👍👍👍
Merci pour les recommandations mais le but de cette série est de monter comment on peut le faire en partant de 0 en utilisant le moins de librairie possible mais je panse que je faire ça dans un épisode optimisation.
@@quantale8159 j'exécute mon code sur Windows via la console cmd. Il y a des clignotements entre l'affichage et le Clear. De plus, j'ai essayé avec le code que tu mets à disposition sur GitHub.
De mon côté cela "clignotait" à chaque rafraissement, j'ai du mettre du coup ces deux séquences d'échappement au tout début de la fonction draw() print('\033[?25l', end='') # hide cursor print('\033[0;0H', end='') # move cursor to 0,0
très content d'être tombé sur ta chaîne, en tant que dev pro j'ai l'impression d'avoir raté toute une catégorie de la programmation c'est impressionnant
ta chaine est hyper intéressante, hâte de voir les prochains episodes
+1
vidéo ultra qualitative, j'espère voir le prochain tuto bientôt !
Je suis tombé sur cette vidéo il y a 2 mois, et j'attends la suite régulièrement :D Bravo en tout cas !
la suite dans pas longtemps, merci :)
Extrêmement impressionnant, bravo
Toujours un grand moment de faire son premier triangle
Super vidéo MERCI INFINIMANT pour ce contenu 🙏🙏🙏
Merci pour ces tutos. Un tuto sur le perlin noise serait d'une grande utilité.
merci :) Je prépare justement une série de vidéo sur les différents types de bruits
@@quantale8159 Merci à toi.
Wow c'est dingue ! Continue tes vidéos !
+1
Trop trooooop bien
Je peux suivre le tuto en c++, c'est tellement bien expliqué
Mais à quand la suite ??
C'est vraiment un sujet hyper intéressant, content de voir ça en français.
Cela me fais beaucoup penser au moteur de OneLoneCoder (OLC) qui a construit tout un moteur graphique dans la console
Il arrive même à se passer des caractères ASCII et à afficher des pixels en COULEUR ! (toujours dans la console)
Je ne sais pas si tu comptes faire quelque chose d'aussi poussé mais j'ai hâte de la suite.
Oui, je connais et je me suis un peu inspiré
Concept super intéressant et support qualité de vidéo !
Hâte de voire la suite !
Je tente de le faire en Rust de mon côté 😉
Oulah ça va bien marcher cette série !
super vidéo ! c'est dommage que tu n'ai pas plus d'abonnés, t'as pleins de trucs super intéressant et accessibles à faire découvrir. d'ailleurs comment tu fais pour exécuter tes scripts vscode dans un terminal externe ?
ce n'est pas un script vscode, c'est un fichier python que que j'édite sur vs code et qu'on peut executer en tapent une commande
Sympa comme petit projet !
Ceci dit, je ne sais pas quelle version de Python tu utilises mais j'imagine que tu es au moins sur du 3.7,
ainsi je te recommande d'utiliser des 'dataclass' pour tes objets simples.
Ca t'évitera le boilerplate du constructeur, ce qui allège grandement la lisibilité (que ce soit pour toi, les néophytes ou les chevronnés).
Je viens de découvrir, merci pour le module !
Ce n'est pas encore un projet d'actualité. Mais parfois il m'arrive de me dire qu'un jeu en ASCII pourrais être sympa à créer. Un peu comme le mode aventure de Dwarf Fortress. En tout cas, je prend note ton conseil.
Merci :)
Je m'abonne directement 👏.
Vous avez parlé de rasterization, c'est ce qu'y est utilisé par toute les librairies où il existe d'autres principes de base ?
C'est principalement cette technique qui est utilisée. Après, le terme "Rasterization" signifie simplement "déterminer les pixels sur lesquels se trouve un objet". Donc techniquement parlant, il existe aussi la technique du raycasting (utilisé par les premiers fps notamment) et sa version ++ le raytracing (pour simplifier). Il y en a quelques autres mais la rasterization telle que montrée dans cette vidéo est la principale
Excellente vidéo !
+1
Enfin !!
J'aime bien
COOOOOOOOOOOOOOOOOOOOOOOLLLLL
+11111111111
C grave bien ! Merci des tutos juste moi lors de l'affichage sa fait un défilement comme une veille TV je sais pas si il y a moyen de regler se problème ?
Si tu voulais dire que l'écran scintille, j'ai abordé ce sujet dans l'épisode 2
incroyable. es-ce que tous les jeux fonctionne de cette manière ? faire des forme rondes etc comment cela fonctionnerais avec des triangle ?
Pour l'écrasante majorité, oui.
Après pour les sphères, c'est généralement des triangles mis ensemble (comme tu peux le voir au début), plus les triangles sont petits et nombreux plus la forme apparaît lisse. Mais généralement par soucis d'optimisation, on utilise des gros triangles avec ce qu'on appelle un shader pour gérer la lumière (la couleur de chaque partie du triangle) pour lisser artificiellement la sphère et donner une impression de lissage.
Avec les triangles, on fait quelque chose qui ressemble à une sphère (plus il y a de triangle, plus ça ressemble). Et ensuite, on peut appliquer une ou plusieurs tessellations, ce qui permet de lisser en multipliant le nombre de triangles.
Il existe d'autres techniques pour faire de la 3D, mais elles sont beaucoup moins utilisée.
Merci pour ta réponse@@benoitbertrand1636
pourquoi multiplier à la 3 minutes de la vidéo, le py par width ... ?
bien
N'y a t il pas moyen d'exécuter des shader en python sans library parce que là les perf vont être apeurant?
Si non je suggère de séparer l'écran en chunks et d'utiliser les différents threads du cpu.
PS: Super vidéo j'ai atte de voir la suite 👍👍👍👍
Merci pour les recommandations mais le but de cette série est de monter comment on peut le faire en partant de 0 en utilisant le moins de librairie possible mais je panse que je faire ça dans un épisode optimisation.
J'ai suivi ton tutoriel mais je n'ai pas le meme resultat dans la console, il y a des sorte de scintillement qui empeche un clear correcte
Est ce que t'es sur windows ? Comment tu exécutes le programme ? Ou alors, t'as essayé avec le code source ?
@@quantale8159 j'exécute mon code sur Windows via la console cmd. Il y a des clignotements entre l'affichage et le Clear. De plus, j'ai essayé avec le code que tu mets à disposition sur GitHub.
De mon côté cela "clignotait" à chaque rafraissement, j'ai du mettre du coup ces deux séquences d'échappement au tout début de la fonction draw()
print('\033[?25l', end='') # hide cursor
print('\033[0;0H', end='') # move cursor to 0,0
je suis le seul qui a un probleme au niveau de l'affichage des triangles ? ils défilent a une vitesse non constante ce qui rend pas super bien
t'as utilisé le delta time ?
c'est une IA la voix?
Non, c'est que parfois je fais des cuts et que je modifie certaines fréquence