IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

Bruit de perlin et raytracer


Sujet :

Projets

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 18
    Points
    18
    Par défaut Bruit de perlin et raytracer
    Bonjour,

    Je suis en train de developper un raytracer et j'essaye d'introduire le bruit de perlin mais j'ai un petit probleme. Tout d'abord voici le code :

    float noiseCoef=0.0f;
    float fr =1.0f;

    for( int level=0 ; level <8; level++){
    noiseCoef += fabsf( noisef( fr*p.getX(), fr*p.getY(), fr*p.getZ() ) )*1.0f/fr ;
    fr*=2.0;
    }

    noiseCoef = cos( p.getX()+p.getY()+p.getZ() + noiseCoef) ;

    CouleurPhy res = (this->m_coul*(1.0f-noiseCoef));
    res += (this->m_coul2*(noiseCoef));

    Le probleme c'est qu'en appliquant ce que je trouve sur le web afin de realiser une texture procédurale de marbre je n'obtiens rien du tout (p est le point d'intersection).
    Une petite image pour voir.

    Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Tu peux t'inspirer de mon vieil article, si tu ne sais plus trop où tu en es :

    Bruit de Perlin et raytracer

    Ceci dit tu as peut-etre un problème d'échelle (objet petit par rapport aux variations de la texture).

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Justement je me suis inspiré de ton site qui est d'ailleur très bien fait. La fonction que j'utilise est d'ailleurs la tienne.

    Pour le probleme d'echelle que veux tu dire et comment le résoudre ?
    Dans mon raytracer l'unité est le metre y aurait il une influence?

    Merci

  4. #4
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Ta sphère a une certaine taille S.
    Ta texture de marbre à une autre taille s.

    Si S est très petit devant s, alors les variations sur la sphère ne seront peut-être pas visibles.

    L'idéal c'est donc de mettre la texture à l'échelle en multipliant les coordonnées de ta texture par une constante.

    Exemple S = 1, s = 100.
    Il faudrait donc une texture dont les détails sont au moins cent fois plus petits. Tu peux le faire en prenant les coordonnées que tu fournis à ta texture et en les multipliant par 100.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Je viens de rajouter la multiplication par 100. Maintenant c'est beaucoup mieux. Mais il reste un problème je ne comprend pas pourquoi les nervure du marbre sont régulières.

    Pourquoi ne sont elles pas aussi large que sur ton site?
    Y'a t'il quelquechose que je n'ai pas saisi ?
    Images attachées Images attachées  

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Je viens de faire un rendu avec une source surfacique et une texture appliquée à un plan ainsi qu'a la sphère.

    Ne trouves tu pas les bandes trop régulières ?
    Images attachées Images attachées  

  7. #7
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    La formule est périodique à cause du sinus, c'est ce qui lui donne son aspect "marbré".

    Ceci dit toutes ces formules sont des points de départs, pas la fin de l'histoire. Donc à toi de les modifier à ta guise pour avoir l'effet que tu veux.

    Dans la vraie vie, le programmer art est remplacé par le travail d'un artiste, qui va peindre les objets ou triturer les textures procédurales pour créer des défauts, de la saleté, de la vraisemblance. Ce n'est pas abordé directement dans les tutoriaux mais c'est ce qui sous-tend tout ce travail de rendu.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Mon problème est résolu et je te remercie de ton aide précieuse. Je vais maintenant attaquer le bump mapping. Une dernière image pour la route.


    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer un bruit de Perlin
    Par Hippocrène dans le forum Débuter
    Réponses: 7
    Dernier message: 26/05/2015, 14h38
  2. Introduction au bruit de Perlin
    Par Zenol dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 16/09/2013, 21h03
  3. [TP] Besoin de couleurs pour raytracing
    Par Rniamo dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 07/04/2005, 18h06
  4. [Son] Faire des bruits avec une application java
    Par mammistegon dans le forum Multimédia
    Réponses: 6
    Dernier message: 22/01/2005, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo