DreamProjector

DreamProjector - Programmation

Marsh Posté le 12-07-2002 à 16:37:40    

Enfin, voici la première BETA de mon moteur 3D: DreamProjector. Il utilise Direct3D et les pixel shaders, donc une bonne carte graphique est nécessaire si vous ne voulez pas tourner avec le rasterizer de référence :D
 
Vous pouvez allumer et éteindre les ombres en appuyant sur S.
 
La scène est assez simple et j'ai placé trois lumières ponctuelles (elles ne sont pas représentées).
 
J'ai aussi écris un plugin 3D Studio MAX qui permet d'exporter des scènes dans mon moteur.
 
Pour l'instant seules les scènes statiques sont supportées bien que les ombres soient faites en temp réel.
 
http://membres.lycos.fr/final6/Dre [...] BETA_1.zip
 
Voilà voilà, j'espère que ça marchera chez vous!
 
Edit: j'ai mis à jour l'archive zip, j'ai rajouté un test durant l'initialisation de Direct3D et j'ai rajouté un fichier nécessaire que j'avais oublié.
 
Edit: j'ai mis à jour l'archive, désormais la caméra tourne correctement.


Message édité par Alload le 17-07-2002 à 11:25:28
Reply

Marsh Posté le 12-07-2002 à 16:37:40   

Reply

Marsh Posté le 13-07-2002 à 11:52:00    

Ca intéresse personne alors?

Reply

Marsh Posté le 13-07-2002 à 12:58:41    

ben chez moi ca marche pas :/
il se lance, change la reso ou fait semblant et retour windows


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 14-07-2002 à 10:45:12    

J'ai corrigé quelques trucs dans l'archive, est-ce que chez ceux chez qui ça ne marchait pas pourraient retélécharger l'archive et réessayer?
 
Merci :)

Reply

Marsh Posté le 14-07-2002 à 11:03:54    

a ca marche comme ca :)
ouai c'est bien


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Marsh Posté le 14-07-2002 à 11:30:11    

Voilà un petit screenshot:
 
http://membres.lycos.fr/final6/dp0.jpg

Reply

Marsh Posté le 14-07-2002 à 13:18:35    

g testé.
g pas les pixels shader donc je me tappe le rasterizer :(
J'ai à peu près 1 images toutes les 3 secondes, mais c'est surement normal vu ma carte graphique (ATI rage fury)
voila

Reply

Marsh Posté le 14-07-2002 à 14:05:18    

kjus a écrit a écrit :

g testé.
g pas les pixels shader donc je me tappe le rasterizer :(
J'ai à peu près 1 images toutes les 3 secondes, mais c'est surement normal vu ma carte graphique (ATI rage fury)
voila




 
Euh, pareil, mais j'ai jamais rien eu du tout moi... (Kyro 2)
 
C'est de la balle, le premier moteur 3D pour aveugles  :D


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-07-2002 à 14:10:35    

Zion a écrit a écrit :

 
 
Euh, pareil, mais j'ai jamais rien eu du tout moi... (Kyro 2)
 
C'est de la balle, le premier moteur 3D pour aveugles  :D  



Bizarre, vu que le reference rasterize marche avec le CPU ça devrait être pareil chez tout le monde...

Reply

Marsh Posté le 14-07-2002 à 14:12:20    

c joli le noir ... tout noir ... rien que du noir ...

Reply

Marsh Posté le 14-07-2002 à 14:12:20   

Reply

Marsh Posté le 14-07-2002 à 16:11:05    

HappyHarry a écrit a écrit :

c joli le noir ... tout noir ... rien que du noir ...




 
Ouai, a mon avis je peux facilement monter à 2-300fps tout en noir comme ca  :D  
 
Et bon, j'ai qd même un athlon 1.4ghz, donc même en soft doit y avoir moyen de s'en tirer à plus d'une image par heure  :ange:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-07-2002 à 16:21:42    

Chez moi ça marche mais ça donne pas aussi bien que le screenshot :/
(GeForce 4 ti 4200)
Puis au début la caméra est tout contre les objets, alors ça déconne pas mal, faut reculer un bout de temps (flèche vers le bas)
c'est peut-être ça le prob de ceux qui ont pas d'image ?
enfin vu le dossier "Cg" ça ne m'étonnerais pas que ça ne marche qu'avec les cartes nVidia (puisque Cg c'est un truc propre à nVidia...)


Message édité par antp le 14-07-2002 à 16:22:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-07-2002 à 16:47:48    

je corrige, y a pas que du noir !
y a le curseur de la souris aussi  :heink:

Reply

Marsh Posté le 14-07-2002 à 19:35:08    

Qu'est-ce que c'est comme bordel pour qua ça marche sur toutes les cartes graphiques... Je plains les développeurs professionels :)

Reply

Marsh Posté le 14-07-2002 à 19:36:21    

Si t'as utilisé Cg (de nVidia) c'est normal que ça ne marche que sur les nVidia :p


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-07-2002 à 19:38:54    

antp a écrit a écrit :

Si t'as utilisé Cg (de nVidia) c'est normal que ça ne marche que sur les nVidia :p



Nan il compile le code en shader normaux, donc ça devrait marcher sur toutes les cartes graphiques. De plus le rasterizer de référence devrait marcher impec vu que toutes les instructions se font par le CPU.

Reply

Marsh Posté le 14-07-2002 à 20:11:01    

chez moi, ça clignote trop, c'est horrible
 
GF4 Ti4200


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 14-07-2002 à 20:23:15    

Bah ne fait je crois ke le probleme viens des ombre et de l'histoire du
 
"Vous pouvez allumer et éteindre les ombres en appuyant sur S. "
 
Je ne sais kel est le paramettre par defaut qd tu lance lanim mais des ke j'appuie sur S tout se fiche et la ca devient bon.
mais je peux pas te dire si c san,s ombre au avec ombre  :D  
Car qd je lance lanim ca clignote et c n'importe koi mais de japuis sur S c ok c tt bo et ca roule bien ;).
 
Sinon c'est vrai que c'est pas trop mal  [:powa]


---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le 14-07-2002 à 20:27:30    

phive > tu pourrais essayer de comparer avec le screenshot que j'ai posté pour me dire si c'est avec ou sans les ombres quand ça marche chez toi?

Reply

Marsh Posté le 14-07-2002 à 20:48:38    

Un autre petit screenshot d'une création de mrmarcadet:
 
http://membres.lycos.fr/final6/mclaren.jpg
 
Edit: il y avait quand même un peu plus de 100k triangles pour la voiture. Alors ne me blamer pas pour le framerate :D


Message édité par Alload le 14-07-2002 à 20:49:27
Reply

Marsh Posté le 14-07-2002 à 21:08:10    

Harkonnen a écrit a écrit :

chez moi, ça clignote trop, c'est horrible
 
GF4 Ti4200




 
C'est normal, c'est parce que tu es trop près des objets, faut zoomer en arrière (flèche vers le bas pendant un petit temps il me semble, enfin j'ai aussi bougé la souris donc je sais pas trop comment j'ai eu une vue normale)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-07-2002 à 21:36:04    

tiens antp, tu tombes bien ! :hello:
 
as tu la même chose que moi, à savoir l'onglet "commandes de superposition" inaccessible sur le panneau de config de ton driver nVidia ? chez moi il est grisé, je sais pas pourquoi !
 
j'utilise les drivers 30.30


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 14-07-2002 à 21:43:11    

chez moi c'est activé cet onglet... par contre je crois que j'ai des plus vieux drivers (y a un 29 dans le n° de version), je les avais downloadés y a deux ou trois semaines je pense, sur le site de nvidia, comme étant les derniers drivers.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-07-2002 à 22:53:42    

Pas mal le S, plus rapide que le ALT+F4 pour quitter...
 
Donc, je résume, c'est une fenêtre noire que tu quittes en appuyant sur S  :jap:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-07-2002 à 22:56:16    

Zion a écrit a écrit :

Pas mal le S, plus rapide que le ALT+F4 pour quitter...
 
Donc, je résume, c'est une fenêtre noire que tu quittes en appuyant sur S  :jap:  




 
pareil .. genial le rasterizer par defaut ...

Reply

Marsh Posté le 15-07-2002 à 00:05:02    

moi aussi S ca quitte direct..
c programmé en koi ? (c++ je suppose?=)

Reply

Marsh Posté le 15-07-2002 à 08:21:30    

Alload a écrit a écrit :

phive > tu pourrais essayer de comparer avec le screenshot que j'ai posté pour me dire si c'est avec ou sans les ombres quand ça marche chez toi?




 
Chez moi il me semble que c'est sans les ombres...
Donc au depart de l'anim il y a les ombres et c'est illisible il y a des bug d'affichage(genre tout les objet sont decomposer en triangle) et apres lorsque j'appuis sur S les ombres partent  et la c nikel !
 
HA oui en fait tu pourrais faire comencer ton anim la vue bien centré sur les objet se serait mieux je pense :)
 
Sinon faudra que je te fasse un screen.


---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le 15-07-2002 à 09:29:09    

Oui c'est programmé en C++, ouis la position de la caméra est centrée quand vous lancé le programme mais même avant que la première image s'affiche il ne faut pas bouger la souris car les mouvements sont déjà pris en compte (donc une fois le programme lancé essayer de ne rien faire jusqu'à voir une première image), et enfin c'est bizarre pour les ombres car la variable qui détérmine si elles sont actives ou pas est mis sur false lors de l'initialisation de DreamProjector.

Reply

Marsh Posté le 15-07-2002 à 13:36:41    

http://membres.lycos.fr/final6/dp1.jpg

Reply

Marsh Posté le 15-07-2002 à 15:52:06    

Alload a écrit a écrit :

Bizarre, vu que le reference rasterize marche avec le CPU ça devrait être pareil chez tout le monde...




 
tu as oublié que le refrast n'est installé que chez ceux qui  
ont le SDK (c'est un outil de dév, je vois mal un jeu tourner dessus..)
 
LeGreg

Reply

Marsh Posté le 15-07-2002 à 19:36:10    

Ah d'accord. Je pensais que le refrast était installé chez tout le monde, bon ben voilà l'explication.
 
Merci LeGreg :)

Reply

Marsh Posté le 15-07-2002 à 20:09:49    

Phive a écrit a écrit :

 
 
 
Donc au depart de l'anim il y a les ombres et c'est illisible il y a des bug d'affichage(genre tout les objet sont decomposer en triangle) et apres lorsque j'appuis sur S les ombres partent  et la c nikel !




 
exactement pareil pour moi


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-07-2002 à 01:42:18    

628: Direct3D8: (INFO) :Pentium Pro CPU features (fcomi, cmov) detected
628: Direct3D8: (INFO) :dwCPUFamily = 6, dwCPUFeatures = 7
628: Direct3D8: (INFO) :szCPUString = AuthenticAMD
628: Direct3D8: (INFO) :Direct3D8 Debug Runtime selected.
628: Direct3D8: (ERROR) :HW device not available.  GetAdapterCaps fails.
628: Direct3D8: (INFO) :======================= Reference SWVP device selected
628: Direct3D8: (INFO) :HalDevice Driver Style 7
628: Direct3D8: (INFO) :Using X3D PSGP
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 7
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\tnl\vvm.cpp Line: 731
628: Direct3D8: (ERROR) :Texture coordinates are not continuous
628: Direct3D8: (ERROR) :Error in shader code creation
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\fe\vshader.cpp Line: 212
628: Direct3D8: (ERROR) :Failed to create vertex shader code
628: Direct3D8: (ERROR) :CreateVertexShader failed.
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\tnl\vvm.cpp Line: 731
628: Direct3D8: (ERROR) :Texture coordinates are not continuous
628: Direct3D8: (ERROR) :Error in shader code creation
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\fe\vshader.cpp Line: 212
628: Direct3D8: (ERROR) :Failed to create vertex shader code
628: Direct3D8: (ERROR) :CreateVertexShader failed.
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 19
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 171
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 168
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 23
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 54
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\fe\d3dbase.cpp Line: 2862
628: Direct3D8: (ERROR) :Invalid vertex shader handle
628: Direct3D8: (ERROR) :SetVertexShader failed.
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\fe\vshader.cpp Line: 598
628: Direct3D8: (ERROR) :Invalid vertex shader handle (0x0)
628: Direct3D8: (ERROR) :DrawIndexedPrimitive failed.
628: Direct3D8: (ERROR) :*** Exception in d:\builds\nt32_chk\multimedia\directx\dxg\d3d8\fe\d3dbase.cpp Line: 2862
628: Direct3D8: (ERROR) :Invalid vertex shader handle
628: Direct3D8: (ERROR) :SetVertexShader failed.
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 19
160: Direct3D8: (WARN) :Ignoring redundant SetRenderState - 56
[...ca continue]
628: Direct3D8: (INFO) :MemFini!
628: Direct3D8: (ERROR) :Memory still allocated!  Alloc count = 350
628: Direct3D8: (ERROR) :Current Process (pid) = 00000274
628: Direct3D8: (ERROR) :Memory Address: 008b3eec lAllocID=1 dwSize=00003524, ReturnAddr=00c6e226 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 008b8974 lAllocID=8 dwSize=0000114c, ReturnAddr=00c5f034 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 008b9ae4 lAllocID=9 dwSize=00000a40, ReturnAddr=00c6231b (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 008bae44 lAllocID=19 dwSize=00001074, ReturnAddr=00c5f034 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 008b2644 lAllocID=21 dwSize=000000a0, ReturnAddr=00c6aa44 (pid=00000274)
[...ca continue]
628: Direct3D8: (ERROR) :Memory Address: 00fdb6c4 lAllocID=124 dwSize=0000003c, ReturnAddr=00c6e226 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 00fdca74 lAllocID=3998 dwSize=000000e4, ReturnAddr=00c6e226 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 010151f4 lAllocID=5412 dwSize=000000e4, ReturnAddr=00c6e226 (pid=00000274)
628: Direct3D8: (ERROR) :Memory Address: 01952eb4 lAllocID=5767 dwSize=00000100, ReturnAddr=00c6e226 (pid=00000274)
[...ca continue]
628: Direct3D8: (ERROR) :Memory Address: 00fc953c lAllocID=6524 dwSize=00000198, ReturnAddr=00c6eb1d (pid=00000274)
628: Direct3D8: (ERROR) :Total Memory Unfreed From Current Process = 387351 bytes
628: Direct3D8: (INFO) :MemFini!

Reply

Marsh Posté le 16-07-2002 à 01:59:21    

http://ceremon.massal.net/beurk.gif

Reply

Marsh Posté le 16-07-2002 à 02:08:03    

688: Direct3D8: (WARN) :Static vertex buffer locked more than once per frame. Could have severe performance penalty.
688: Direct3D8: (WARN) :Static index buffer locked more than once per frame. Could have severe performance penalty.


 
http://ceremon.massal.net/mieux.gif
 
y'a un truc marrant dans tes inputs
quand je fais des ronds sur l'ecran avec ma souris  
je tourne sur moi-meme... c'est assez
deroutant.
 
Est-ce que c'est voulu?
 
LeGreg


Message édité par LeGreg le 16-07-2002 à 02:10:33
Reply

Marsh Posté le 16-07-2002 à 08:10:27    

J'ia exatement la meme chose que legreg (cf ces 2 screens)


---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le 16-07-2002 à 10:36:40    

C'est bizarre toutes les erreurs que tu as dans l'ouput legreg, moi je n'ai que les "Ignoring redundant SetRenderState" et des "Failed to create driver indexbuffer" quand j'utilise la fonction DrawIndexedPrimitive().
 
Bon pour les SetRenderState je comprends, mais pour les index buffers je comprends pas trop parce que ça s'affiche très bien chez moi et comme il n'y a pas plus de précision avec les messages de DirectX...
 
Pour la caméra, ben c'est pas trop vouli l'effet de rouli :D Je sais pas pourquoi j'ai ça, mais je le corrigerais plus tard quand tout le reste marchera correctement :)

Reply

Marsh Posté le 16-07-2002 à 11:21:54    

les erreurs de compilation du vs, c'est peut-etre
parce que tu fais quelque chose qui n'est
pas supporté par la norme (refrast) mais qui est toléré par le hardware (nVidia).
(j'ai aussi une vieille version du DXSDK parce que j'ai la flemme
de telecharger la nouvelle version avec mon modem, donc c'est peut-etre aussi lié a ca)
 
Les fuites de mémoires devraient etre corrigées
(ca a tendance a faire planter les machines ces choses la),
il doit te manquer des release() quelque part. (tu peux faire un "break on id" dans le panneau de config pour voir qui alloue cette memoire)
 
"Failed to create driver indexbuffer", est juste un warning sans consequence sur du matos style GeForce3. Seul les cartes ATI recentes peuvent creer l'index buffer sur la carte, je crois.
 
Par contre, le warning  comme quoi tu lockes un buffer static est serieux, si tu veux avoir de la geometrie dynamique utilise le flag dynamic.
 
Pour les inputs, tu devrais faire un controle a la quake:
mouvements de la souris horizontaux controlent la rotation autour de Y, les mouvements verticaux controlent la rotation autour de X et tu laisses tomber la rotation autour de Z.
 
Pour le garbage sur le premier ecran, je n'ai pas d'idee..
 
LeGreg

Reply

Marsh Posté le 16-07-2002 à 19:18:26    

Super les shaders qui sont supportés par nVidia et pas par la norme DirectX... J'ai localisé les deux shaders qui marchent pas avec le refrast, pourtant je n'ai pas d'erreur de compilation dans le compilateur Cg de nVidia. J'essaierai de corriger ça.

Reply

Marsh Posté le 17-07-2002 à 11:27:47    

Bon, j'ai mis à jour le code de la caméra. Maintenant elle est normale :D
 
Voilà, sinon j'ai rien touché au reste donc ça devrait encore déconé chez plein de monde :D
 
Je pars en vacances pour un mois cet après-midi, alors see ya tout le monde et have fun!

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed