Dreamotion3D

Généralités sur la programmation 3D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

et si ya besoin d'aide pour savoir comment parser du xml avec PB4,
ya qu'a me demander :wink:
Image
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Merci pour les info sur le format Ogre. Dès que j'ai terminé l'import B3D, je m'y colle...
(Flype, je garde ta propo et je te recontacte dès que je mis met...)


@Comtois Pour ce qui de la scene 'SacredPlace', en fait il s'agissait d'un gros bug dans
la partie import B3D, que j'ai du refondre en partie (2 heures de perdu). Les choses sont rentré
dans l'ordre, et plus de soucis. Effectivement c'est asser sombre, l'option FULLBRIGHT n'étant
pas activé dans l'export fait par DeleD. Tu peux arriverer un resultat similaire en écrivant ceci
après avoir chargé le mesh:

Code : Tout sélectionner

DM_EntityAddTextureStage(mesh, 0, #D3DTSS_COLOROP,   #D3DTOP_MODULATE2X );
DM_EntityAddTextureStage(mesh, 1, #D3DTSS_COLOROP,   #D3DTOP_MODULATE2X );
DM_EntityRestoreTextureStage(mesh, 1, #D3DTSS_COLOROP,   #D3DTOP_MODULATE );
DM_EntityRestoreTextureStage(mesh, 0, #D3DTSS_COLOROP,   #D3DTOP_MODULATE );
num.l = DM_EntityBrush(mesh)
For i=0 To num
 brush = DM_GetBrush(mesh, i)
 DM_BrushAmbient(brush, 100,100,100,100)
Next
module a jour du meme coup...

@ChaOs ... du coups je n'ai pas encore eu le temps de me pencher sur ton prob, mais
je m'y colle ce soir et demain (a moins que tu ai déjà trouvé)...

:twisted:
Force et sagesse...
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ça ne fonctionne toujours pas chez moi :?

J'ai fait un zip pour que tu testes de ton côté, j'ai peut-être fait une boulette ?

http://perso.wanadoo.fr/comtois/sources/SacredPlace.zip
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

S itu veux parler de la zone verte (effet de profondeur), c'est en fait l'instruction DM_CameraProjRatio qu'il faut utiliser, du genre

Code : Tout sélectionner

DM_CameraProjRatio(*camera, 800,600, 15000)
comme cela tu sera tranquille

Pour la luminosité, c'est très très clair chez moi, n'utilise donc pas la routine de
FULLBRIGHT, car dans le media que tu fourni, il n'y a pas de lightmapping...
Force et sagesse...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

moi j'attends tranquilement la Doc en Français pour voir si je peux me servir
de ce moteur :D

je pense a une version 3D de mon pureGolo :D
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

tmyke a écrit :S itu veux parler de la zone verte (effet de profondeur), c'est en fait l'instruction DM_CameraProjRatio qu'il faut utiliser, du genre

Code : Tout sélectionner

DM_CameraProjRatio(*camera, 800,600, 15000)
C'est parfait maintenant :)

Il va falloir que je regarde dans la doc quelle est la différence avec CameraRAnge() .

J'ai vu ton début de doc sous le format chm, je préfère nettement cette doc, vivement qu'elle soit terminée, c'est bien plus pratique, en couleur, avec des exemples ,que demander de plus ?

Petite question, que signifie le ./ qu'on peut voir après un argument ?
DM_BrushTexture(brush./, texture./ [, index./=0] )
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Petite question, que signifie le ./ qu'on peut voir après un argument ?
en fait c'est .l, pour les entiers. Le fait que cela soit en italique et grisé
déforme un peu les lettres... :)

Pour suivre l'évolution de la doc en direct live en ligne, voici le lien:

http://www.dreamotion3d.com/PureBasic/d ... tion3D.htm

J'y vais doucement, entre deux serie de codage, mais j'avance... :wink:
Force et sagesse...
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

J'ai un petite question à propose de la transparence...
Depuis hier soir je me creuse la tête dessus en fouillant dans l'aide du SDK de DX9 (une mine d'or sans lumière... comme celle de Win32 :roll: ) mais impossible de trouver la "bonne combinaison" (des foi j'ai l'impression de jouer à MasterMind, c'est un peut au pif 8) ) pour DM_BrushAlpha.
Remarque.. je suis peut etre pas sur la bonne voie!

Je m'explique mieu... J'ai des textures au format PNG avec la couche alpha, et j'aimerais avoir cette transparence sur mes mesh, j'y suis presque arriver, je dis presque car la partie transparente recouvre ou efface (je sais pas comment dir) d'autre poly de mon mesh.
Je veux pas une simple couleur de transparence (comme par exemple tout ce qui serait noir ne serait pas afficher) mais bien un dégradé d'opacité.

Bref, je cherche, je cherche mais je trouve pas...

EDIT :
Voila 3 captures (les graphisme sont pris du jeux DreamFall et je ne les distribuerais en aucun cas!)

Image

Image

Image

Ma config au cas ou :
OS : Windows XP Pro SP2
Carte Mere : Asus A8V
Processeur : AMD Athlon 64 3000+ (cadencé à 2.36GHz, ça bouge avec le cool'n'quiet, mais j'avais ça à peut pret quand je testais)
Memoire : 2Go Corsair XMS PC 3200
Carte Graphique : Asus EaX 850 XT
HDD : Maxtor Ultra Hard Drive L14P200
le reste... je pense pas que ça puisse aider 8)
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Salut. Ha les effets de transparence...
L'utilisation des fonction alpha pose souvent un problème. Les Entity
qui se trouvent derrière et qui sont rendu après les brush alpha, sont masquées.
D'ou les effets indésirables que tu as. Tu as plusieurs solutions pour remédier
a cela:
Premère soluce, tu passes toutes les entity qui sont en alpha a la fin du moteur
de rendu, donc soit tu les importent en dernier, soit tu emploie la fonctions
'DM_EntityLast(entity)'. Cette solution a ces limites, car elle n'a aucun effet sur
des Entity qui possèdent plusieurs Brush avec Alpha, comme les plantes.

Deuxième soluce, et dans ton cas, vue que tes textures possèdent un canal alpha,
essais pluto ceci (soit sur les ENtity entière ou uniquement sur une brush
donnée) :

Code : Tout sélectionner

DM_EntityAddRender(mesh, #D3DRS_ALPHATESTENABLE,#True);
DM_EntityAddRender(mesh, #D3DRS_ALPHAFUNC, #D3DCMP_GREATEREQUAL);
DM_EntityAddRender(mesh, #D3DRS_ALPHAREF, $00000090);				
DM_EntityRestoreRender(mesh, #D3DRS_ALPHATESTENABLE, #False);

 ou

DM_BrushAddRender(Brush, #D3DRS_ALPHATESTENABLE,#True);
DM_BrushAddRender(Brush, #D3DRS_ALPHAFUNC, #D3DCMP_GREATEREQUAL);
DM_BrushAddRender(Brush, #D3DRS_ALPHAREF, $00000090);				
DM_BrushRestoreRender(Brush, #D3DRS_ALPHATESTENABLE, #False);

Troisième soluce, pour tout ce qui est végétation, arbre, etc... il plus souhaitable
de passer par la fonction de Mask. C'est ce qui est beaucoup employé sous
Blitz3D entre autre, elle élimine la composante noir des textures, donc
pas besoin de canal Alpha, plus de soucis de vue derrière les elements.
Le seul prob, c'est que cet effet est vieux comme le monde, et je n'arrive
pas à le reproduire avec DX9c, un comble.
Force et sagesse...
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

j'ai pas vraiment eu le temp de me pencher sur le problem mais en creant une fenetre fille , integrer le screen dedans et en gardant les gadget sur la premiere fenetre je pourrait peut etre regler le problem de chevauchement.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

C'est ce que je pensait aussi. En fait ne sachant pas comment allait
réagir les Gadgets tout en y collant du DM3D, mon idée était de faire un peut
comme le 'visual Designer' de PB, avec une fenetre graphique et a coté une fenetre
avec tous les menu et autre Gadget...
Force et sagesse...
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Premiere solution : non-applicable car enfait c'est carrement un mesh complet, tout est dedans...

Deuxieme solution : c'est presque ça, la transparence y est, mais pas le dégradé d'opacité (canal alpha) et puis j'ai l'impression que ça assombri la texture... Mais plus de problème d'effacement derriere, c'est sur cette voie! Merci

Troisieme solution : non-applicable car justement j'ai des degradé d'opacité sur ma végétation :roll: :D
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Sous Ogre, tu faisais comment ?
Force et sagesse...
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

J'utilisais MaterialBlendingMode(#Matiere, #PB_Material_AlphaBlend)
#PB_Material_AlphaBlend: Utilise le canal alpha de la texture (TGA ou PNG) pour le mixage avec la scène.
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Message par tmyke »

Voici une amélioration du code précédent:

dans la valeur $66ffffff, il suffit de faire varier les poids les plus fort
(ici '66') pour faire une similie variation de l'opacité. J'ai employé des
fonction sur les entity, mais tu fais pareil sur les Brush avec 'DM_Brush...'

Code : Tout sélectionner

DM_EntityAddRender(mesh, #D3DRS_ALPHATESTENABLE,#True)
DM_EntityAddRender(mesh, #D3DRS_ALPHAFUNC, #D3DCMP_GREATEREQUAL)
DM_EntityAddRender(mesh, #D3DRS_ALPHAREF, $00000090)			
DM_EntityAddTextureStage(mesh, 0, #D3DTSS_ALPHAOP, #D3DTOP_MODULATE2X);#D3DTOP_MODULATE)
DM_EntityAddTextureStage(mesh, 0, #D3DTSS_ALPHAARG1, #D3DTA_TEXTURE);#D3DTA_DIFFUSE)
DM_EntityAddTextureStage(mesh, 0, #D3DTSS_ALPHAARG2, #D3DTA_TFACTOR)
DM_EntityAddRender(mesh, #D3DRS_TEXTUREFACTOR, $66ffffff)

DM_EntityRestoreRender(mesh, #D3DRS_ALPHATESTENABLE, #False)
DM_EntityRestoreRender(mesh, #D3DRS_TEXTUREFACTOR, $ffffffff)
Si tu me dis que cela marche pas trop mal, je l'intègre dans les effets préprogrammés.
:wink:
Force et sagesse...
Répondre