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

Gestion de lumiére

mbleu
mbleu
Niveau 6
07 décembre 2003 à 18:14:16

Voila, j´ai un projet d´algo-graphique en java a faire :)
C deja bien commencé, mais j´aimeris ajouter des effets de lumiéres, cependant je sais pas du tt comment on fait ca, donc si vous avez de la doc ou des conseils....
Merci!

JeanYvesYves
JeanYvesYves
Niveau 10
07 décembre 2003 à 22:08:34

en java je ne sais pas :-/
désolé

mbleu
mbleu
Niveau 6
08 décembre 2003 à 11:11:45

Mais m si tu connais pas ca en java, tu connais pas un peu de theorie sur la gestion de lumiere?
( g precisé le java car g pas le droit a l´assembleur) maius c surtt le principe que je cherche

JeanYvesYves
JeanYvesYves
Niveau 10
08 décembre 2003 à 13:15:08

en Théorie, oui je connais :

je te prends un exemple : imagine que tu aies un triangle blanc.
s´il est bien en face de la lumiere, tu le vois blanc, s´il est + tourné, tu le vois gris, on est ok ?
s´il est perpendiculaire a la lumiere, alors il est noir, toujours d´accord ? :)

Comment voir cela ? c´est de la géométrie ! !
ta lumiere est définie par un point dans l´espace. Premiere chose,tu vas calculer le vecteur L, orientation de la lumiere, vers ton triangle a éclairer ( donc tu as en gros un dessin avec une lumiere représentée par une flèche)

Tu vas ensuite calculer le normale N au triangle.
( la normale, c´est un vecteur orthogonal au plan du triangle)
( pour cela, considère ton triangle a,b,c par 2 vecteurs, le vecteur ab, et le vecteur ac, N est le produit vectoriel suivant : ab^ac.

Normalise ensuite tes 2 vecteur N et L ( il faut que leur module soit égal a 1 : pour cela, divise chaque composante du vecteur par sa norme)

Ensuite c´est presque fini : tu comprends bien que plus les vecteur N et L seront colinéaires, plus ton triangle devra etre blanc.
Si jamais ton triangle est perpendiculaire à la lumiere, alors N et L sont orthogonaux, tu vois ?

Alors c´est simple : tu calcule le coefficient de lumiere c = L.N ( produit scalaire)
tu vas trouver un entier entre -1 et 1.
je te conseille d´en prendre la valeur absolue : conséquence directe : ton triangle devient double face, et tu as un coeff entre 0 et 1.

Pour colorer ton triangle, prend sa couleur d´origine ( celle a laquelle il doit etre s´il est bien éclairé), et multiplie la juste par c, et obtiens directement la couleur de ton triangle :)

En effet, si le triangle est bien en face, alors L et N sont colinéaires ( en valeur absolue), donc c=1 : donc C bien blanc.
Si il est perpendiculaire, alors N et L orthogonaux, or le produit scalaire de 2 vecteurs orthonaux est nul, donc c=0 donc tu as du noir
et C magique car ça t´affiche toutes les nuances de gris pour un triangle qui bouge :)

et si tu veux de la couleur, multiplie chacune de tes composantes de couleur par c.

Voila, essaie de te faire un petit schéma pour bien comprendre cela :) Dis moi si tu as bien compris !

Ceci est le FLAT Shading : C pas super car le triangle a une couleur unie.
Si tu as bien compris, je t´expliquerai le GOURAUD shading, celui qui est utilisé dans le jeux, pour faire de meilleurs rendus, et peut etre aussi le PHONG Shading, qui demande encore trop de calcul donc pas utilisé en temps réel.

Voila, j´espere que - sans dessins - ça a quand meme été pas trop chaud a comprendre.
j´espere aussi que tu n´as pas de mal avec les vecteurs, produits scalaires et vectoriels :)

Tiens moi au courant !

JeanYvesYves
JeanYvesYves
Niveau 10
08 décembre 2003 à 13:18:04

PS : pour calculer le vecteur L, c´est simple : considere le barycentre B du triangle, ta lumiere est un point a la position P
L = vecteur(PB)

n´oublie pas de normaliser L et N, sinon, ça te fait n´importe quoi.

mbleu
mbleu
Niveau 6
09 décembre 2003 à 18:58:04

OUAHHHH!
Je m´attendais pas a une reponce aussi detaillée ( je l´esperais c tout:)!!!
Merci beaucoup, je v tester ca
si g d´autres questions, je sais a qui m´adresser maintenant!!!!
Merci :)

JeanYvesYves
JeanYvesYves
Niveau 10
10 décembre 2003 à 23:46:45

pas de soucis :)

JeanYvesYves
JeanYvesYves
Niveau 10
10 décembre 2003 à 23:50:45

va voir ce site

http://www.campus.ecp.fr/~infograf/AOC2/aoc.html

les 2 premiers photos sont celles de la femme de monsieur Gouraud, les 2 suivantes sont les maillage de sa femme :
a gauche, en FLAT shading, a droite, en Gouraud Shading, avec le MEME maillage :))
ça vaut le coup d´oeil, tu vas voir la différence !
lis cette page pour en savoir + ! !

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