Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4716 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [octree] que faire des faces rebelles?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[octree] que faire des faces rebelles?

n°720118
stochastik
Posté le 09-05-2004 à 23:55:57  profilanswer
 

Bonsoir,
Voilà, je voulais sonder ceux qui utilisent les octrees pour savoir que faire des faces se trouvant sur plusieurs boites ?  
- Putôt les redessiner à chaque tracé des boites dans lesquels elles se trouvent,  
- ou bien encore découper ces faces (triangulaire) en trois triangles (voir 2 dans cas particuliers)  
- ou finalement mettre un flag sur les faces et voir si la face considérée à déjà été tracée précédemment lors du passage par une autre boite (un peu lourd peut être, comme moi)?
 
bonne soirée, ce soir je suis le newbie de l'octree.

mood
Publicité
Posté le 09-05-2004 à 23:55:57  profilanswer
 

n°720125
skelter
Posté le 10-05-2004 à 00:11:43  profilanswer
 

moi je redessine, mais la solution du flag est interressante

n°720137
nraynaud
lol
Posté le 10-05-2004 à 00:29:38  profilanswer
 

question naïve d'un pas du milieu : il n'est pas possible de définir une boite "dominante" sur une face ?  
 
style on favorise la boite dans laquelle se trouve le vertex le plus proche de l'origine ?
 
edit : hum les relations d'ordre total dans des espaces vectoriels, y'en a qui ont essayé avant moi ... et ils ont eu des problèmes !


Message édité par nraynaud le 10-05-2004 à 00:41:41

---------------
trainoo.com, c'est fini
n°720204
stochastik
Posté le 10-05-2004 à 08:38:28  profilanswer
 

nraynaud => je veux bien favoriser une boite comme tu le dis mais de ce fait il se peut que l'on ne redessine pas une facette donnée dans une des boites de l'octree. Si par exemple une face s'étale sur 2 boites (cas des plus gentils car y'a pire), et bien si on se place de tel sorte à ne voir que la boite qui s'est vu emputée d'une face (chipée par sa voisine), alors il y a cette face que l'on ne dessinera pas et on aura un beau trou noir (enfin couleur fond). Ou bien faudrait à chaque fois réafficher cette boite voisine que l'on ne voit pas (et donc toute les voisine à une boite donnée), mais on est pas sûr non plus qu'une face ne s'étale que sur 2 boites...
 
Donc je sais pas ce que favorise voulait vraiment dire, et pis les espaces vectoriels ça m'irrite :). Mais je peux ne rien avoir compris et avoir déliré juste dessus.
 
skelter=> est-ce que tu perçois des "trucs pas beau" avec cette méthode ? Je veux dire des scintillements ou autre, vu qu'une face peut être redessinée un paquet de fois dans le pire des cas ?  
 
En tous les cas merci de vos réponses nraynaud et skelter, et pis bonne journée.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
n°720410
nraynaud
lol
Posté le 10-05-2004 à 11:35:45  profilanswer
 

ah ok. Bon j'aurais essayé quoi.


---------------
trainoo.com, c'est fini
n°720595
stochastik
Posté le 10-05-2004 à 14:09:00  profilanswer
 

nraynaud a écrit :

ah ok. Bon j'aurais essayé quoi.


oué et je t'en remercie, j'avais fais le même raisonnement aussi. C'est clair que ça aurait été interressant.

n°720598
nraynaud
lol
Posté le 10-05-2004 à 14:12:22  profilanswer
 

et prendre le cube le plus proche de l'axe optique de la caméra, c'est possible ?


---------------
trainoo.com, c'est fini
n°720741
stochastik
Posté le 10-05-2004 à 15:53:42  profilanswer
 

nraynaud a écrit :

et prendre le cube le plus proche de l'axe optique de la caméra, c'est possible ?


C'est-à-dire prendre le cube le plus proche de l'axe optique ? Tu veux dire que les faces peuvent changer de cube au cours du temps ?  
Pour ma part, ma scène est statique (terrain + trucs dessus), donc l'octree se construit à la lecture des ninfos sur le niveaux. Ensuite la caméra est placée dans la scène et et pis frustum culling, l'arbre reste identique au cours du temps.
J'ai pas trop compris, si tu pouvais développer steu plait.
Thx.

n°720752
nraynaud
lol
Posté le 10-05-2004 à 15:59:47  profilanswer
 

laisse tomber, ça nécessiterait de connaitre la caméra avant de charger le modèle, puis de modifier l'octree si la caméra bouge.


---------------
trainoo.com, c'est fini
n°721094
skelter
Posté le 10-05-2004 à 19:42:12  profilanswer
 

stochastik a écrit :


skelter=> est-ce que tu perçois des "trucs pas beau" avec cette méthode ? Je veux dire des scintillements ou autre, vu qu'une face peut être redessinée un paquet de fois dans le pire des cas ?  


 
non, aucun scintillement, aucune trace a l'affichage, mais c'est qd mem frustrant de redessiner plusieur fois un polygone (au plus 8 fois dans un octree, c'est ca?)

mood
Publicité
Posté le 10-05-2004 à 19:42:12  profilanswer
 

n°721096
nraynaud
lol
Posté le 10-05-2004 à 19:44:19  profilanswer
 

skelter a écrit :

non, aucun scintillement, aucune trace a l'affichage, mais c'est qd mem frustrant de redessiner plusieur fois un polygone (au plus 8 fois dans un octree, c'est ca?)

heu un vertex ne peut être que dans un cube, et il y a 3 vertex par face, donc je dirais 3 cubes non ?


---------------
trainoo.com, c'est fini
n°721137
skelter
Posté le 10-05-2004 à 20:27:13  profilanswer
 

et si 1 vertex est confondu avec un poin d'une boite, il se trouve dans 8 boite ?
 
edit: coin et pas poin


Message édité par skelter le 10-05-2004 à 20:38:54
n°721152
nraynaud
lol
Posté le 10-05-2004 à 20:36:03  profilanswer
 

skelter a écrit :

et si 1 vertex est confondu avec un poin d'une boite, il se trouve dans 8 boite ?

c'est pas une partition de l'espace un octree ?


---------------
trainoo.com, c'est fini
n°721154
skelter
Posté le 10-05-2004 à 20:38:18  profilanswer
 

ben si mais quand un vertex se trouve sur un coin tu le prnd qd meme, ce qui fait qu'il sera pris 8 fois (coin=intersection entre 8 box), tu voi ou pas ?
 
edit : entre 4 box, desolé j suis fatiqué :d (jdevais etre dans la 4e dimension )


Message édité par skelter le 10-05-2004 à 20:40:29
n°721197
nraynaud
lol
Posté le 10-05-2004 à 21:54:31  profilanswer
 

skelter a écrit :

ben si mais quand un vertex se trouve sur un coin tu le prnd qd meme, ce qui fait qu'il sera pris 8 fois (coin=intersection entre 8 box), tu voi ou pas ?

bah non, la définition formelle d'une partion c'est justement d'éviter ça.
 
classiquement on prend le bord d'un côté de l'intervalle et on l'exclut l'autre côté.


---------------
trainoo.com, c'est fini
n°721198
stochastik
Posté le 10-05-2004 à 21:54:57  profilanswer
 

au plus je pense que c'est indéterminé car ça dépend du maillage de l'affaire. Imaginons un terrain (oui je suis reloud avec mes terrains) avec des grandes, mais alors grandes faces (enfin pas trop non plus) et pas mal de petits éléments dessus. Et bien dans ce cas de figure il peut arriver que la face considérée soit sur 9-10 voire plus de boite. Car l'octree base son arrêt récursif sur le nombre de face par box. Donc tant qu'il y a de petits polygone de me%%% sur une grande face, bah la face peu se voir affublée à plus de boite. Mais j'espère que ces cas de figure occurent rarement car sinon c que le modeleur veut vous en faire voir ou que le maillage tire une sale gueule à l'affichage (bien plat quoi).  
Sinon je pense que le maximum "commun" doit se situer à 7. Vous imaginez une vue de dessus :  
_______________
|      | x     |
|      |       |
|--------------|
| x    |  x    |
|______|_______|
 
avec un cadrant en 4 et une face qui a ces 3 sommets dans 3 cadrant MAIS ayant une edge qui passe par le 1/4 de cadrant qui n'a pas de sommet. De là on peut très bien imaginer que que le sommet du 1/4 bas gauche se situe à l'étage supérieur (n'oublions pas quand fait le cadrant en 4 est un étage de box et qu'il en va de même juste au dessous) et que le sommet du cadrant haut droit se trouve en fait sur le cube du dessous de l'étage 2D présenté.  
 
Alors bien sûr il y a aussi le cas 8 que vous avez cité aussi, et pis plein d'autre aussi si la face arrive à s'étaler un peu.
 
Tout dépend donc. Alors je pense sérieusement à mettre un flag et pis basta.
 
Sinon retracer mais comme tu dis skelter c'est frustrant de retracer alors qu'on est censer mettre en place un truc qui limite justement cet affichage.
 
Merci de vos réponses/interrogations.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
n°721201
stochastik
Posté le 10-05-2004 à 21:57:25  profilanswer
 

pas bô le schéma, honte sur moi.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
n°721203
stochastik
Posté le 10-05-2004 à 21:59:41  profilanswer
 

et pis le 7, c'est un huit comme vous avez dis. (Ah le floodeur l'autre hé).


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
n°721211
stochastik
Posté le 10-05-2004 à 22:08:28  profilanswer
 

et pis j'en sais rien, 7-8-n, j'vais me pioter.
Progué bien.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [octree] que faire des faces rebelles?

 

Sujets relatifs
[OpenGL] Couleur des faces non texturées !!!Octree!!
[OpenGL] Problèmes avec les faces d'une pyramide 
Plus de sujets relatifs à : [octree] que faire des faces rebelles?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)