Librairie P3D_Particules3D
Librairie P3D_Particules3D
Voilà j'ai commencé un système de particules en 3D avec des objets 3D (cubes, sphere,surfaces...).
Possibilité de créer plusieurs émetteur différents, 3 mesh et 9 textures de flares sont fournis pour faire fonctionner les examples. Ces examples se trouvent dans \purebasic\examples
Le positionnement n'est possible pour l'instant que sur les axes x et y.
Quelques commandes ne sont pas encore docummentés dans l'aide.
C'est pas encore terminé mais on peut quand même voir ce que ça donne.
LibInstall_P3D_Particules3D.exe
P3D_Particules3D.chm
Possibilité de créer plusieurs émetteur différents, 3 mesh et 9 textures de flares sont fournis pour faire fonctionner les examples. Ces examples se trouvent dans \purebasic\examples
Le positionnement n'est possible pour l'instant que sur les axes x et y.
Quelques commandes ne sont pas encore docummentés dans l'aide.
C'est pas encore terminé mais on peut quand même voir ce que ça donne.
LibInstall_P3D_Particules3D.exe
P3D_Particules3D.chm
oui , en lisant la doc et en regardant les codes j'ai vu que c'était déjà le cas ,alors j'ai retiré ma question 
tu as recalculé les normales ?
les datas que je mettais dans mes codes sont issus des primitives de darkbasic . J'ai récemment recalculé les normales de tous les meshs car ogre utilise un trièdre direct alors que darkbasic est en trièdre indirect .
Et l'éclairage ne rendait pas correctement ( surtout pour la sphere et le cylindre, et le vaisseau n'avait pas de normales), si ça t'intéresse , je peux te ressortir les nouveaux datas.
Bon si j'installe un modeleur 3D , à l'occasion je me ferai une sphere un peu plus ronde .

tu as recalculé les normales ?
les datas que je mettais dans mes codes sont issus des primitives de darkbasic . J'ai récemment recalculé les normales de tous les meshs car ogre utilise un trièdre direct alors que darkbasic est en trièdre indirect .
Et l'éclairage ne rendait pas correctement ( surtout pour la sphere et le cylindre, et le vaisseau n'avait pas de normales), si ça t'intéresse , je peux te ressortir les nouveaux datas.
Bon si j'installe un modeleur 3D , à l'occasion je me ferai une sphere un peu plus ronde .
Oui merci, je veux bien les nouvelles datas, effectivement j'ai vu que tu avais mis à jour ta librairie M3D. J'avais chopé les datas sur un vieux post...
Par contre j'ai une petite question, je pense que tu pourras répondre facilement.
Pour les surfaces planes (ex. exemple 5) il faudrait qu'elles soit toujours face à la camera, comment faire ?
Par contre j'ai une petite question, je pense que tu pourras répondre facilement.
Pour les surfaces planes (ex. exemple 5) il faudrait qu'elles soit toujours face à la camera, comment faire ?
mauvaise nouvelle , je m'étais fourvoyé dans mes calculs de normales , je pensais qu'ils amélioraient les choses , du moins visuellement sur d'anciens codes c'est ce que j'avais constaté.
Je pense que l'amélioration est surtout liée au fait que désormais je peux changer la norme du vecteur , et donc les effets de la lumière s'en retrouvent multipliés, j'espère ne pas me planter en disant ça
Bref , pour te filer les datas , il a fallu que je fasse un petit code qui enregistre les valeurs calculées dans un fichier texte , et j'ai ainsi pu comparer. finalement les signes étaient les mêmes , mais j'avais quelques écarts sur les valeurs , voir les exemples pour le cube ci dessous . Alors j'ai changé ma méthode de calcul et....
Bonne nouvelle J'ai pris le mesh d'un vaisseau , vertex et triangles , et j'ai calculé les normales , et oh joie , oh bonheur j'obtiens bien les mêmes valeurs de normales que dans le fichier du vaisseau
Ouf enfin !!!
Alors j'ai refait les calculs des primitives et finalement les écarts sont assez faibles , ça n'a pas un grand intérêt puisque je reviens presque au point de départ , mais tout de même , maintenant c'est plus clair pour moi ,et surtout , je sais calculer correctement les normales de n'importe quel mesh , il était temps
je vais pouvoir reprendre mes calculs pour la matrice , il y a sûrement des petites erreurs à corriger ? à voir .
Ici quelques Normales du cube
Cube avant - ça doit être ce que tu as ?
Cube avec mes calculs de cette semaine
Cube avec mes calculs de ce matin , je n'ai pas encore testé cette version 
Je pense que l'amélioration est surtout liée au fait que désormais je peux changer la norme du vecteur , et donc les effets de la lumière s'en retrouvent multipliés, j'espère ne pas me planter en disant ça

Bref , pour te filer les datas , il a fallu que je fasse un petit code qui enregistre les valeurs calculées dans un fichier texte , et j'ai ainsi pu comparer. finalement les signes étaient les mêmes , mais j'avais quelques écarts sur les valeurs , voir les exemples pour le cube ci dessous . Alors j'ai changé ma méthode de calcul et....
Bonne nouvelle J'ai pris le mesh d'un vaisseau , vertex et triangles , et j'ai calculé les normales , et oh joie , oh bonheur j'obtiens bien les mêmes valeurs de normales que dans le fichier du vaisseau

Ouf enfin !!!
Alors j'ai refait les calculs des primitives et finalement les écarts sont assez faibles , ça n'a pas un grand intérêt puisque je reviens presque au point de départ , mais tout de même , maintenant c'est plus clair pour moi ,et surtout , je sais calculer correctement les normales de n'importe quel mesh , il était temps

je vais pouvoir reprendre mes calculs pour la matrice , il y a sûrement des petites erreurs à corriger ? à voir .
Ici quelques Normales du cube
Cube avant - ça doit être ce que tu as ?
Code : Tout sélectionner
0 -1.000000 0.000000 -1.000000
1 -1.000000 0.000000 1.000000
2 1.000000 0.000000 1.000000
3 1.000000 0.000000 -1.000000
4 -1.000000 0.000000 -1.000000
5 -1.000000 0.000000 1.000000
6 1.000000 0.000000 1.000000
7 1.000000 0.000000 -1.000000
8 0.000000 -1.000000 0.000000
9 0.000000 -1.000000 0.000000
10 0.000000 -1.000000 0.000000
11 0.000000 -1.000000 0.000000
12 0.000000 1.000000 0.000000
13 0.000000 1.000000 0.000000
14 0.000000 1.000000 0.000000
15 0.000000 1.000000 0.000000
Code : Tout sélectionner
0 -0.333333 0.000000 -0.666667
1 -0.666667 0.000000 0.333333
2 0.333333 0.000000 0.666667
3 0.666667 0.000000 -0.333333
4 -0.666667 0.000000 -0.333333
5 -0.333333 0.000000 0.666667
6 0.666667 0.000000 0.333333
7 0.333333 0.000000 -0.666667
8 0.000000 -1.000000 0.000000
9 0.000000 -1.000000 0.000000
10 0.000000 -1.000000 0.000000
11 0.000000 -1.000000 0.000000
12 0.000000 1.000000 0.000000
13 0.000000 1.000000 0.000000
14 0.000000 1.000000 0.000000
15 0.000000 1.000000 0.000000

Code : Tout sélectionner
0 -0.447214 0.000000 -0.894427
1 -0.894427 0.000000 0.447214
2 0.447214 0.000000 0.894427
3 0.894427 0.000000 -0.447214
4 -0.894427 0.000000 -0.447214
5 -0.447214 0.000000 0.894427
6 0.894427 0.000000 0.447214
7 0.447214 0.000000 -0.894427
8 0.000000 -1.000000 0.000000
9 0.000000 -1.000000 0.000000
10 0.000000 -1.000000 0.000000
11 0.000000 -1.000000 0.000000
12 0.000000 1.000000 0.000000
13 0.000000 1.000000 0.000000
14 0.000000 1.000000 0.000000
15 0.000000 1.000000 0.000000