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

faces cachées

mbleu
mbleu
Niveau 6
28 janvier 2004 à 20:56:40

Voila, je continu mon projet d´algo-graph,
c´est a dire afficher des objets 3d par rapport a des coordonées d´un fichier
Ca marche plutot pas mal mais maintenant je voudrais retirer les faces cachées...
Comme on m´a bien aidé la derniere fois je v redemander un peu d´aide...

G compris le principe:
-faces orientées
-vecteur normal a ces faces
-vecteur de l´observateur vers le barycentre de la face
-test du produit vectoriel des 2 vecteurs
-->resultat positif on affiche

Ca ca va...
Mais quand je dois faire intervenir des maths ca coince un peu

par exemple je me souviens plus de la formule pour avoir un barycentre :(
et je vois finalement mal comment coder ca...

Y aurais moyen de me donner un exemple ( Java ou C) du comment on fait ca...

Merci beaucoup.... :)

Altonfrere
Altonfrere
Niveau 10
28 janvier 2004 à 21:09:50

bon déjà c´est pas le produit vectoriel mais le produit scalaire de tes 2 vecteurs! ( le résultat du produit vectoriel donne un autre vecteur, normalement orthogonal aux 2 autres et orienté comme l´indique sa définition si tu trouves dans un repère direct, sinon c´est l´opposé...)

Bon ensuite le barycentre bin c´est tout simplement le " milieu" de la face. Pour cela il te suffit d´additioner les coordonnées ( les x avec les x, les y avec y etc..) et tu divises par le nombre de sommets ( en supposant qu´elles ont toutes les même " poids" soit 1 dans un cas classique, sinon tu additionnes les poids de chacun de tes sommets et tu te sers de ce résultat pour la division) :

XBarycente = SOMME(Xi) / SOMME(Wi)
YBarycente = SOMME(Yi) / SOMME(Wi)
ZBarycente = SOMME(Zi) / SOMME(Wi)

( les Wi c´est pour " Weight" ( =poids en anglais))

vala :)

JeanYvesYves
JeanYvesYves
Niveau 10
28 janvier 2004 à 22:24:21

Si je ne dis pas de conneries ( et je crois que non)
tu n´es meme pas obligé de considérer le barycentre : tu peux considérer n´importe quel sommet :
La normale orirntée est bien un produit vectoriel, et l´autre vecteur a tester est le vecteur ( oeil - ce_sommet)
et le résultat sera le meme si tu consideres un sommet, un autre, ou le barycentre :
on pourrait dire que ce ne sera pas pareil dans le cas limite : cependant dans le cas limite, l´oeil, et les sommets et le bary sont sur le meme axe...

Bref, a démontrer, mais avec ça, j´ai aucun probleme.

Altonfrere
Altonfrere
Niveau 10
28 janvier 2004 à 23:20:42

arf, vi en effet tu peux prendre n´importequel point de la face pour calculer la normale ( c´est normal lol) ! et ce en utilisant le produit vectoriel oui . ..

mais c´est bel et bien un produit scalaire qu´il faut faire pour déterminer la visibilité !
produit scalaire entre la normale et l´observateur.

En passant je corrige une petite erreur de mbleu, tu n´as pas besoin de :

" vecteur de l´observateur vers le barycentre de la face"

mais plutôt

" vecteur de l´observateur" ( direction de la camera en clair)
et " normale à la face"

Ton observateur ne peut pas être dirigé vers tous les barycentres de tes faces!! ou alors il a la bougeote !

neg282
neg282
Niveau 7
02 juillet 2004 à 14:48:20

non, la c´est toi qui te trompe Altonfrere. si tu prend le vecteur de l´observateur, tu va avoir des résultats bizarres. Imagine une face dont la normale est perpendiculaire au vecteur de l´observateur, mais a gauche de la camera. le produit scalaire donnera 0, mais la face est quand meme visible. ( je sais pas si je suis très clair)

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