# Applications > Dveloppement 2D, 3D et Jeux > Moteurs 3D >  Tzu3D, Moteur3D VB.NET en developpement

## ShadowTzu

Bonjour,

Tzu3D est un moteur 3D, destin aux amateurs dsirant produire des jeux 3D en n'ayant aucune connaissance dans le domaine. Mon objectif principal est d'offrir un moteur 3D le plus simple  utiliser possible tout en ayant des performances honorables. Utilisant la technologique .Net il sera possible de l'utiliser avec les langages VB.net, C# ou C++.Net.

Je recherche une personne programmant en vb.net (express 2005) ayant une bonne connaissance de DirectX9 Managed afin de m'aider au developpement de Tzu3D.

Et pour finir voici quelque screenshots:






Plus d'infos


Merci.

----------


## ShadowTzu

Bonjour, Voici les nouvelles du jour:

Je viens de terminer la gestion des ombres projets, et pour vous tous, j'en ai fait une vido:
http://shadowtzu.free.fr/?topic=video

Et d'un screenshots:

----------


## ShadowTzu

Coucou,
j'ai fait une nouvelle vido des ombres projetes mais cette fois, avec la source de lumire en mouvement  :;): 

Screen:


Vido ombres projetes 2:
http://shadowtzu.free.fr/?topic=video

----------


## Louis-Guillaume Morand

je ne peux pas t'aider mais ce que tu fais (le rendu) est trs joli. Bravo pour le boulot

----------


## ShadowTzu

merci du compliment  ::): 
N'hsitez  donner vos impressions, suggestions ou critiques  :;):

----------


## ShadowTzu

Refonte de Tzu3D (c'est la 2me depuis a cration (01/01/2005)). Etape qui consiste  r-crire le moteur afin d'optimiser encore plus. J'ai commenc par la gestion des objets et j'en ai fait un test pouss, les rsultats sont bien au-dessus de mes attentent!

Les rsultats

----------


## ShadowTzu

Screenshot du jour:

----------


## smyley

::king::  
( jamais je pourrai faire un truc pareil   ::oops::  )

----------


## wamania

impressionnant
il me tarde de voir la "simplicit" d'utilisation de ton moteur

----------


## Ekinoks

Salut,
Bravo ShadowTzu Cest vraiment trs russi, les Screenshot son virement impressionnants. Ceci dit, j'ai une question...
Je dbut en OpenGL mais l'utilisation de VB.net ne ralentie pas ton moteur ? Lutilisation d'un langage plus rapide comme le C ne serait til pas plus judicieux ?

----------


## ShadowTzu

dtrompe toi, vb.net est trs performant!

----------


## Ekinoks

Ha, ok... autant pour moi alors ;^)
Il faut m'excuser, je suis encore quun dbutant :^/
En tout cas, bravo, les graphismes son virement jolie et tout comme wamania jai hte de voire sa "simplicit" de dutilisation ;^)

----------


## Franckintosh

DirectX ou OpenGL ?

----------


## ShadowTzu

> DirectX ou OpenGL ?





> Je recherche une personne programmant en vb.net (express 2005) ayant une bonne connaissance de DirectX9 Managed afin de m'aider au developpement de Tzu3D.


*Tzu3D Viewer, version 1.0*
Cette nouvelle version integre comme la prcdente la visualisation des objets .X avec en plus la possibilit de les optimiser et de les sauvegarder sous les format .x et .t3d.
Le format .t3d est en faite un fichier .x Optimis cela permet au moteur de les identifier et ainsi de ne pas appliquer les optimisations car dj faite, on gagne donc en temps de chargement.



http://shadowtzu.free.fr/?topic=telechargement

----------


## ShadowTzu

Screen du jour: gnrateur  particules

----------


## Thomas Lebrun

Ca fait un moment que je te suis et je dois dire que c'est du beau travail  ::): 

Dommage que ce soit du VB.NET: en C#, j'aurais p essayer de te filer un coup de main mais VB.NET, c'est pas possible  ::cry:: 

Dsol et encore beau travail  ::):

----------


## ShadowTzu

et bien merci du compliment  :;):

----------


## ShadowTzu

Bonjour,

Avant le lancement officiel de la version 1.0, j'organise trs prochainement une bta test de Tzu3D. Cette bta contiendra presque toutes les fonctions prvues sauf le son 3d et la gestion du Lod.
Des tutoriaux accompagnerons le moteur mais seulement rdig en vb.net.

*Afin de participer  cette bta certain pr-requis sont ncessaire:*

-Savoir programmer en Vb.net
-Framework 1.1 d'installez
-Carte graphique pas trop vieille

Pour s'inscrire il suffit de remplir ce petit formulaire:

http://shadowtzu.free.fr/inscription.php


Merci  vous, en esprant avoir le maximum de personne!

----------


## ShadowTzu

voila! la bta test  commenc aujourd'hui!

----------


## ShadowTzu

Et non je ne suis pas mort :p
Bta test oblige, les news sur Tzu3D ce font rare, bien que voici un petit screenshot rassemblant terrain, eau avec reflet, et ombre volumetrique (ombre sur le vaisseau et au sol):

http://shadowtzu.free.fr/ao/ombre_reflet.jpg

----------


## graton19

Wow c'est super bien.

Ter image sont presque aussi bonne que halo 1.

----------


## ShadowTzu

hh merci  ::):

----------


## FolkeN_41

Impressionant !!^^ Ca laisse imaginer la quantit astronomique de travail.

----------


## ShadowTzu

l j'en suis  10 mois de dveloppement.

----------


## dibejmaher

desoler de vous interampre vous faites du tres beau travail et j'aimerai pouvoir le faire un jour .

voila je suis qu'un debutant en programation et j'aimerai savoir qu'est se qu'on doit apprandre dans la programation avant de pouvoir se lancer dans un projet pareil et merci

Bonne continuation   ::D:

----------


## ShadowTzu

Et bien dja il faut maitriser un langage de prog. Enssuite avant de faire de la 3d, il faut commencer par de la 2d, avec soit directx ou opengl, ou mme avant tester un moteur 2d ou 3d, c'est un bon moyen de voir comment a marche.

----------


## afrikha

je suis bouche be.
BRAVO ::bravo::  ,c'est tout ce que j'ai  dire

----------


## ShadowTzu

petite fourn de screenshots:

http://shadowtzu.free.fr/ao/test/screen1.jpg
http://shadowtzu.free.fr/ao/test/screen2.jpg
http://shadowtzu.free.fr/ao/test/screen3.jpg
http://shadowtzu.free.fr/ao/test/screen4.jpg
http://shadowtzu.free.fr/ao/test/screen5.jpg
http://shadowtzu.free.fr/ao/test/screen6.jpg
http://shadowtzu.free.fr/ao/test/screen7.jpg
http://shadowtzu.free.fr/ao/test/screen8.jpg
 8)

----------


## smyley

::roi::  magnifique.
je n'ai que cel  dire : continuez !

----------


## ShadowTzu

merci, le tout en vido:
http://shadowtzu.free.fr/videos/demotest.wmv
(dsol de la mauvaise qualit, j'ai fait a rapido)

----------


## ShadowTzu

J'ai chang quelque truc:
-Couleur plus sombre
-Correction d'un petit bug avec les ombres
-Ajout du brouillard
-Ajout des collisions.

http://shadowtzu.free.fr/videos/demotest2.wmv

----------


## ShadowTzu

j'ai dcouvert recemment un petit diteur de map: DeleD(http://www.delgine.com/) grant les lightmaps. J'ai donc fait un loader de map venant de cette diteur, et le rsultat est assez intressant:
(j'ai fait ces maps assez rapidement, et en ne connaissant que trs peu toute les fonctionnalits de l'diteur)

----------


## smyley

Tout btement, je me pose une question : dans mes nombreux rves il se trouve un petit truc assez cool ( quelque marches aprs "vivre au japon" ) ...

Si je veux faire un jeux qui soit du genre "Sonic Adventure - Like" de SEGA ( non, non, je ne fais pas de pub  ::):  ), c'est possible avec ton moteur 3D ? ( ou en tout cas se sera possible ? ) ...
Si oui, y a t - il des "outils" qui puisse me permettre de "dssiner" mes personnages ? ( dj que j'y connais rien, mais rien en OpenGl, de l  faire compltement par la prog un nouveau Sonic  ::lol::  il serai mconnssable )

Si tu me rpond oui aux deux question,  nol je commence un test avec ton moteur  ::D: 

[edit]
Le skin des fentres, c'est de toi juste pour l'appli .NET ou c'est un skin pour tout Windows ? j'aime bien faire des skins  :;): 
[/edit]

----------


## ShadowTzu

oui c'est faisable, mais il faut savoir prog  ::): 
Non il n'y a pas d'outil fourni avec Tzu3D, c'est un moteur3D, et non un moteur de jeu. Du moins pas pour l'instant, car je suis seul  le faire.

La modlisation de tes personnages ce fait dans un modeleur 3d, du style 3dsmax, puis export en .X, format utilisable par mon moteur.

Le skin des fentres viens de mon thme de windows  ::):

----------


## smyley

> oui c'est faisable, mais il faut savoir prog


J'connais pas VB.Net, mais je maitrise plutot bien le C# et comme sous .Net tous les langages sont identiques ...   ::roll::  





> La modlisation de tes personnages ce fait dans un modeleur 3d, du style *3dsmax*, puis export en .X, format utilisable par mon moteur.


  ::(:  j'arrive  peine  faire une bille avec cette usine  gaz, mais j'ai quand mme envie d'ssayer




> Le skin des fentres viens de mon thme de windows


zut et zut   ::wink::  

Enfin, si d'ici  demain je me focalise pas sur un autre rve, je vais essayer de voir dj comment faire un bou de bois avec 3DsMax  ::):  ( peut tre qu'un jour ... )

----------


## ShadowTzu

Shadow est de retour  ::):  

Je suis en train de travailler activement sur les pixel/vertex shaders et voici donc le tout premier effet operationel de Tzu3D, du Glow:



et un test de bump mapping+specular:


 ::D:

----------


## Pedro

Franchement bravo  ::ccool::  C'est magnifique   :8O:  
Ca serait sympa de le traduire dans d'autres langages  :;):   ::aie::

----------


## smyley

> Franchement bravo  C'est magnifique   
> Ca serait sympa de le traduire dans d'autres langages


C# ou CLI/C++   ::roll::

----------


## ShadowTzu

op pour la route:



petite optimisation du shader, j'ai gagn environ 30 fps  8)

----------


## Baptiste Wicht

C'est vraiment incroyable   :8O:  , il n'y a qu'un mot  dire : BRAVO !!!

La qualit est irrprochable pour quelque chose que tu as fait tout seul...

Je me permets juste une petite question, je viens de me lancer dans le C++, et  terme j'aimerais juste faire une petite appli avec quelque chose(voiture, homme, animal, je sais pas encore ^^) se dplacant sur une map et grant les evenements entre les choses de la map et la chose se dplacant... Est ce qu'il me suffira d'utiliser l'openGl ou alors faudra que j'emploie un moteur 3d ou alors que j'en developpe un(l'ide me sduit assez   ::):  )

----------


## ShadowTzu

Si tu dbute dans le c++ je te conseil de dj maitriser un minimum le langage avant d'entreprendre de gros projet. Quand au choix entre faire sont moteur ou en utiliser un, je te conseil de commencer par voir comment sont constuit et fonctionne les existants. Tu pourras aprs dcider ou non de faire ton propre moteur  ::):

----------


## Baptiste Wicht

Je me suis lanc dans l'openGl et avant j'ai dja fait pas mal de java, et un peu de c++, en fait je veut faire un petit projet et au fur et  mesure de l'avancement apprendre de nouvelles choses et amliorer  chaque fois le projet. 

Et sinon, pour le choix d'un moteur graphique ou pas, je verrai et si besoin est, je remanierai mon appli avec un moteur   ::):

----------


## ShadowTzu

Voici la suite  ::):   :

Terrain(+quadtree) avec du glow:

----------


## ctrlaltsuppr

Je trouve tout cela trs professionnel, une belle qualit, on peut mme dire irrporchable.
on ne voit pas de code, c'est normal ton beau projet ne doit pas etre plagi.

Mes seuls points d'interrogation sont les suivants :
on ne voit aucun .exe et je me demande alors combien de temps,il faut sous VB.Net pour raliser de telles images/vidos/seconde?
Y-a-t-il un interaction avec l'utilisateur ?

----------


## ShadowTzu

bonjour,
Il n'y  pas d'exe  cause du fait que le code .net peut tre dcompiler. Il existe diffrente alternative afin d'empcher a, comme xenocode, qui crypte tous les noms de class/fonction, etc.. et empche mme la possibilit de voir le code contenu dans ceux-ci. Le problme c'est que c'est assez long  faire, car mon moteur ce prsente sous forme de dll, le nom des fonctions/classes, et de leurs arguments ne doivent pas tre crypt, alors a prend du temps de bien slectionner ce que je veux crypter ou non. C'est pourquoi les demo viendrons quand j'aurais termin la version actuelle, afin de ne pas me retrouver  grer plusieurs version toutes les semaines. 
Car effectivement, je progresse trs rapidement, vb.net et directx managed rendent la tache beaucoup plus facile qu'avec du c++ par exemple, on vite plus facilement les erreurs.
Cela fait un an que j'ai commenc Tzu3D (01/01/2005), il y a eu une petite bta test en octobre, afin de faire tester mon moteur, cela m'a permis de mieux comprendre les besoins des utilisateurs.
 ::wink::

----------


## arnolem

et moi qui a du mal a faire un zelda avec vb.net  ::D:

----------


## ShadowTzu

On continu avec du glow, mais cette fois-ci il n'apparat que sur la partie claire de la statue.




et en vido:
http://shadowtzu.free.fr/videos/glow.wmv

----------


## loka

superbe, je baisse mon chapeau (enfin si j'en avais un je l'aurais fais  ::D:  )

----------


## ShadowTzu

merci  ::P:  , voici la suite, glow sur la statue, et normalmap+specular sur le sol:

----------


## ShadowTzu

NormalMap Avec attnuation, Ombre et glow:


(la petite boule blanche reprsente la position de la lumire)

----------


## smyley

J'arrive mme pas  raliser mon rve de faire un jeu vido et l'autre il fait un moteur 3D   ::evil::  
 ::bravo::   ::applo::   ::king::   ::hola::

----------


## ShadowTzu

Il y a 1 ans je pensais pas arriver  faire a,
avec le temps on arrive  tout  :;):

----------


## popul

Ca fait plaisir de voir quelqu'un faire quelque chose en .NET, et casser en 2 les ides faites sur le VB. J'ai regard les screenshots de ton moteur 3D, t'as l'air de grer une bonne palette des effets 3D du moments. Je te flicite pour ce travail d'une part pour sa complexit, mais plus particulierement pour sa longvit : Ca fait maintenant plus d'un an que tu es dessus, et il faut avouer que tu est persevrant.

Je dis a car j'ai essay  maintes reprises de faire des moteurs de jeu, la plus part en 2d avec Allegro et C++, puis je pass  directx, et actuellement j'utilise le C# avec Directx. Je n'ai pas cesser de recommencer mes moteurs,  cause de problmes de conception. Aujourd'hui je pense tenir le bon bou avec mon dernier projet de moteur de jeu 3D. De voir ton projet me redonne du punch (j'en avais encore tkt ^^)

Je pense sincerement que .NET est la plateforme d'avenir pour nos futurs jeux Windows (et autres qui sait ^^). Les performances sont bonnes, certes moins bonnes que l'quivalent en C++, mais tout  fait acceptables.

----------


## ShadowTzu

merci popul  :;): 
C'tait pareil pour moi j'ai recommenc 4 ou 5 fois avant de "trouver" la meilleurs architecture  partir d'une ide de base: facilit la programmation de mon cot, et cot utilisateur, et limiter au maximum les changements d'tat du device (texture, renderstate, vb/ib, etc...).

Enfin bref bonne chance pour ton projet!

----------


## ShadowTzu

oups j'ai oubli le petit dernier  :;):

----------


## ShadowTzu

Op! Du glow avec du shadow mapping, les ombres douce viendront prochainement  :;):

----------


## Laurent Gomila

En vrac :

- Le contour noir autour de la statue est-il normal ?

- Est-ce normal galement que le glow soit attenu lorsque tu regardes dans la direction de la source lumineuse ? Ce ne devrait pas tre l'inverse ?

- Tes ombres sont assez pixelises, est-ce que tu as dj commenc  regard du ct des techniques de projection volues (sans parler du potentiel flou que tu peux encore appliqu aprs) ?

Bon  part a c'est trs joli, comme d'habitude  :;):

----------


## ShadowTzu

le contour noir autour de la statut est normal oui, l'utilisateur peu l'enlever ou l'attenuer comme il veut.

En gros mon glow est plus accentu sur les partie plus claire (one,one) ici je n'utilise pas de texture glow donc il n'y a pas de traitement special, plus c'est blanc plus le glow est accentu.

Pour l'ombre j'ai tout ce qu'il faut pour l'amliorer, c'est juste par manque de temps que je n'ai pas encore tout ajout!  :;): 

Edit: A oui, pour le glow attnu quand on regarde la source de lumire, et bien en faite les 2 screenshots sont 2 testes different du glow  ::):

----------


## karim_jouini

Salut !
j'aimerais savoir si le projet se poursuit ?
j'aimerais donner un coup de pouce !
je maitrise pas mal du tout le VB.NET, mais en DX je suis debutant (j'ai fait bcp de DX6-7  l'epoque mais rien depuis).

je n'ai pas bcp de temps certes (entre les cours et le CDD de passage ^^) mais je peux t'aider (meme  developper des parties annexes du moteurs tel que le traitement du signal (effet pr affichage ou traitement du son) et rseau (LAN, etc ...) et enfin un peu de graphisme (mais la je vais SURTOUT apprendre de toi  ::D: )

----------


## Bakura

Sympa de voir que tu n'as toujours pas abandonn ton moteur !! Entre le moteur de funkydata et le tiens, on a vraiment deux trs jolies choses sur ce forum ^^.

----------


## ShadowTzu

coucou  ::): 
Oui Tzu3D est toujours en dveloppement, et maintenant je n'ai plus vraiment besoin d'aide pour continuer  :;): 
Quant  son avancement, il ne me reste plus grand chose  faire, je lui ai ajout un moteur physique (Newton Game Dynamics), et je n'ai plus qu' refaire ma gestion du son 2d/3d.
Enssuite le plus long sera de faire la documentation et les tutoriaux, pour qu'enfin, mon moteur soit disponible  tous.

----------


## Bakura

Ah tiens le moteur physique Newton physic, je l'ai regard ya pas trs longtemps, j'ai vu quelques dmos, il a l'air sympa en effet, et la doc  l'air plutt bien foutu ^^.

----------


## ShadowTzu

oui, il est pas mal du tout  ::lol::

----------


## bafman

tu a essayer bullet ? lui aussi il poutre bien comme moteur physique
http://www.continuousphysics.com

----------


## Bakura

Je sais pas vous, mais moi j'adore les dmos des moteurs physique ^^.

EDIT : et qu'est-ce qu'il a de plus Havok par rapport  ces moteurs l ? Perso j'ai du mal  voir la diffrence, a a l'air de ragir de manire assez raliste dans tous les cas,... Il coute combien Havok ?

Il y a celui-ci galemetn : http://www.ode.org/

Sinon shadowTzu, pour le cas du Newton, tu peux me dire un peu comment a s'intgre dans un moteur graphique a ?

----------


## ShadowTzu

non je connais pas bullet, il a l'air pas mal, mais je reste sur NGD  :;): 
Le problme en .net c'est qu'il faut ce faire un wrapper, et c'est trs trs long.
Quand  l'utilisation de newton, c'est assez simple:
On cr une gomtrie de base exemple:


```
Geo_id = nt.Create_Box(size.X, size.Y, size.Z)
```

puis on cr les objets interne avec cette gomtrie:


```
Obj_Id = nt.Create_Body(Geo_id)
```

et on envoi la matrice world de notre Mesh


```
nt.Set_Body_Matrix(Obj_Id, Floor.Matrix_World)
```

Voila pour un sol de base.
Enssuite pour ajouter quelque centaine de cube c'est le mme principe avec leur masse en plus:


```
nt.Set_Body_Mass(Cube_id, 1, 1, 1, 1)
```

et pour ne pas s'enmerder  interroger newton pour rcuprer la matrice obtenu de nos 100nes de cubes on attache 2 fonctions callback qui vont tre appel par newton lorsque qu'un cube a a matrice qui change:


```

```

Et pour que cela marche correctement on attache aussi votre class mesh:


```
nt.Set_Body_UserData(Cube_id, CubeMesh(0))
```

Enssuite dans la boucle de rendu on a juste  appeler la fonction update


```
nt.Update(1)
```

et en interne vos fonctions de transformation et d'application des forces vont tre appel (callback)
ce qui nous donne par exemple notre fonction qui renvoi la matrice world obtenu a votre mesh:


```

```

Et mme style pour l'application des forces  :;): 
Enfin Bref en gros c'est  peu prs a avec des noms de fonction un peu different des miens

----------


## bafman

> EDIT : et qu'est-ce qu'il a de plus Havok par rapport  ces moteurs l ? Perso j'ai du mal  voir la diffrence, a a l'air de ragir de manire assez raliste dans tous les cas,... Il coute combien Havok ?


le support... rien que pour ca, on peut comprendre que certaines socits paye... un exemple : rien qu'au niveau documentation, c'est incomparable. 
et puis les moteurs commericaux sont aussi fouris avec tout les outils pour aider le developpement et autres.

----------


## Bakura

bafman > Ah oui j'avais pas pens au support en effet !! Mais quelqu'un connait le prix de Havok ? J'ai cherch sur leur site mais ya aucun prix partout (juste pour voir, je ne pense pas que a soit les prix d'un moteur graphique,...).

ShadowTzu > Ca va ca n'a pas l'air trop lourd  crer, et aprs tout ragit avec le moteur physique et tout ? Tu places quelques cubes, tu rentres dedans et tout ragit bien, avec seulement ces quelques lignes de codes ? ^^. Terrible a ^^.

----------


## bafman

> bafman > Ah oui j'avais pas pens au support en effet !! Mais quelqu'un connait le prix de Havok ? J'ai cherch sur leur site mais ya aucun prix partout (juste pour voir, je ne pense pas que a soit les prix d'un moteur graphique,...).


je ne sais pas pour havok, mais pour PhysX, ca tourne dans les 50K$  ::roll::

----------


## Bakura

50K = 50 000 ? C'est vachement cher  ::|: .

----------


## LapinGarou

Havok c'est dans les 70000$ minimum, aprs il y a des options il me semble suivant le temps du support, les options du moteur...

Peu le savent, mais chez Ageia, aprs inscription, on peut tlcharger le PhysX engine en version 2.5 (ancien nom : Novodex). Et il "poutre" normment : pour peu que certains aient le hardware, il y a la gestion des fluides. Une vido est dispo sur le site, montrant ces fluides avec le Unreal Engine 3

----------


## Bakura

> Peu le savent, mais chez Ageia, aprs inscription, on peut tlcharger le PhysX engine en version 2.5 (ancien nom : Novodex).


Mais il est payant celui-l ?

----------


## bafman

aigea propose deux licences :
une payante pour les projets commerciaux
une gratuite pour les projets non commerciaux, un peut comme FMOD quoi.

par contre, il faut se mefier, car apparament, la licence gratuite ne s'applique pas pour les projet libre car rien n'empeche de revendre le produit... donc en gros, les seuls projets qui peuvent utiliser le physX sont les projet dont la licence spcifie clairement que le projet ne peut pas faire partie d'un quelconque package commercial  ::?: 
bref c'est pas trs claire tout ca  ::aie::

----------


## LapinGarou

Tout  fait, c'est pas clair leur licence, mais pour le moment a me "suffit" comme moteur physique, d'ici  ce que mon jeu soit en tat de vendre, il y aura Havok 15...  :8-): 
Avec des potes on en a un peu assez de voir toujours le mme genre de jeu :  qui a les plus beaux effets, le meilleur moteur physique, le nombre de vhicules... etc. Mais peu sont immersifs, et utilisent vraiment ce moteur physique  par peut tre HL2 pour certaines nigmes (qui se comptent sur les doigts d'une main), voire Prey avec ses changements de gravit qui est assez fun. 
Mais il n'est toujours pas possible de faire s'crouler une maison sur l'quipe adverse, voire un immeuble, ni de faire un trou n'importe o dans un mur.  ::lol:: 
Je sais, a va tre dur  coder, on n'est pas des pros, mais nous ne sommes pas presss. 
Certains jeux ont fait un carton aprs plusieurs annes de gestation dans un petit garage de passionns  :;):

----------


## Ti-R

> Mais il n'est toujours pas possible de faire s'crouler une maison sur l'quipe adverse


Crysis, des cabanes en bois tombent sur les joueurs aprs grenades... (Interaction avec la vgtation aussi)




> ni de faire un trou n'importe o dans un mur


Un peu dans le genre, Portal livr avec Hl episode 2

----------


## LapinGarou

Honte  moi qui suit dj fan de ce jeu !  ::P:  Bon j'admet, mais ce sont surtout des cabanes, moi je parle de vraies maisons en dur, avec des vrais parpaings, pas des bouts de taules  qui s'effondrent aprs quelques coups de poing  :;):

----------


## Ti-R

Faut juste que les parpaings ne ressemble pas  des legos sinon c'est pas top  :;):

----------


## LapinGarou

C'est pas moi qui code cette partie l, je m'occupe de l'affichage et de l'intgration du moteur physique... mais si c'est pas comme il faut, celui qui code sait qu'il verra un parpaing de trs trs prs  ::P:

----------


## bafman

heu... juste pour signaler : a vouloir fair un jeu qui utilise massivement la physique, vous allez tomber sur des problmes d'echelle...
en fait, les moteurs physiques actuels sont trs bien pour simuler quelques interactions d'objets entre eux, mais quand le nombre d'interaction augmente, les perfs s'ecroule (les algo de gestion des interaction sont d'ordre O(n^2)  O(n^4) selon les libs), et par exemple, modeliser entierement une maison risque de bien tourner tant qu'on ne touche pas  la maison (toute les brisues sont en idle), mais va faire ramer si on touche  une brique (car tout le rest de la maison sera reveill...)

bref, a part utiliser une solution hardware genre physX, en soft c'est pas trop possible pour l'instant  ::?:

----------


## ShadowTzu

Ce qui est dommage c'est que bon nombre de jeu ne savent pas exploiter correctement un moteur physique.
Beaucoup pense qu'ils ne servent qu' faire des projectiles lors d'explosions comme si ce n'tait qu'un moteur  particules volu... comme le fait la plupart des fps du moment sauf HL2.
On voit donc une course  la performance,  celui qui arrivera  faire tomber le plus de boites...
Alors que les grosses boites vont continuer dans ce sens  dpenser une fortune pour le moteur physique et faire grimper le prix des jeux, les petites boites elles vont plus s'orienter vers l'interaction que peu offrir un moteur physique aux joueurs.
En voici un bon exemple:
http://frictionalgames.com/penumbra

----------


## Bakura

Je vais regarder le jeu que t'as envoy, a a l'air trs intressant, graphiquement a a l'air bien joli et bien flippant ^^.

----------


## Yno

> Je sais pas vous, mais moi j'adore les dmos des moteurs physique ^^.


Si, moi aussi  ::): 

C'est pour cel que je viens poster ici  ::P: 

Et dire que je le trouve trs bien fait.

Bravo en tout cas, bonne continuation.  :;):

----------


## LapinGarou

Salut ! Alors, quoi de neuf sur le moteur 3D ? si il y a besoin d'aide, envoie un mp, je me suis mis dernirement  DirectX et vb, a me change un peu de l'opengl et du c++  :;):

----------


## ShadowTzu

coucou,
Et bien je n'ai plus vraiment besoin d'aide, sinon rien de neuf en ce moment, sauf que si tout ce passe bien mon moteur sera dispo le 1er janvier 2007.

 :;):

----------


## Nofrag

Et franchement ShadowTZU tu me fais trop plaisir quoi...
Voil de quoi fermer mais vraiment fermer la bouche de gens disant ("Euh oui VB.NET c'est pas du tout puissant tu vois, je prfre le C++") alors certes VB.NET c'est moins optimisable que le C++ mais ce que tu fais la n'est-ce pas la preuve que VB.NET peut au moins galiser avec C++ ?

Trs trs beau travail continue !!!

Et franchement dotNET powa !!!!

----------


## ShadowTzu

oui exact, ces gens ne connaissent pas du tout vb.net et le juge comme s'il s'agissait de vb6. Quand j'entend ce genre d'nerie je vois tout suite le "niveau" de cette personne et je me dis: c'est qu'un noob c'est pas a fautes  ::mrgreen::

----------


## Laurent Gomila

Attention quand mme  ne pas rentrer dans la facilit de dire "j'ai des beaux screenshots alors mon moteur il dchire"  :;): 

Des beaux screenshots n'importe qui peut en faire avec des modles / textures hi-res et les shaders qui vont bien.

Ce qui fait un moteur performant c'est... les performances. Je suis d'ailleurs curieux de savoir ce que donne ton moteur  ce niveau  ::):

----------


## LapinGarou

Bon, aujourd'hui 30 janvier. Ca y est, on peut utiliser ton engine ? J'ai trop hte  :;):

----------


## ShadowTzu

Laurent, d'o le fait que je prcise le niveau de ces gens l  :;):  Un simple screenshot suffit  rduire  nant leurs critiques gratuite.
Sinon niveau perf a devrait allez, aprs avoir pass 2 ans  dev mon moteur avec une petite config, je pense avoir fait quelque chose de trs potable  :;): 
Maintenant avec ma nouvelle config j'ai un gros problme, pas au niveau perf non, mais niveau disponibilit, je passe plus mon temps  tester mon moteur avec Pixel/vertex shader 3.0 qu' rdiger la doc et tutoriaux  ::mouarf::  ce qui en rsulte un retard sur la sortie publique  ::oops::

----------


## ShadowTzu

Bonjour,

Aprs une trs grande pause, je reprend doucement le dveloppement de Tzu3D bas sur une nouvelle architecture trs ax multi-thread.
L'utilisation est toujours pens pour tre la plus simple possible mais contrairement  la premire version, plus de nom de fonction en franais, pour pas avoir des noms  rallonge.

Il reste encore beaucoup de travail  rintgrer dans cette nouvelle version mais je vais tout de mme commencer  sortir de l'ombre et rendre petit  petit disponible Tzu3D pour les curieux qui souhaite commencer  programmer avec.
Donc d'ici quelque temps une pr-version accompagn de quelques tutoriels et exemple seront tlchargeable et le forum sera ractiv galement trs bientt.

Mais avant je souhaite vous prsenter une mini dmo de cette nouvelle version que vous pouvez tlcharger ici:

Demo Tzu3D

Attention, le framework 2.0 est ncessaire et une carte graphique supportant les pixel/vertex shader 3.0
les touches pour vous dplacer: ZQSD
F4 pour dsactiver le glow
 (le petit 2) pour afficher la console: touche HOME et END pour diminuer ou agrandir la console, PAGE HAUT/PAGE BAS pour naviguer dedans, taper "list" pour voir la liste des commandes disponible.
Touche + et - du pav numrique pour augmenter ou diminuer le rayon des lumires.

A bientt !

----------


## Lightmaxime

Bonjour ShadowTzu,

J'ai dcouvert ton moteur 3D il y a une semaine de cela, et je serai intress  te donner un coup de main.
Attention cependant : je dbute en DirectX9, tentant de faire moi aussi un moteur 3D, mais qui serait directement ax sur les jeux de type str.

Cependant, je connais assez bien VB.Net et je fais des tudes d'informatique, j'en connais donc des choses intressantes.

D'ailleurs, peux-tu me dire si tu as fais des tudes en rapport avec la programmation? Je trouve que tu fais des choses peu documentes avec DirectX9, peut-tre as-tu fais des tudes dans ce genre de domaine?

----------


## ShadowTzu

Bonsoir,

Au dpart, Effectivement je cherchais un peu d'aide, mais je n'ai trouv personne un minimum  l'aise avec le couple vb.net+DirectX9.

Et non, je n'ai pas fait d'tude en rapport avec la programmation, j'ai tout appris seul. Et pour a j'ai d me mettre  l'anglais (en franais il n'y a rien),  fouiner sur internet, a prends beaucoup de temps.

Au final je n'ai plus besoin d'aide, mais par contre si tu as besoin, demande moi, n'hsite pas.

----------


## Lightmaxime

En fait, mon problme, c'est pour grer la camra dans l'espace, comme tu l'as fait dans ton moteur...
As-tu utilis des matrices ou choses amusantes de ce genre?

----------


## ShadowTzu

regarde du cot de ma source: "Terrain 3d" il me semble que j'utilise une fonction de directx: "Matrix.LookAtLH ..." c'est trs simple.

----------


## Lightmaxime

En fait, j'y suis arriv cet aprs-midi, maintenant j'essaie de savoir comment placer le code de DirectInput lorsque l'on rcupre un nouvel Input...
C'est dans le Render,  chaque fois qu'il rend une frame, on vrifie si une touche est appuye?

----------


## ShadowTzu

oui c'est a, c'est la mthode la plus simple, dtecter les touches press juste avant de dessiner une frame.

----------


## Lightmaxime

Mais alors, il faut laisser l'implmentation du rendu  l'utilisateur du moteur?

----------


## ShadowTzu

Oui, c'est  lui de faire sa boucle de rendu, sauf si vraiment tu veux tout grer mais l faut penser  tout (comme pour la gestion de la physique).

----------


## Lightmaxime

D'ailleurs, pourrais-tu s'il-te-plat me dire o tu as appris  grer la physique? Je ne trouve pas grand chose  ce sujet...

----------


## ShadowTzu

pour la physique j'utilise le moteur Newton Game Dynamics.

----------


## Lightmaxime

Tu connais CodeSampler?

----------


## Pilout51

Salut , tout d'abord un grand merci pour ton moteur , il semble vraiment d'une grande simplicit  ::):  

Mais seulement voila pour n'importe quelle application lorsque je l'excute , elle cesse de fonctionn.

Je suis sous vista , je m'excuse d'avance face a mon noobisme  ::D:

----------


## ShadowTzu

bonjour,

tant donn que je suis sous XP je n'ai aucune ide de ton problme mais voici quelque piste:
- Mise  jours de DirectX

- lev l'option LoaderLock du debug (CTRL+ALT+E / Managed debugging Assistants / dcocher LoaderLock)

Au cas ou je vais voir si je n'ai pas oubli quelque chose  la compilation.

----------


## Pilout51

Merci pour ton aide , mais sa ne vient pas cela apparemment ::(: .

----------


## Ti-R

Juste pour ajouter, qu'il faut faire attention sur la mise  jour de DirectX
Car pour la version DirectX9, si on utilise la dernire mise  jour web de Microsoft, il n'update que DirectX10/11 sous Vista/7.
Donc il faut bien installer la version DirectX9 que semble bien pointer ShadowTzu ou tlcharger directement le dernier redistribuable DirectX9.

----------


## ShadowTzu

Bonjour,

Est-ce qu'une personne pourrait retester sous vista ou seven voir si le problme est corrig?

Merci!

----------


## afrique

Bonjour au developpeur de TZU3D,

J'ai test un peu votre moteur 3D (sous windows XP et vb.net et visual astudio 2008 standart edition) grace aux tutoriels et a la doc. Il parait sympa et simple d'utilisation de prime a bord et on est super content  ::mrgreen::  puis on dechante vu la petitesse de la doc  ::?:  . J'ai galer une nuit entiere pour que deux actors puissent avoir des animations independantes et pas tous la meme en meme temps alors qu'on leur a mis une variable en argument de set_animation() different... Enfin bon la c'est resolu, j'ai compris que actor.set_animation() doit se faire entre le render() de cet actor et le render() de l'actor precedent.

La j'ai un autre gros probleme concernant les animations et je me vois oblig de poster ici parce que je ne vois pas comment m'en sortir:
Quand j'ai un actor qui a une animation il bouge correctement. Mais quand j'en met deux, les deux actors bougent toujours et selon l'animation qui leur a t assign mais ils bougent deux fois plus vite. Alors que je n'ai pas chang l'animation_time. Si je met 3 actors, ca ca va trois fois plus vite...

 Mais cela est circoncit aux animations des perso. En effet quand en meme temps je les fais tourner sur eux meme avec la methode  actor.Rotate_StepY() ils ne tournent pas plus vite.

J'ai remarqu que ca ne se produisait que quand les actors etaient visibles. En effet si j'ai trois actors et seulement un dans mon champ de vision. Celui que je vois dans mon champ de vision va a la bonne vitesse. Mais ds que je bouge la camera et que je vois le deuxieme actor dans mon champ de vision, les deux actors que je vois (et certainement le troixieme meme si je ne le vois pas) se mettent a bouger deux fois plus vite. Et ds que je vois aussi le troisieme, la ils se mettent tous les trois a aller trois fois plus vite que la vitesse que j'ai definie.

Est ce un bug? y a t il un moyen de regler ca? J'ai fais des tests en redefinissant animation_time et en le divisant par le nombre d'actors que je vois et ca marche ils n'accelerent plus. Ca aurait pu regler mon probleme si j'etais sur de voir tous les acteurs en permanances dans mon champ de vision seulement si y en a un qui se cache et que je ne le sais pas, je ne peux pas redefinir l'animation_time et la ils se mettent a ralentir d'un coup.

Quand je lance Engine.Display_Console() ca m'affiche des infos sur les FPS... et je vois bien des champs qui ont des valeurs qui se voient multipli par deux a l'apparition d'un deuxieme actor dans mon champ de vision. Donc je me dis que si je devise l'animation_time par un de ces champs j'ai regl mon probleme. Seulement voila, je ne sais pas si c'est la bonne methode (peut etre ai je loup quelque chose et la vous etes le mieux plac pour me repondre). De plus je ne sais pas a quoi correspondant les champs qui s'affichent a part le [169 fps].

pouvez vous en face de chaque champ me dire a quoi il correspond et comment recuperer ces variables?
[77 dc/f] -> ?
[1 sc/f] -> ?
[~4 fl/f] ->
[0 tasks] -> ?
[24 res] -> ?
[28 st/f] -> ?
[6 ms/f] -> ?

Merci d'avance pour vos reponses parce que la je galere serieusement. D'ailleur si vous avez de la doc, des sources, des tutos, des choses comme ca mis a par les 8 tutos (dont le premier et le dernier ne marchent pas chez moi) je suis preneur (rien de commercial) ca m'aidera surement a y voir plus cair.

----------


## ShadowTzu

Bonjour,

Alors dj un grand merci pour ce retour, c'est bien un bug ou un oublie de ma part, pour le set_animation galement cela devait tre indpendant pour chaque class Actor, je vais regarder a aujourd'hui.

[77 dc/f] -> DrawCall per Frame: nombre d'infos envoy  la carte graphique par image
[1 sc/f] -> ShaderCall nombre d'appel  des shaders diffrent par image
[~4 fl/f] -> FillLight Nombre de lumire ayant boug ou qu'une entit atteins par une lumire ai boug
[0 tasks] -> Nombre de tache restante  effectuer (chargement de models, textures, etc..)
[24 res] -> Nombre de ressources (models, textures, shaders)
[28 st/f] -> State Call: Nombre de changement d'tat
[6 ms/f] -> temps coul entre chaque image

Tout ce qui est en rapport avec du mouvement doit tre multipli par le temps coul pour que cela soit indpendant du nombre d'image par seconde: valeur * Engine.Deltatime (Deltatime  = temps en seconde du genre 0.006)

Pour le dernier tuto, si le 7me fonctionne je vois le souci, je vais corriger a. (carte graphique non compatible avec du pixelshader 3.0 je peux le repasser en 2.0 *EDIT:* en faite non a viens pas de a).
Pour le premier tuto, c'est tonnant, je vais jeter un oeil si tout est ok.

Pour toute question ou besoin de nouvelle fonction sur Tzu3D n'hsitez pas  me contacter  cette adresse: shadowtzu gmail com

A plus tard.

----------


## afrique

Surtout merci a vous pour cette reponse rapide,

En fait avant que vous ne me repondiez j'ai reussi a resoudre mon probleme d'accroissement de vitesse en divisant X (X etant l'argument que je passais a actor.animation_time()) par Y. Y est le nombre d'actors visibles a l'ecran (en enumerant tous les actors existants et en ne prenant que ceux qui ont actor.IsVisible  true).

Pour ce qui est du tuto 1 il ne repond pas chez moi aux touches clavier/souris. Mais j'ai pas cherch plus avant.

Pour le tuto 8, il voit bien quand je clique avec la souris mais la lumiere n'eclaire rien, je suis donc devant un ecran noir.

Je ne pense pas avoir besoin de nouvelles fonctions tout de suite (je suis pas un pro en 3d meme si j'ai test directx, opengl, ogre, udk...) mais je reviendras certainement avec des questions prochainement.

a bientot

----------


## ShadowTzu

j'ai aussi rsolu le problme de mon cot, la logique de votre solution  est correct.

Le souci: lorsque l'on charge plusieurs fois la mme ressource, Tzu3D ne le fait qu'une seul fois en interne et la partage aux diffrente classes. 

Dans le cas des objets anim l'animation voulu est donn  cette ressources, Et comme il n'y en a qu'une partag tout les objets anim ont la mme animation.
Pareil pour le Temps de l'animation en cours, chaque classe Actor incrmente le temps pendant le rendu  la mme ressources: l*e temps est multipli par le nombre de rendu*.

La solution est de donner  chaque Actor une variable Anim et Temps afin de mettre  jours la ressource exactement  la bonne valeur du temps.

Je vais mettre  jours le Sdk, encore Merci  ::ccool:: 
*EDIT*: c'est fait!

----------


## afrique

Merci je testerai ca dans la nuit certainement. *EDIT: j'ai test. Il semblerait que cela fonctionne, mais j'en saurais plus demain  quand j'aurais fais une autre version de mon projet avec cette nouvelle dll. Merci d'avoir rajout un tuto (Tzu3D_demo_fps) mais chez moi il ne donne qu'un ecran noir. Certainement le meme probleme que sur le tuto8.*

Par contre vous avez pas modifi la date de derniere mise a jour sur votre site.

Une petite question: y a t il la possibilit de faire du cell shading?

----------


## ShadowTzu

Oui j'utilise aussi du deferred rendering avec la petite demo, quel est votre carte graphique?
Pour le cell shading techniquement oui, il suffit de savoir faire le shader, je rajouterais a prochainement si vous voulez.

----------


## afrique

Oui ca m'interresserait beaucoup que ce soit rajout si c'est possible. Ma carte graphique est une: ATI radeon HD 4670

----------


## afrique

J'ai modifi mon projet (j'ai enlev les bidouilles que j'avais mis pour que ca fonctionne correctement) et ca fonctionne bien avec cette nouvelle version de la dll (selon moi ces bugs sont bien corrigs).

Maintenant j'arrive bien a faire bouger des personnages ayant le meme actor (tiny_4anim.x) de maniere differentes et independement les uns des autres. mais pour cela il faut que les objets actors aient t instancis et loads avant que l'on rentre dans la boucle de rendu, visiblement.  Une fois dans la boucle de rendu, meme si je load de nouveaux actors il n'apparaissent pas. Je me suis peut etre tromp quelque part mais je voudrais savoir si c'est un probleme que vous connaissez, que vous avez aussi?

*EDIT: Pour etre sur que ca ne venait pas d'une probleme dans mon application, j'ai fais des modif a votre tuto "multi actor" en ajoutant un boutton sur la form1 avec ce code dedans et l'actor nouvellement cree ne s'affiche:

*

```

```

*

j'ai egalment fais les declarations suivantes dans la classe form1:

*

```

```

*

Dans form1_click() j'ai rajoute ca:

*

```

```

*

ET dans render3D() j'ai rajout ca uste avant le engine.render_end():

*

```

```

*

Et quand on lance l'application,l'actor ne s'affioche pas quand on clique sur le bouton.


Apres j'ai meme cr en plus un myActor2 en meme temps que la creation des autres actors et la quand je clique sur le bouton cr prcdement ca fait carrement disparaitre l'actor2 de l'ecran.*

----------


## ShadowTzu

il faut que chaque actors/meshs/textures/shaders aient un nom different
donc par exemple, remplacez par:


```
myActor2 = New Actor.TZActor("tiny_4anim.x", "myActor-" & Tzu_Engine.Debug.IndexManager.GetInstance.Get_IndexRND)
```

----------


## afrique

C'est le cas mais ca ne change rien. Dans mon appli les nom son increments et aucun actor n'a le meme. Et dans l'appli que vous avez faite (multi actor) et que j'ai modifi j'avais mis en random 1000 les noms (initialiss avec randomize).

----------


## ShadowTzu

ah! j'ai oubli de prciser qu'il faut charger la liste des taches avec Engine.Load (ou Scene.Load lorqu'on utilise une scene ou Engine.WaitLoad pour avoir un cran de chargement)

voila un exemple:
http://shadowtzu.free.fr/multi_actor2.zip

----------


## afrique

Yep merci. Avec engine.load() ca fonctionne nickel. Suffisait de le savoir  ::D: 

*EDIT: Que genre de format de fichier je peux passer a Actor.TZActor() a part des .x? parce qu'a part celui de l'exemple, tous les .x que je teste ne passent pas. des fichiers 3DS ca passerait?*

----------


## ShadowTzu

que des .x anim par des bones

----------


## afrique

Sauriez vous o je peux en trouver quelques un de maniere a tester differentes choses? J'ai du mal a en trouver par google et je ne connais pas les sites de reference en la matiere. 

Pour le moment des meshs non texturees et non animes j'arrive a les integrer. Mais impossible de charger un autre actor que celui (tiny) fourni dans vos tutos.

----------


## afrique

Je n'ai pas load la moiti des mesh dont je vais avoir besoin et le nombre de frames par secondes chute dramatiquement a 14/15fps. Et elle chute a 12 quand je fais en plus bouger la camera La lenteur ne vient pas du code que j'ai ecris (autre que du code destin a utiliser de la 3D). Si je lance le meme programme et que je ne lance pas la fonction qui cree mes mesh je suis environ a 300fps. Y a t il des moyens de rendre l'affichage plus rapide? Je n'ai pas une carte graphique qui est un foudre de guerre mais elle etait pas mal y a quelque annes et elle arrive encore bien a faire tourner de jeux recents qui comporte au moinsmille fois plus de mesh que je n'utilise. D'ailleur je met ci dessous l'ensemble des infos que le programme me donne pour vous faire une idee du peu de choses loades:



```

```

et ci dessous mon code qui va charger plein de fois la meme mesh et la disposer un peu partout sur mon terrain:



```

```

En plus de ca y a une camera, un terrain, 3 acteurs, et une skybox. Le fichier Corridor_Floor_A_01.tga ne fait que 193 Ko et le msh couloir_mur.x fait quand a lui 79 Ko et est loin d'etre chiad.

Des ides?

----------


## ShadowTzu

"Public objet_3D As Mesh.TZMesh"

l je ne vois qu'un seul mesh? tu utilise la mme classe? Le code est prvu pour une classe par mesh.
De plus si c'est pour afficher plusieurs meshs il vaut mieux utiliser une Scene (regarde demo_fps pour savoir comment l'utiliser). En gros il suffit de remplacer ton_mesh1.load par *myScene.Add(ton_mesh1)* puis une fois tout ajouter: *myScene.Load* et pour le rendu: *myScene.Render*.

Autre chose, si tu utilise la mme texture inutile de lui donner des noms different, ce qui donne par exemple:


```

```

----------


## afrique

Oui j'utilise la meme classe: la c'est une classe qui s'appelle Class_mur et qui me sert a afficher des murs de mes batiments. chaque objet mur est ainsi stoqu dans une collection appele murs. Le code que j'ai coll juste avant est le constructeur de cette classe (methode new).

La scene dont vous parlez n'est ce pas une collection? ca semble s'utiliser de la meme maniere que ma collection (murs). Et je cre un mur de cette maniere:



```

```

Et je l'affiche dans la fonction render3D (comme dans vos tutos):



```

```

Votre methode ressemble a ce que j'ai fais non? cela fera t il quand meme gagner du temps?

Pour ce qui est des textures j'avais deja fais ce que vous disiez mais les textures vont changer et je n'utiliserai plus deux ou trois fois la meme texture sur le meme mesh. De plus en testant comme vous disiez (en reutilisant objet_3D.Material(0).DiffuseMap), ca ne me fait pas gagner de temps substanciel (le nombre de fps n'avait pas chang).

----------


## ShadowTzu

En ce qui concerne objet_3D.Material(0).DiffuseMap = ... c'est juste une question de qualit du code, bien sur que cela change rien au rendu.

Et non la classe TZScene n'est pas une collection, en interne un octree est utilis ainsi que l'ordre des entits est class pour optimiser le rendu. Et dans la prochaine mise  jours l'occlusion culling (ne pas dessiner des meshs cachs par d'autres) sera ractiv, en bref TZScene est fait pour  ::):

----------


## afrique

Ah ok excellent je vais donc tester avec une scene alors. Merci.  ::ccool:: 

Et effectivement ne pas traiter les parties de mesh (ou les meshs entiere je ne sais pas) ca doit faire gagner pas mal de temps au final.

Quant a la methode Texture.TZTextureManager.GetInstance.Load() je ne savais pas si elle etait lourde en terme de consommation de temps CPU avant de tester. Il ne faut pas oublier que ce qui vous parait evident (parce que vous avez concu TZU3D) ne l'est pas forcement pour nous qui utilisons/testons. C'est d'ailleur aussi pour ca que je continue d'utiliser ce forum au lieu de votre mail (et j'espere que ca ne vous derange pas, c'etait deja sympa de me le donner). Pour que mes diffucults et leur resolution puissent servir a d'autres.

Pour le tuto sur le FPS chez moi il ne fonctionne pas et je ne me suis pas encore pench dessus pour comprendre pourquoi, ni n'ai meme regard comment il fonctionnait.

----------


## afrique

J'ai donc suivi vos conseils et ai utilis des scenes pour faire les murs et les sols de mes batiments. le resultat est en effet flagrant, j'ai gagn 40fps. je vais donc user et abuser des scenes.

Ca plus le fait que je me suis rendu compte que dans la boucle de rendu je testais des deplacements de meshs qui n'avaient pas a bouger comme les murs et les sols par exemple, bien au final ca me fait passer de 15fps a 95fps pour un affichage identique.

Sinon j'aurais quand meme deux petites questions:

1) Sous quelle licence est tzu3D? Les sources deviendront elle disponibles?
2) J'essaye, mais sans succes pour le moment, de faire un effet mirroir (comme un sol qui viendrait d'etre lav et qui refleterait les gens qui passent dessus de maniere attenue). une idee de comment je peux faire ca? je n'ai rien trouv dans la doc ni dans aucun des tutos qui parle de reflexion (a part pour water mais ce n'est pas une etendue d'eau que je veux faire). Il y a bien le tuto 8 des utilisation de GlossMap mais je ne crois pas que ca puisse m'aider pour ce que je veux faire en fait parce que je voudais qu'on distingue bien le reflet du personnage (un peu attenu).

----------


## ShadowTzu

1)  rflchir, mais de sur jamais les sources seront dispos.
2) il y a plusieurs mthode mais le principe est le mme que pour l'eau: il faut faire le rendu du reflet dans une texture puis utiliser cette texture sur la surface o l'on veut le reflet. C'est un peu compliqu je pense que je vais faire une classe pour simplifier a.

----------


## afrique

J'ai enfin (j'ai vraiment galr) reussi  creer des actor direct x texturs et anims et j'ai reussi a les loader dans mon programme.

Mais prenons l'exemple d'une animation. "Courrir" par exemple. C'est une animation que je peux vouloir intgrer autant dans un actor nomm "pompier" que dans un actor nomm "infirmiere". 

Et du coup je prefere avoir trois fichiers:
-pompier.x (sans anim)
-infirmiere.x (sans anim)
-courrir.jesaispasquoi (contenant mon animation)
Que deux fichiers:
-pompier.x (avec anim courrir)
-infirmiere.x (avec anim courrir)

Ma question est donc la suivante: Peut on loader un actor a partir d'un fichier directx (.x), sans qu'il contienne d'animation, et loader ses animations par le biais d'un autre fichier ou autre type de fichiers (si oui lequel/lesquels)?

Merci  ::):

----------


## ShadowTzu

oui c'est pratique mais malheureusement non, ce n'est pas possible avec Tzu3D

----------


## afrique

Et vous pensez que ce sera possible ou que c'est une fonctionnalit a oublier?

Le constructeur de la classe Actor.TZActor doit bien faire appel a une methode ou une fonction qui charge du fichier directx les animations. Ca ne devrait pas etre trop dur de laisser la possibilit de charger ces animations depuis un autre fichier. A moins que ce ne soit pas vous qui ayez programm le chargement des mesh, textures et animation des fichiers directx auquel cas je compendrai que ce ne soit pas faisable (facilement du moins).

----------


## ShadowTzu

A oubli pour le moment, plein de chose  penser pour que cela soit possible, comme la corrlation entre les bones du mesh et les bones de l'anime ou bien quel format de fichier pour l'anim.

----------


## afrique

Je comprend ca fait beaucoup de choses.

Mais ca pourrait faire beaucoup moins de choses a faire si on pouvait juste partager les anims entre actors. On ne le ferait que si on est sur que les squelettes coincident (laiss a la verification du developpeur de l'application utilisant tzu3D). Ainsi on pourrait par exemple charger deux actors differents (ex: pompier.x et infirmiere.x) respectivement dans actor1 et actor2, qui auraient chacun une animation differente (le pompier a juste l'animation "courrir" et l'infirmiere a juste l'animation "marcher"). Ainsi on devrait pouvoir faire: 



```
actor1.ajoute_une_animation(actor2.recupere_index_de_lanimatio_n(1), 2)
```

pour ajouter en animation n2 a actor1 (pompier) l'animation n1 de l'actor 2 (l'infirmiere). Du coup le pompier saurait courrir et marcher.

Dans la plupart des applis 3d on met souvent des humains. Qu'ils aient le meme squelette n'est pas choquant et ce genre de modif pourrait beaucoup aider sans qu'on ait besoin de quelque chose d'aussi compliqu que ce que vous avez decris plus haut... 

Maintenant, je ne suis pas un expert 3d ni du format de fichier directx et c'est peut etre pas realisable aussi facilement que je le dis. Dites moi ce que vous en pensez

----------


## afrique

Que pensez vous de mon idee?

----------


## ShadowTzu

faut que je test, voir ce que cela peut donner

----------


## Mat77164

Bonjour  tous,

Je viens de tlcharger la Dmo post sur une page antrieure. Je l'ai extraite, puis je lance le .exe : Tzu_ShowRoom a cess de fonctionner ...

Quelqu'un pourrait-il m'aider ?

----------


## ShadowTzu

cette demo date un peu, essayez plutt les tutos du sdk. Il me semble que cette demo ne marche pas avec un OS 64bits. Sinon cela peut venir de la carte graphique qui ne supporte pas les pixels/vertex shader 3.0

----------


## afrique

Bonjour,

J'ai vraiment eu du mal mais j'ai reussi a creer, animer et texturer un mesh exportable au format directx. Et jarrive a le loader dans mon jeu qui utilise tzu3D. 

J'ai une question relative a ca justement. Est il possible avec votre moteur d'attacher un mesh a un autre. Par exemple attacher un objet (une brosse a dent par exemple) a la main d'un personnage cre avec de bones et export en directx?

Pour un personnage immobile il n'y a pas besoin bien sur mais des qu'il se met a courrir (ou a se brosser les dents), les coordonnes de la main bougent et donc je ne sais plus o se trouve mon objet.

Je dis attacher (parce que j'ai lu que c'est comme ca qu'on faisait avec un autre moteur 3D) mais ca peut etre attach ou si vous aviez un moyen de connaitre l'emplacement de tel ou tel bone de mon suqelette de mon personnage et son orientation ca pourrait faire l'affaire aussi.

EDIT: [les methodes attach() de actor.tzactor et de mesh.tzmesh peut etre?]

Merci

----------


## afrique

Bonjour,


Je crois avoir trouv un BUG.


Je ne peux pas loader deux textures differentes sur le meme actor.tzactor.

Alors que je peux le faire sur un mesh.tzmesh sans probleme.

Un peu de code pour etre plus explicite:

Le code ci dessous ne charge que la premiere texture



```

```

Alors que le code ci dessous fonctionne correctement:



```

```


Merci de me dire ce qu'il en est svp.

----------


## ShadowTzu

effectivement, c'est bien un bug d au chargement multithread. C'est contournable en changeant la texture aprs que l'actor soit charg du style:



```

```

Et sinon oui je n'ai pas encore programm "l'attachement" d'un mesh  un actor. Alors que c'est possible avec les meshs statique.

----------


## afrique

J'ai donc test ce code en suivant vos conseils (je crois l'avoir fait en tout cas) :




```

```

Mais le resultat est le meme (a savoir une seule texture est charg pour tous les materiaux de l'actor)  ::(: 

J'ai test plusieures variantes et ca me fait toujours la meme chose. Il faut que je precise que je charge plusieurs actors (issus de fichiers .x differents) dans mon jeu et chacun a plusieures textures (que je nomme differement bien entendu).

----------


## afrique

attacher un mesh a un actor n'est pas possible.

mais attacher un actor a un mesh est il possible?

de meme qu'un actor a un actor?

Je peux egalement vous demander sur quoi vous bossez en ce moment?

----------


## ShadowTzu

oui c'est possible avec:



```

```


Par contre ne pas utiliser la methode "Set_Parent", il manque des bouts de code en interne.

Actuellement je suis en train de refaire l'occlusion culling (mais cela dconne pour le moment) et ajouter les collisions du terrain avec le moteur physique (Newton Game Dynamics, a marche mais chargement trop long pour les gros terrain).

----------


## afrique

Merci pour votre reponse.

J'aimerai cependant une petite precision concernant l'attache d'un actor a un actor. En effet un actor va certainement contenir differents bones. Du coup comment s'utilise la metode add_child pour attacher un bone quelconque d'un actor a un autre bone quelconque d'un autre actor? Ou peut etre faut il utiliser la methode attach dans ce cas?

Une quetre precision: quelle est la difference entre attache et add_child.


J'ai test un peu les methodes attach et add_child en pensant qu'en bougeant un des actors attach a un autre ca bougerait le second en meme temps que le premier mais ce n'est pas le cas. Est ce normal? Ai je fais quelque chose qui ne va pas?

----------


## ShadowTzu

J'ai tester et effectivement il y  un souci avec ces fonctions, cela sera corrig dans la prochaine mise  jours, de mme pour l'accs aux bones. (plus d'info ici http://tzu3d.1fr1.net/t1-developpement-en-cours)

----------


## cpcdos

Salut Shadow , C'est Sbastien Favier  ::):  ( avec Cpcdos )

Bein enfaite je voulais savoir pourquoi votre moteur ne fonctionne pas sur Windows x64 ? ( a cess de fonctionner )  ::calim2::   ::cry:: 
Pourtant il y a bien net framework et DirectX9 a jour !

Car j'ai test mes projets ( en dveloppement ) sur des PC  des potes : NoDestruct ,  TonTruck , CreuseMine , Forces zro , RIEN !!  ::cry:: 

Mme vos Tutorials  ::cry:: 

Puis pour la carte graphique , comme vous l'avez dis , il faut qu'il support le pixelshader 3.0 a il y a pas de problmes

Microsf01
Favier Sbastien 01
http://microsf01.fr.nf/
CopyrightMicrosf01

----------


## ShadowTzu

je n'ai aucun windows x64 sous la main, difficile de savoir d'o cela vient.
Mais je suppose que c'est parce que Tzu3D est compil en x86, alors il faut faire de mme pour tes jeux.

----------


## cpcdos

Ah daccord , mdr parceque c'est un peux bebete que les derniers ordinateurs les plus recents soit en x64 :/ , enfin bon merci  ::):

----------


## cpcdos

salut

excuse moi j'aimerai savoir comment augmenter la distance de vue dans lenvironnement 3d du moteur car quand le mesh s'eloingne il disparait  ::calim2::  ::cry:: 

merci  ::):

----------


## ShadowTzu

coucou,

tout simplement avec:


```
myCamera.ZFar = distance
```

du genre 


```
myCamera.ZFar = 10000
```

ou pour une distance infini:


```
myCamera.ZFar= -1
```

----------


## cpcdos

Daccord , Merci beaucoup  ::):

----------

