Dreamotion3D

Généralités sur la programmation 3D
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 »

Tu as tout à fait raison dans l'absolu. Au départ DM3D est exclusivement DX9, donc
nous n'avons pas vraiment créé une ossature qui soit destinée d'entré au multi-API.

C'est pour cela, qu'il nous faudra ré-écrire une partie du code quand nous attaquerons
cette phase. un peut dans le style de ce que tu donne plus haut...

Le plus dur pour nous sera de la faire sans que cela n'altère les performances du moteur

Code : Tout sélectionner

ClassDirectX9
{
FonctionDeRendu()
}

ClassDirectX10
{
FonctionDeRendu()
}

ClassOpenGL
{
FonctionDeRendu()
}

if Rendu == OpenGL
   OpenGL->FonctionDeRendu()
endif

if Rendu == DirectX9
  DirectX9->FonctionDeRendu()
endif
if Rendu == DirectX10
  DirectX10->FonctionDeRendu()
endif
:)
Force et sagesse...
Anonyme

Message par Anonyme »

Mon pseudo code n'est pas très correct , avec un template tu devrais pouvoir te passé des tests laborieux if OpenGL==1 etc...




Code : Tout sélectionner


class DX9Renderer
{
public:
void Render(){  cout << "Rendu DirectX 9 ! \n"; }
};

class DX10Renderer
{
public:
void Render(){  cout << "Rendu DirectX 10 ! \n"; }
};

class OGLRenderer
{
public:
void Render(){  cout << "Rendu OpenGL ! \n"; }
};

class SoftwareRenderer
{
public:
void Render(){  cout << "Rendu Software ! \n"; }
};

template <class API>
class DreamotionRoot
{
public:
API *MyApi;
};

Code : Tout sélectionner


// Tu choisi l'api
DreamotionRoot<DX9Renderer> *Root;
ou
DreamotionRoot<DX10Renderer> *Root;
ou
DreamotionRoot<OGLRenderer> *Root;
ou
DreamotionRoot<SoftwareRenderer> *Root;


// Tu l'utilises, peut importe l'api , tu appelles la fonction rendu de ton api via MyApi ;)
Root->MyApi->Render()

De toute façon , c'est pas à un vieux singe comme toi que je vais donner des leçons de code , mais c'est mon point de vue :D
je pense que de cette façon, les perfs ne jouerons pas de trop , voir pas du tout.
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 »

Il existe un très bon tuto que tu connais peut-etre déjà:

http://loulou.developpez.com/tutoriels/moteur3d/

Il y a certains points très interessants dans ce cour sur la conception d'un moteur 3D
dont notament une des approches possible pour le multi-API.
Cpl.Bator a écrit :je pense que de cette façon, les perfs ne jouerons pas de trop , voir pas du tout.
hmm, faudra etre vigilant et faire une opti a fond, car l'avantage de l'API unique, c'est que
tu peux exploiter à fond les spécificités d'une API, et donc bien optimiser le code dans le bon sens.
Par contre, gérer plusieurs API va rendre les choses plus tendu (mais j'aime les défis ;) )
Force et sagesse...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'est pas un peu moribon 3Dreamotion ?? par hasard ?

je dit ça parceque je suis pas sur que le site avance beaucoup ... :lol:
ni les nouvelles sur l'avancé du moteur ... hum ... :?
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 bien sympa de prendre des nouvelles Dobro ;)

Pour te répondre, prenons point par point:

Pour ce qui est du site, en fait nos avons pris la décison de laisser tomber
le E107 comme CMS, trop lourd à tout point de vue, et donc (surtout Seyhajin)
nous avons remplacé le E107 par un autre CMS. Le soucis, c'est comme souvent,
les bases de données n'étant pas compatibles, cela à remis à zero la liste
des membres (qui était de 700 membres il y a encore quelques semaines) à zero.
Idem pour le forum, ou on a pas pu transferer les quelques 2800 posts du
précédent forum sur l'actuel.
En résumé, on est repartis de zero, sur un site plus simple et plus sein...


Pour ce qui est du moteur, la version 4 est sortie il y a quelques temps déjà.
Pour l'instant, avec l'aide précieuse de Slide, nous débuggont la partie actuel
du moteur avant de nous lancer dans la suite (animation / shadows / DX10 ).
Je le rappel cette version qui est désormais openSource, dispo pour PB, BMax et
C/C++ à été déjà pas mal optimiser, et certains point important amélioré et
debuggués. Ce n'est certa pas impressionnant, mais c'est un passage obligé avant
d'essayer d'aller plus loin.


Enfin, comme je l'avais évoqué, meme si j'assure le debuggage et la maintenance
du moteur, je fais un petit break de deux mois (jusqu'a début mars). Cela fait
trois ans que je vis , je rève , je mange, je roule, je pisse ... DM3D. (et ce en
dehors de mon travail). Donc une petite pause devenait indispensable.


Et enfin, le moteur ne dreine pas les foules, et donc si il n'est pas pour l'instant
question d'arreter, il est fort probable que je passerais plus mes nuit dessus
dans l'avenir si les choses perdures, et si les quelques améliorations majeures
qui devraient arriver d'ici à cet été ne change pas cet état de fait. ;)
(et oui, la concurence est rude).

Voilà :)
Force et sagesse...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

COUP de GUEULE !!

put**** de Bord** de M**de pourquoi t'a toujour pas utilisé un Installateur pour ton moteur !!

la j'ai recupéré la derniere version, j'ai suivi a la lettre les info pour l'install

et me voila ENCORE avec des Polink partout !!

RAS LE BOL !!

si tu veux interresser les gens a ton moteur, commence par le rendre accessible !!

c'est pas possible d'etre aussi bon programmeur que toi, et d'etre en meme temps aussi Nul pour ce qui concerne, la convivialité !! 8O

perso je trouve que c'est plus important de proposer un produit facile a installer et a utiliser,
que des routines a base de Quaternion attractionnel dérivé de la synchronisation de ligne Verticale a balancier !!!....


MERDEUUUUUUUUU !!

pffffff ! Blasé, j'avais un projet en tete, et la jchui blasé pas le courage de me relancer dans l'install imbitable que tu propose ....

t'étonne pas si t'a pas de gens qui s'intéressent a ton superbe moteur inaccessible



Fin du coup de Gueule
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 Dobro.

Je suppose que je mérite certainement sans complaisance les critiques que tu énonces
concernant l'install de DM3D.

Ceci dit, même si un installateur digne de ce nom existait, je ne suis pas vraiment
sûr que cela aurait pour toi changé quoique ce soit à ton problème de link entre
PB et DM3D. Car un installateur ne ferait automatiquement que ce qui est ecrit et
demandé manuellement dans la doc du package, c-à-d:


- copier les lib du SDK dans le repertoire 'PureBasic\PureLibrairies\Windows\Libraraies\'
- copier les DLL du SDK dans le repertoire 'PureBasic\Compiler'


... et c'est tout.
Dire que cette manip rend le moteur inaccessible est un peu excessif à mon avis.
D'ailleurs, à la date d'aujourd'hui, même si le nombre d'utilisateurs du moteur n'est pas
pléthorique, tu es le premier à vraiment me faire remonter ce genre de soucis. Donc à
travers ça, il y a peut-etre un conflit entre une lib que est déjà installée dans tes
repertoires PB et une de celle de DM3D, mais là il faudrais creuser pour en savoir plus,
et au rique de me répéter, une install auto n'aurait probablement pas vraiment changé
le resultat actuel te concernant.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ok dans ton fichier d'install tu ecris :

Code : Tout sélectionner

2 - ...Copy the Dreamotion3D DLL (in the 'SDK/DLL' directory of the package) in the 'PureBasic\Compiler' folder...
ça marche pas !!

par contre si tu met ces fichiers dans "Windows\system32\"
la ça marche !!

mais ... ben oui ce serai trop simple

si je lance l'exemple "Water"

j'ai une invalide memory acces in line 140 !!

ps : excuse ma vociferation, mais j'a les nerfs mis a rude épreuve en ce moment ..

en fait j'ai des erreur a tout les exemple
et pour ceux qui n'en genere pas, j'ai la fenetre Grise , mas de monde a l'interieur !! :?
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 »

Dobro a écrit : ps : excuse ma vociferation, mais j'a les nerfs mis a rude épreuve en ce moment ..
Y-a pas de soucis, et je comprend très bien aussi ton enervement, combien de fois il
m'est arrivé de pester contre des programmes ou lib soit disant simple à installer
et qui en final plantaient tout le temps, donc, je suis pour une fois dans la peau du chat
fouaité...

Pour ce qui est de ton soucis, je me remet sur ma machine de test, je dowload l'archive, j'installe
et je regarde ce qui ce passe, et je te tien au courant (au fait, quel version de PB utilises-tu ?)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tmyke a écrit : et je regarde ce qui ce passe, et je te tien au courant (au fait, quel version de PB utilises-tu ?)
4.10 :)
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 »

Bon, je viens de faire l'essais d'installation avec la version 4.10 de PB, et je n'ai rencontré
aucun soucis, ce que ne m'aide pas pour t'aider du moins pour le moment.
Dans le repertoire windows/system32 n'y a-t-il pas une version anterieur de Dreamotion3D.DLL ?
Utilises-tu les fichiers include du dernier package ?

Et si cela t'es possible, peux-tu lister quelques une des erreur de linkage pour m'aider.
Il doit y avoir un conflit quelque part je suppose, y-a plus qu'a trouver ou ...

(le pire c'est que cela doit être tout con...)
Dernière modification par tmyke le mar. 18/mars/2008 21:23, modifié 3 fois.
Anonyme

Message par Anonyme »

A mon avis Dobro , c'est plus un problème d'interface chaise/clavier , ici ca marche bien , j'ai fait une install par dessus une autre & aucun polink :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

:lol:
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 »

Dobro a écrit : si je lance l'exemple "Water"

j'ai une invalide memory acces in line 140 !!
J'ai reproduit dans ce cas précis, c'est comme si le path des media employés n'était pas
bon. Tu as un fichier log désormais dans le répertoire du code qui peut t'aider dans certains cas à
isoler le problème...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

alors si je met les dll dans le dossier compiller chez moi voici ce que ça donne


Image

note que j'ai laisser en arriere plan la fenetre du dossier compiller ouverte
pour que tu constatre que les dll sont bien presentes !

cette erreur n'apparait pas lorsque je les mets dans Windows\System32
:?


et voici le Log pour Water

********************************************
********************************************
18/03/2008 21:07:13>Init Dreamotion3D engine
********************************************
********************************************
18/03/2008 21:07:13>Direct3DCreate9(): OK
18/03/2008 21:07:13>GetAdapterDisplayMode(): OK
18/03/2008 21:07:13>CheckDeviceType(): OK
18/03/2008 21:07:13>CheckDeviceFormat(): OK
18/03/2008 21:07:13>SampleQualityLevels: 0
18/03/2008 21:07:13>BehaviorFlags: D3DCREATE_HARDWARE_VERTEXPROCESSING
18/03/2008 21:07:13>VS_possibilty: 3
18/03/2008 21:07:13>PS_possibilty: 3
18/03/2008 21:07:14>Init2D() OK
********************************************
18/03/2008 21:07:14>end Initialisation...
********************************************
.
18/03/2008 21:07:14> <<ERROR>> CMeshX(Load)
Load MeshX file failed: skydome.x
18/03/2008 21:07:14> <<ERROR>> CHeightMap(LoadTexture32)
Load texture failed: heightmap10.bmp
Dernière modification par Backup le mar. 18/mars/2008 21:28, modifié 2 fois.
Répondre