Page 13 sur 62

Publié : ven. 03/nov./2006 13:32
par Flype
et si ya besoin d'aide pour savoir comment parser du xml avec PB4,
ya qu'a me demander :wink:

Publié : ven. 03/nov./2006 18:33
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:

Publié : ven. 03/nov./2006 19:12
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

Publié : ven. 03/nov./2006 19:58
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...

Publié : ven. 03/nov./2006 20:08
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

Publié : ven. 03/nov./2006 20:22
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] )

Publié : ven. 03/nov./2006 20:29
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:

Publié : ven. 03/nov./2006 21:09
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)

Publié : sam. 04/nov./2006 14:22
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.

Publié : sam. 04/nov./2006 17:00
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.

Publié : sam. 04/nov./2006 17:24
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...

Publié : sam. 04/nov./2006 17:28
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

Publié : sam. 04/nov./2006 18:26
par tmyke
Sous Ogre, tu faisais comment ?

Publié : sam. 04/nov./2006 18:39
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.

Publié : sam. 04/nov./2006 20:49
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: