CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

entre la 3D iso et la vraie 3D

luxregina
luxregina
Niveau 10
20 décembre 2006 à 21:09:31

en fait, tu tient la reponse dans ta question : quand tu dis "fausse 3D"...

Dans le moteur dont je donne le lien, tout est gere en 2D : la 3D n´est qu´une illusion d´optique ...

le Z-sorting, les calculs d´angles, et la gestion des collisions ( s´il y en avait une, mais je l´ai desactivee car je n´arrivait pas a corriger certains bugs ), tout a lieu dans la petite map 2D en haut a droite de l´ecran ...

Le reste n´est qu´une "renderisation" de ce qui se passe dans cette minimap ...

en ce qui concerne l´edition des cartes, rien de plus facile, du moins en Flash : je depose juste mes elements sur ma carte 2D, et ca y est ...

Le gros probleme donc, ( toujours concernant la version Flash ) vient seulement des gros ralentissements processeur lorsqu´il y a beaucoup d´objets a afficher ...

reno_
reno_
Niveau 10
20 décembre 2006 à 21:24:55

Merci pour ces précisions ;)

En y réfléchissant, je pense qu´il, y a deux type de "fausse 3D" :

1/celle à la AFTER BURNER ou tout l´affichage est composé d´images qui subissent un traitement d´agrandissement/réduction + priorité d´affichage + changement de couleurs pour mieux simuler la profondeur,

2/celle que tu utilises, une sorte de "mode 7" de la Super Nes : une image étiré pour les sols à la F-ZERO + images ( plusieurs séquences pour tourner autour ? ) avec agrandissement/réduction + priorité + couleurs.

Moi je suis plus attiré par la première technique. En plus il me semble qu´avec la première on peut simuler des terrains déformés, alors qu´avec la deuxième tout doit être plat... peut être que je me trompe ?

luxregina
luxregina
Niveau 10
20 décembre 2006 à 22:35:00

ta methode 1 peut etre celle du mode7 moins la gestion d´un sol mappe sur un plan...

bon ...essayons de decortiquer le gameplay ...

1 ) Afterburner, un peu comme Space Harrier ne gerait pas de terrain, la seule indication que l´avion avancait ( outre la presence des enemis ) etait les moutenements des vagues sur le gros rectangle bleu de la mer

La procedure d´affichage de ces moutons est la meme que les enemis, et le Z sorting est assez facile puisqu´il suffit de leur attribuer un ordre Z par ordre d´apparition : en effet, AfterBurner, come Space Harrier, n´offrait pas la possibilite de "tourner" autour des enemis - en gros, c´etait un shoot vertical, donnant une vague impression de 3D

2) considerons maintenant un AfterBurner ou l´on puisse revenir en arriere, tourner autour des enemis ; la, du coup, on ne peut plus se contenter d´avoir un Z en fonction de l´ordre d´apparition ... on pourrait placer les differents index Z dans un tableau, et les recalculer en fonctions de leurs deplacements relatifs pour chaque enemi, mais cela serait lourd en trigo :) et reviendrait au meme, au final, a projeter la position de tout le monde sur un plan 2D, et de faire les calculs d´index Z en fonction de ce plan, et de la position de la camera (avion) - ce qui exactement ce qui se passe dans mon moteur ... :)

Donc je crois que tes deux methodes n´en sont en fait qu´une, a partir du moment ou tu donnes a ta camera (avion) l´option de pivoter sur son axe ...
Apres, la gestion du terrain en mode7 est une fonctionalite ajoutee au moteur, mais il reste neanmoins le meme ...

luxregina
luxregina
Niveau 10
20 décembre 2006 à 22:55:31

quand a la gestion des couleurs en fonction de la distance, c´est aussi quelque chose que j´avais explore avec ce moteur : j´ai reposte une version plus recente ici :

http://www.luxgames.net/median/engine_new.html

et je t´ai mis un exemple de sprite 2D, et la map du sol ( qui est ensuite donc, decoupee en tranches qui rapetissent au fur a mesure qu´elles s´approchent de l´horizon )

quand a ici, voici un exemple des modeles 3D : les calculs trigo disent au moteur sur quelle image il doit s´arretter :

http://grafikdezign.free.fr/flashkit/model.htm

Fvirtman
Fvirtman
Niveau 10
20 décembre 2006 à 22:59:02

reno_ > En effet, comme tu le dis, le mode7 de la SNES ne peut générer que des décors plats, parce que c´est simplement un carre distordu.
Comme dit Lux, dans AfterBurner, ils ont meme triché : il n´y a pas de notion de décor, peut etre juste un petit scrolling en bas.

Apres, je me pose une question sur ce que tu veux faire :
- tu veux refaire un moteur de pseudo 3D de toute piece ?
- ou alors tu tu es ok pour utiliser quelques librairies bas niveau, qui utilisent les accélérations des cartes graphiques (OpenGL ou DirectX) ?

Les librairies telles que OpenGL (que je connais le mieux) vont te permettre d´afficher des triangles dans l´espace, et de placer une caméra.
En posant un Quad (2 triangles) texturé sur le sol, et en mettant ta caméra ou tu veux, tu reproduis immédiatement le mode7, en vraie 3D.

Pour faire des décors accidentés (comme quasiment les jeux 3D), tu as la technique du Heighmap : en fait, c´est une image, noir et blanc, et a chaque pixel est associé une valeur de gris.
Plus cette valeur est elevée, plus haut sera le relief a cet endroit : cela te permet d´éditer une map 3D sous paint si tu veux :)

Apres, comme dit Lux, si tu veux par exemple tourner autour d´un avion, au lieu de tourner toi meme, tu fais tourner tout le décor devant toi (ça revient au meme)
Comme ça, le Z te permet immédiatement de faire un sorting (d´ailleurs, toutes les cartes graphiques contiennent le Z-buffer, qui fait ça en hardware)
Mathématiquement, faire tourner un point revient uniquement a lui appliquer une matrice, les cartes graphiques multiplient énormément de matrices...

Pour les effets de lumiere (atténuation de couleurs), les cartes graphiques savent faire aussi. (basés sur des produits scalaires principalement et l´algo de Gouraud entre autre, tout géré par la carte graphique aussi)
Apres, tout dépend si tu veux y utiliser directement, ou plutot savoir les maths qu´il y a derriere

Le sujet est ouvert :-)

Fvirtman
Fvirtman
Niveau 10
20 décembre 2006 à 23:00:45

luxregina > joli effet de fog :-)

luxregina
luxregina
Niveau 10
20 décembre 2006 à 23:13:14

merci : le probleme, c´est que c´est plus gourmant en ressource que sans :) bref, les joies de la 3D en Flash ...

Sinon, perso, juste en reaction a ce que tu dis, et toujours par rapport en Flash, je pense qu´il est plus facile de reajuster les indexes Z des enemis a la volee ( selon la methode du ray casting ou calcul vectoriel, je ne sais pas comment tu appelle ca )

Enfin, perso, je crois que tout le challenge du topic est de savoir comment tricher avec tous ces effets sans avoir recours aux fonctions des cartes graphiques modernes - c´est d´ailleurs ce qui m´amuse le plus, dans Flash, c´est l´ingeniosite des procedes pour "emuler" quelque chose de commun sous d´autres langages ...

Tu parles de heightmap, par exemple, qui est un truc bateau en C++, mais pas en Flash ...et pourtant :

http://lab.parkstudio.ru/terra/

luxregina
luxregina
Niveau 10
20 décembre 2006 à 23:19:51

ou, d;ailleurs, j´ai releve un truc avec lequel je ne suis pas trop d´accord, concernant le mode 7 :

[ (...) mode7 de la SNES ne peut générer que des décors plats, parce que c´est simplement un carre distordu. ]

En fait, non ! :) ... je m´explique : si tes "tranches" sont rectangulaires, oui, tu ne peux creer qu´un decors plat, par contre, si tu te met a generer des tranches "accidentees" non rectilignes, tu peux alors creer un decors accidente ... quelqu´un avait fait l´essai en Flash et le resultat etait assez soufflant : je vais essayer de retrouver le lien ...

Fvirtman
Fvirtman
Niveau 10
20 décembre 2006 à 23:36:32

Magnifique le heighmap :ok:
Pour ma défense, je dirais que ce n´est pas si bateau en C++ quand meme, lol !

Oui, je comprends bien que c´est vraiment intéressant d´essayer de retrouver des résultats faits par la carte graphique sans l´utiliser. Les profs ne sont d´ailleurs pas privé de nous demander ça en TP, lol ! :)

C´est vrai que réajuster les indexes Z des ennemis a la volée est d´ailleurs beaucoup moins calculatoire.

D´un coté, moi aussi je déplore le temps ou on avait un control total des choses, ou on pouvait modéliser les choses comme on voulait (par exemple, Doom 1, ce bijou magnifique, fait que de trapezes droits pour les murs : magnifique !! )
Mais c´est vrai que j´admire aussi ce que savent faire les cartes graphiques et les applications qui vont avec :-)

Je suis intéressé si tu as un exemple pour le mode7, car je ne vois pas exactement pour le moment (ça doit etre parce qu´il est tard, lol !)

luxregina
luxregina
Niveau 10
20 décembre 2006 à 23:43:08

un moteur mode 7 / raycasting meilleur que le mien :
http://lab.andre-michelle.com/raycaster-v3
( ce gars est l´un des genies de Flash )

J´ai egalement trouve le lien dont je parlais, mais la page n´existe plus :(

luxregina
luxregina
Niveau 10
21 décembre 2006 à 00:00:05

nan, du coup j´ai plus d´exemple concret, mais je vais essayer d´expliquer mieux :

tes masques sont lineaires, dans le mode7, c´est a dire que c´est une succession de tranches rectangulaires, empillees par ordre decroissant

Chacune de ses tranches contient une portion de l´image, qui est agrandie ou retrecie en fonction de la taille de son conteneur

Imaginons maintenant, qu´au milieu des tes conteneurs rectangulaires, tu commence a arcbouter l´une des face, en repercutant ce changement sur tes conteneurs suivants, de maniere de plus en plus prononcee au fur et a mesure que tu remonte vers ta ligne d´horizon, tu n´as plus un paysage plat, mais une colline ...

Une autre maniere de tricher est celle demontree ici :

http://www.unitzeroone.com/blog/flash_examples/flash_9_example_3d_landscapes.html
(clique sur l´image, a la fin du message )

En l´occurrence, le voxel n´existe pas encore en Flash - le gars utilise donc une methode proche de celle que je cite ci-dessus, en deformant dynamiquement des portions de ses "masques" afin de donner l´impression de relief ... et je trouve cela assez concluant - et pourtant, sans meme l´avoir vu, je peux t´assurer que son code repose en grande partie sur celui du mode7 ...

luxregina
luxregina
Niveau 10
21 décembre 2006 à 05:15:30

ceci dit, je parle de tout ca, mais moi, je ne suis qu´un graphiste, j´y connais donc pas forcement grand chose ... j´essaye juste de donner un avis "different" :)

fil_razorback
fil_razorback
Niveau 10
21 décembre 2006 à 08:11:52

Merci lux, j´avais pas encore vu la version AS3 du mode 7 selon André Michelle. C´est d´une fluidité impressionante.

luxregina
luxregina
Niveau 10
21 décembre 2006 à 08:22:17

bah ...c´est Andre Michelle, quoi ... :)

reno_
reno_
Niveau 10
28 décembre 2006 à 15:14:43

Salut à tous ; c´est pas évident de prendre du temps sur le net avec les fêtes :fete:

En relisant les messages, je viens de comprendre comment faire la différence entre la carte et l´affichage du jeu à l´écran ; c´est tout con, mais je n´y avait pas pensé !

Pour l´instant je programme avec BLITZ BASIC, mais je compte passer dans quelques mois avec COBRA (
http://squeakyduck.co.uk/ ) qui offrira beaucoup plus de souplesse pour le traitement des images ( distorsion, etc ).

Merci pour l´explication du "heightmap", même si je n´en vois pas son utilisation dans un jeu type 2D.

On va dire que pour l´instant je ne me pose pas encore ces questions, je verrai le moment venu. Ce qui m´interessera avec cette technique, c´est d´obtenir le même rendu dans un premier temps d´un AFTER BURNER ( arcade ) et dans un deuxième temps celui d´un BIG RUN ( arcade ).

Luxregina, ça a de la gueule ton moteur avec les changements de couleurs !

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware