ben tu peux facilement savoir si un objet est dans le viewport, cela dit, donc tu peux culler en 2D. Si c´est pas dans la zone affichee, tu dis pas de dessiner, et c´est fini. Et c´est d´ailleurs tres certainement deja comme ca.
ou alors je comprends plus rien :P LOL
Ca a l´air amusant quand meme flash, faudra que je tripote un peu pour y voir un peu plus clair
Le culling est le fait de ne pas dessiner quelque chose qui n´est pas visible . ..apres, pour le " frustrum" je ne suis pas sur . ..
Dans mon moteur, faire du culling ralentirai le processus puisqu´on le ferait travailler pour analyser le point de vue du joueur, puis masquer dynamiquement les zones non visibles : c´est un procede TRES recommande en 3D, mais qui a mon avis perd son interet dans un moteur 2D emulant de la 3D . .. enfin, j´ai peut etre pas tout compris ? !?!
( fil : le culling, c´est le fait de detecter que qqch ne serait pas visible, donc qu´on a pas besoin de le traiter, ni de tenter de l´afficher ; parmi les courants : back face culling - normales inverses-, cone clipping -angle de vision-, frustrum -plans de la camera-. Apres viennent des choses plus fines, avec de l´occlusion query par ex. Tout cela n´est valable qu´en vraie 3d)
lux : tu traces tes objets far -> near ? si oui, essaye de les tracer near -> far, p-e qu´il y aura un gain ( mais il faudrait emuler une notion de profondeur ; le z-buffer a la mano, c´est envisageable ? en dessinant plein de petits polygo pour travailler au pixel ? lenteur assuree ? )
Si c´est pas dans la zone affichee, tu dis pas de dessiner, et c´est fini.
Sauf que Flash ne fonctionne pas comme ca
. .. il ne peut pas " selectionner" une partie d´une image pour l´afficher ou non, a moins de passer par des masques ( et dans le cas d´un masque, une image " non affichee" figure quand meme dans les ressources, meme si elle est non affichee . ..
Rhaaaa, le prochain qui dit " Polygone", je le transforme en saussice :D
lux : peux tu decrire un peu comment ca marche ?
moi j´imagine ca comme ca : le sol, et une collection d´objets ( arbres et maisons).
1) Tu dis de dessiner le sol ( avec la fameuse technique mode7 emulee)
2) Ensuite tu dis de dessiner chaque objet du jeu(avec la bonne texture, avec un simili-billboard/impostor)
( pour tout ca, une sorte de direction de la vue est utilisee)
3) Dessiner le HUD
pour le 2, il est assez facile de detecter grossierement si l´objet ( arbre, maison) va etre dans la fenetre de vue ou pas. Ici on peut ne dessiner que les objets utiles ( ou presque..)
Oui, je vais expliquer ![]()
saucisses pour tout le monde ! !! :D
( meuuuh c´est bien les poly, et pis bon, des vecteurs, des polys, on s´y retrouve hein, c´est du pareil au meme...)
Merci, j´ai compris; en gros ca permettrait de ne pas afficher le sol derriere la maison par exemple?
Ca yen a muy compliqué a mettre en oeuvre , autant le mode 7 je suis a peu pres mais la
PS: c´est chiant de faire des menus en flash ![]()
- Le mode 7 :
Mon moteur est compose de bandes horizontales, la plus fine etant au milieu de l´ecran ( loin ) la plus grosse en bas ( proche )
Ces bandes vont donner l´illusion de la profondeur
J´ai ensuite une image plate : http://grafikdezign.free.e.fr/flashkit/Sans-titre-2.jpg
que je vais copier dans chacune de ces bandes, a un taux d´aggrandissement ( ou de reduction ) different : le plus gros dans la bande du bas, le plus petit dans la bande du milieu
( voir le tutorial mode 7 : )
- Images 2D uniques ( arbres, par exemple )
Une image Gif qui dispose de coordonnee X,Y sur ma map 2D ( ma minimap), qui sont traduites en coordonees 3D selon la direction de la camera / joueur - quelque soit la position du joueur par rapport a cet objet, il ne verra toujours que la meme image
- Images 2D multiples ( maison )
Meme procede, sauf que je fais une analyse du point de vue de la camera pour aller chercher la bonne image de l´animation, qui correspond au point de vue du joueur . .. Donc l´image affichee dependra de la position du joueur : il verra une des 63 images de l´animation correspondant au bon angle
bien sur, les objets sortant du champs de vision sont " detruits"
Je cherche les liens concernant le mode7 et les reposte de suite
< warning, saucisse mode on>
fil : non, pour le sol derriere les maisons, faudrait qq de plus " evolue", genre une tesselisation fine du sole et un z-buffer, le tout en affichage near -> far ; les primitives transformees et masquees seraient clippees en debut du pipeline 2D, en amont du rasterizer.
Ou alors de l´occlusion, pourrait permettre ca ( avec un terrain presentant un relief, c´est tres interessant)
le clipping, c´est juste dire " tel objet est dehors de la scene, je le dessine pas" ; hors la le sol est toujours un peu visible. En 3D on pourrait intersecter le sol avec les plans du frustrum pour ne dessiner que ca , par ex.
< /saucisse mode off>
lux : dsl, c´est un peu plus generaliste que ton projet toutes ces disgressions ; on devrait p-e sortir tous ces posts dans un topic plus general ![]()
eh eh, ca me rappelle ma SNES tout ca :´>
bon, je pense qu´on est tous d´accord en ce qui concerne le mode 7 ; un truc qui peut etre interessant :
" les objets sortant du champs de vision sont " detruits" "
je ne sais pas tres bien ce que tu entends par " detruits", et je ne connais pas les mechanismes de duree de vie en flash, mais s´il y a effectivement allocation/desallocation de donnees pour les objets clippes, il serait surement interessant de tous les garder en memoire, pour rester aussi statique que possible une fois le programme lance
" une tesselisation fine du sole et un z-buffer, le tout en affichage near -> far ; les primitives transformees et masquees seraient clippees en debut du pipeline 2D, en amont du rasterizer. "
Juste ca j´ai rien capté..mais on va arrêter la je pense
Lux, a quoi destine tu ce moteur?
un Daggerfall-like, non ? en tout moi ca me plairait bien ! C´est bien parti tout ca, on attend de voir les evolutions ![]()
BAckface culling en Flash :
http://www.lol.dk/viewfile.asp?project=Misc&path=,Flash,3D%20experiments,Texture%20work,texture3D,textureCubev2.swf
Ceci dit, c´est vraiment de l´experimentation, et n´est pas encore possible en application " jeux " : trop gourmand en ressources
dans le meme style, et par le meme gars :
http://www.lol.dk/viewfile.asp?project=Misc&path=,Flash,3D%20experiments,Texture%20work,texturePolygon,00000003.swf
( deplacer les coins)
ce qui peut a la rigueur donner ca :
http://www.lol.dk/viewfile.asp?project=Misc&path=,Flash,3D%20experiments,Game%20Engine,wipeout3d,wfse-ship.swf
mais bon, on est dans le pur experimental, et le moteur 3D est code ET execute dans Flash, ce qui fait que cela pompe de la ressource ( le plugin Flash etant lui meme tres gourmand ! !! )
--- Bref, le moteur de Lux / Blink et loin d´etre au top de l´innovation ---
Par contre, il peut etre envisageable d´etre applique a un jeu
. ..
Pour le mode 7
Explication des bandes :
http://grafikdezign.free.ee.fr/flashkit/kart_strips.png
Ah j´avais dejà vu le lien pour le mode7...
Dagerfall....c´est le predecesseur de morrowind non?
Oui ![]()
Et quand on dis genre Dagerfall, c´est le gameplay ou la durée de vie ( le moteur on a deja vu
) ?
je ne sais pas encore . .. si je veux faire quelque chose de serieux avec tout ca, vu que les graphismes vont prendre un temps consequent, il me faudra m´associer avec un coder qui maitrise ce genre de technique : et ca, ce n´est pas gagne . ..
Donc pour l´instant, je vais me contenter d´essayer d´ameliorer mon moteur, de faire plus de modeles pour montrer ce que je veux faire, jusqu´a ce que je trouve quelqu´un de suffisement competent et motive pour m´aider . .. bref, je vais faire ce que l´on conseille tous les jours sur ce forum : travailler de mon coter et voir qui vient frapper a ma porte ![]()
Tiens ca me fait penser, tu peux nous en dire plus sur Strille, ce qu´il a fait sur Sylvaniah, son parcours....?