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

  FORUM HardWare.fr
  Programmation
  C

  [c] transparence en raytracing

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] transparence en raytracing

n°2229644
archseven
Posté le 31-05-2014 à 17:48:50  profilanswer
 

bonjour,
 
je viens vers vous pour savoir comment effectuer une transparence en raytracing,
 
j'ai vu un tuto à cette addresse là http://heigeas.free.fr/laure/ray_t [...] cipes.html sur la transparence
 
le seul problème que j'ai à sa lecture c'est qu'on obtient la valeur directeur du rayon transmis mais que dans la manière dont je vois les choses une direction 3d est donnée par 3 vecteurs directeur et je ne vois pas comment transformer cette unique valeur en 3 vecteurs directeur.
 
Voilà.
 
Si vous pouviez m'aidez un peu ce serait sympa.

mood
Publicité
Posté le 31-05-2014 à 17:48:50  profilanswer
 

n°2229655
Farian
Posté le 01-06-2014 à 00:50:10  profilanswer
 

Bonjour !
 
Quel que soit le nombre de dimensions, une direction est toujours donnée par un seul vecteur (et on rajoute un point pour caractériser une droite).
 
En revanche, c'est la normale à cette direction (qui est une droite en 2D, un plan en 3D, un hyperplan au dessus) qui est donnée par (N-1) vecteurs, en "ND".
 
Bonne continuation !


Message édité par Farian le 01-06-2014 à 00:50:37
n°2229686
archseven
Posté le 01-06-2014 à 22:48:16  profilanswer
 

comment faire une fois qu'on a le point et le vecteur directeur pour trouver les vecteurs x, y et z du vecteur principale ?

n°2229788
Terminapor
I'll see you rise.
Posté le 02-06-2014 à 21:03:48  profilanswer
 

Tu parles de passer de ton vecteur de direction à une matrice de rotation ?
 
https://community.freescale.com/servlet/JiveServlet/showImage/38-1443-1279/accelerometer_axes.jpg
 
En admettant que Z est ton vecteur, tu veux X et Y ?


---------------
Perhaps you don't deserve to breathe
n°2229981
archseven
Posté le 05-06-2014 à 03:31:03  profilanswer
 

Re-
 
Terminapor non ce n'est pas ca que je voulais j 'en suis a un stade entre guillemet plus limité.
 
le truc c'est que en Raytracing pour obtenir un point dans l'espace par rapport au point de la caméra, j'ai toujours utilisé 3 vecteurs vx vy et vz qui me donne le point dans l'espace mais la mentalement j'arrive pas à comprendre comment une valeur positive ou négative peut orienter en 3d donc avec un seul vecteur directeur je n'arrive ni a décomposer en 3 vecteur directeur ni même avec le point d'origine et le vecteur directeur obtenir le point dans l'espace.
 
Donc a ce que j'ai compris on ne peut pas décomposer un vecteur directeur en 3 vecteur vx vy vz. mais alors comment fais-t-on quand on a par exemple point d'origine AX = 1, AY = 1, AZ = 1 et vecteur directeur B = 1 quels sont les trois points BX BY BZ ?

n°2230000
Totoche17
Posté le 05-06-2014 à 10:24:20  profilanswer
 

archseven a écrit :


 
Donc a ce que j'ai compris on ne peut pas décomposer un vecteur directeur en 3 vecteur vx vy vz. mais alors comment fais-t-on quand on a par exemple point d'origine AX = 1, AY = 1, AZ = 1 et vecteur directeur B = 1 quels sont les trois points BX BY BZ ?


 
Corrige moi si je me trompe mais j'ai l'impression que c'est pas très clair dans ta tête ces notions de vecteur.
 
Pour bien situer les choses, c'est quoi ton niveau en maths ?
 

n°2230015
Farian
Posté le 05-06-2014 à 12:03:48  profilanswer
 

Je suis d'accord avec Totoche, vous semblez confondre les vecteurs et leurs coordonnées dans la base (Ox, Oy, Oz).
 
Du coup, nous avons un peu de mal (en tous cas, moi je n'y arrive pas) à comprendre le sens précis de votre question, ce que vous voulez vraiment dire, puisque nous n'avons pas la même signification pour les termes.
 
Rien de dramatique, il faut juste arriver à nous recaler :)
 
Bonne continuation !

n°2230022
Terminapor
I'll see you rise.
Posté le 05-06-2014 à 15:24:39  profilanswer
 

archseven a écrit :

Re-
 
Terminapor non ce n'est pas ca que je voulais j 'en suis a un stade entre guillemet plus limité.
 
le truc c'est que en Raytracing pour obtenir un point dans l'espace par rapport au point de la caméra, j'ai toujours utilisé 3 vecteurs vx vy et vz qui me donne le point dans l'espace mais la mentalement j'arrive pas à comprendre comment une valeur positive ou négative peut orienter en 3d donc avec un seul vecteur directeur je n'arrive ni a décomposer en 3 vecteur directeur ni même avec le point d'origine et le vecteur directeur obtenir le point dans l'espace.
 
Donc a ce que j'ai compris on ne peut pas décomposer un vecteur directeur en 3 vecteur vx vy vz. mais alors comment fais-t-on quand on a par exemple point d'origine AX = 1, AY = 1, AZ = 1 et vecteur directeur B = 1 quels sont les trois points BX BY BZ ?


B n'est pas une direction..
 
Mettons tu as ton origine O(8,9,10) ( x = 8, y = 9, z = 10) et ton vecteur de direction V (0,0,1) (un vecteur de direction est toujours normalisé, c-a-d que sa longueur est de 1) dans ce cas la position de O translaté par V est simplement (8,9,11).
En gros, la translation par une direction ça se fait comme ça :  
Ot = O + V * distance
 
Où Ot est le résultat (O translaté), V est le vecteur de direction et distance la distance (valeur simple, pas un vecteur)
 
Mais là j'ai l'impression que ton niveau côté vecteur est très faible, et se lancer dans un moteur de rendu en raytracing avec de telles lacunes équivaut à un suicide avec préméditation :D
Tu devrais lire des cours sur les vecteurs d'abord :jap:


---------------
Perhaps you don't deserve to breathe
n°2230034
archseven
Posté le 05-06-2014 à 18:37:09  profilanswer
 

Ok merci pour ton explication là je comprend car c'est comme ca que je vois le truc (j'ai effectué en raytracing un plan une sphère un cylindre et un cone avec une lumière et les ombres) ca marchait.
 
là je dois faire la transparence en projet de groupe.
 
la formule qui me semble ok selon les différentes sources que j'ai lu :
 
a1 = angle incident, a2 = angle réfracté.
 
transmis = sin(a2)/sin(a1) * source - (cos(a2) + sin(a2)/sin(a1) * (source*normale)) * normale
 
là on parle que de vecteur directeur donc normalisé ma question est comment traduire cette formule  
 
genre je la fais trois fois en remplacant source par eye.vx, eye.vy eye.vz, normale par n.vx n.vy et n.vz du coup j'obtiendrais les 3 valeur du vecteur transmis normalisé:
t.vx = formule avec eye.vx et n.vx
t.vy = formule avec eye.vy et n.vy
t.vz = formule avec eye.vz et n.vz
 
pour ce qui est du calcul des angles je fais le produit scalaire entre eye et n puis, angle incident =  angle refracté.* 2 / 3.
 
j'ai tésté comme ca sur un cylindre mais c'est bugué et je ne sais pas si ca vient de la mauvaise utilisation de la formule ou de mes fonctions qui re-calcule les intersections avec les objets aprés la transparence.


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

  [c] transparence en raytracing

 

Sujets relatifs
transparence couleur sur dreamweaver MXQt et transparence
Diapo+Transparence d'imagesProblème de transparence bitmap
[Windows Form] - DirectX - Vidéo et Transparence d'une FormComment se debarasser de la transparence d'image
Probleme transparence sous IEhlipokm
Transparence PNG dans champ inputTransparence de bitmap en GDI+
Plus de sujets relatifs à : [c] transparence en raytracing


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR