#0 

28-07-2007 12:52:03

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

Apprenant pas mal sur le tas et avec quelques bouquins, j'ai quelques lacunes pour comprendre certains aspects du dev dans irrlicht. Ma question porte d'ailleurs principalement là dessus et sur le fait que j'ai tres peu d'xp en C++.

J'arrive a un moment ou je me dis que coder mon propre systeme de caméra devient urgent (j'arrive pas a me faire a la Maya, et la FPS n'est pas adaptée a ce que je veux faire). J'en viens donc a me dire qu'il me faudra faire une caméra bien a moi. Le feeling que je souhaiterai retrouver est celui de la camera de Warcraft III, qui serait adaptée au couple toolset/jeu sur lequel je suis en train de bosser.

Me voilà donc a parcourir le forum pour choper des snippets de camera, a voir comment ça fonctionne, tout ça tout ça. "Tout ça c'est bien joli" me dis je (oui parce que je me parle a moi meme souvent smile ) "mais comment je vais m'en demmerder maintenant que j'ai du code exploitable ?". Alors voilà une petite batterie de questions, dont les réponses sont surement triviales ou tres simples (mais bon, quand ça veut pas percuter, je percute pas hmm )

Quelles sont mes alternatives pour implémenter ma caméra perso ?

>> dois-je implémenter la caméra en C++, recompiler irrlicht avec pour disposer des addCamSceneNodePerso() et autres joyeuseté, puis modifier le wrapper pour y acceder en C# ?
>> Faut il seulement faire une manip d'informagicien pour que ma cam C++ soit "utilisée" par irrlicht deja compilé (pas de recomp) puis faire les modifs du wrapper ?
>> Faire une manip d'archinformagicien (encore plus fort que l'informagicien) pour implémenter la cam en C# et profiter de la souplesse des dll et des bidules qui clignotent ?
>> D : la réponse D


merci par avance de vos réponses, indications, etc.

Dernière modification par Ravine (28-07-2007 12:53:13)

Hors ligne


#1 

28-07-2007 13:16:12

clemsye
Petit nouveau
Date d'inscription: 26-07-2007
Messages: 6

Je connais pas trés bien le moteur 3d irrlicht.netcp mais ce que tu veux faire ne nécéssite pas d'être archipyroinformaticien.Je crois qu'il faut que tu fasses une classe dérivant de CameraSceneNode par exemple STRCameraSceneNodepuis que tu l'instancie grâce au SceneManager.
(enfin j'esperere que c'est comme  ca)

Dernière modification par clemsye (28-07-2007 13:25:25)

Hors ligne


#2 

28-07-2007 13:37:13

clemsye
Petit nouveau
Date d'inscription: 26-07-2007
Messages: 6

Non je me suis trompé ce n'est pas comme ca du tout,J'ai un lien expliquant comment il faut faire mais c'est en c++:
http://khayyam.developpez.com/articles/ … icht/#LI-1

En espérant que cela puisse te servir.

Dernière modification par clemsye (28-07-2007 13:37:44)

Hors ligne


#3 

28-07-2007 14:52:39

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

je pensais bien a l'heritage dans ma tete, mais j'attends l'avis d'autres personnes avant de me lancer (DeusXL, si tu m'entends smile ).

En tout cas, merci pour le lien. J'avais pas été voir cette rubrique depuis un moment, et je me rends compte que j'ai eu tort. Y'a de plus en plus de matos, et j'ai de la lecture en retard.

Hors ligne


#4 

28-07-2007 17:39:48

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

Je poste en fait ce message parce que j'ai deja recherché sur les forums irrlicht.netCp et sur le forum off, sans succes. Qui plus est, sur #irrlicht, je n'ai pas réussi d'avoir de réponse claire de la part des intervenant, l'un déclarant que je devais tout me retaper, l'autre non, que les interfaces ne sont pas accessibles sur le wrapper blablabla. Donc si vous avez plus d'infos, je suis preneur.

Hors ligne


#5 

28-07-2007 21:36:53

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

C'est exactement comme un custom scene node puisque... c'en est un.

Au lieu de dériver de ISceneNode tu dois dériver de ICameraSceneNode (pas vérifié que cette interface soit bien dans IrrlichtNetCP.Inheritable, mais le contraire m'étonnerai)

http://irrlichtnetcp.sourceforge.net/in … cene_Nodes

Au pire tu as beaucoup d'exemples de caméra de RTS en C++ sur le forum officiel.

Hors ligne


#6 

29-07-2007 19:25:26

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

Petit essai rapide, pas d'interface ICameraSceneNode de dispo. Mais comme DeusXL a pensé le NetCp dans l'optique de pouvoir utiliser les CustomSceneNode, peut etre que par là...

Je testerai surement plus tard. Si vous avez un eclair de génie pendant ce temps, je vous en prie.

*pouf edit reflexion*

Mais je pense a ça là pouf pouf comme ça. Je suis pas obligé de hériter d'une interface non ? Je peux tout a fait hériter d'une classe en théorie... bon, reste plus qu'a checker les portées des membres de CameraSceneNode, et je reviens.

Dernière modification par Ravine (29-07-2007 19:40:40)

Hors ligne


#7 

29-07-2007 23:13:54

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

A première vue, hériter de CameraSceneNode ne posera pas de problèmes.

Hors ligne


#8 

31-07-2007 21:42:03

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

Alors, des news depuis mes derniers essais.

On ne peut pas hériter directement de CameraSceneNode. Je vais citer directement Lester du forum .Net CP qui explique aça bien mieux que moi. (pour info, on ne peut pas directement hériter des classes car leurs constructeurs necessitent un pointeur. Si j'ai bien tout pigé, ça vient de l'utilisation des factory (implémentation du pattern ?). Je vais m'arreter de causer technique, vu que ça dépasse mes compétences a l'heure actuelle.

Hell you're right! The scenenode classes are just like sealed for us since they are hardly tied to the native functions in IrrlichtW.dll. The only class you can inherit from is ISceneNode. Thus you can wrap over any scenenodes you need with the custom scene node thanks to the Irrlicht's architecture. For example you can create a custom billboard scene node, which creates a standard billboard internally.


le post ici, dernier post.

Me voilà donc parti sur les CustomSceneNode (décidement, merci Aranoth smile ) et heriter de ISceneNode. Bon, me reste encore du taf. J'y retourne donc smile.

Hors ligne


#9 

03-08-2007 01:47:32

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

Ah bah ouais, le IntPtr...

M'enfin, ré implémenter toute la CameraSceneNode c'est...

Pour te simplifier la tache tu peux faire un CustomSceneNode contenant une CameraSceneNode qu'il mettrait à jour de lui même.

Du genre :

Code:

public class MyCameraSceneNode : ISceneNode
{
    private CameraSceneNode Camera = null;

}

Hors ligne


#10 

03-08-2007 09:45:33

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

C'est ce que j'ai fait. J'ai arpenté le forum du .NetCP et j'ai utilisé la méthode décrite par Lester dans le post que je linkais un peu plus haut. C'est pas la solution qui parait evidente de prime abord, mais ça fonctionne, et je m'en sors pas trop mal pour l'instant avec. Bien evidement je ne réimplémente pas l'intégralité de la CamSceneNode, mais juste ce dont j'ai besoin. smile

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
103 invités en ligne
Aucun membre connecté
RSS Feed