2012-03-12 3 views
1

Je travaille avec SharpGL et j'ai un modèle .3ds que je veux rendre dans mon programme. Je cherche un extrait de code ou un didacticiel pour me lancer. Editer: Travailler avec .NET pour créer une application WPF avec un contrôle SharpGL pour le dessin OpenGL.Importation de modèles de 3ds Max vers un programme SharpGL (OpenGL/C#)?

+0

Je pense que vous trouverez la plupart des 3DS C# chargeurs travailleront exclusivement avec D3D. Juste par intérêt, pourquoi utilisez-vous SharpGL et non SlimDX ou similaire? Ecrivez-vous pour Mono ou .NET? – Robinson

+0

Je travaille avec .NET. Je n'utilise pas DirectX car je ne l'ai pas utilisé auparavant. – bobble14988

Répondre

3

Vous devez écrire un importateur/lecteur/chargeur de format de fichier. Toi même. Ce qui est une douleur majeure. La bonne chose est que le format de fichier .3ds est bien connu et documented.

Cependant, la mauvaise chose est que le format .3ds est obsolète et ne stocke pas toutes les données dont l'application 3d moderne aurait besoin. Par exemple, il ne stocke pas les normales de surface et ne prend pas en charge les maillages skinnés. J'ai écrit 3ds lecteur avant, ce n'était pas très amusant. L'autre bonne chose est que quelqu'un a probablement écrit 3ds loader avant et vous pouvez le trouver en utilisant google. La mauvaise chose est que (par la loi de Murphy), ils l'ont probablement implémenté de telle façon que cela rendra complètement inutilisable votre code.

Donc normalement, il est recommandé d'utiliser un autre format bien documenté (et écrire le lecteur pour ce format à la place). Ou vous pouvez aller de l'avant et concevoir votre propre format pour les modèles qui prend en charge tout ce que vous voulez. Cependant, pour exporter vers ce format à partir de 3ds max, vous aurez besoin de votre propre plugin exportateur pour 3ds max (en utilisant 3ds max sdk) qui nécessite beaucoup de familiarité avec les mathématiques et la programmation 3D (en C++). J'ai déjà écrit plusieurs exportateurs auparavant, et c'est aussi une grande souffrance.

Donc, la solution la plus simple serait d'utiliser un format simple qui vous permet d'écrire facilement un chargeur. Quelque chose à base de texte, comme * .dxf. Ou vous pouvez rechercher un autre format de fichier de modèle 3D qui, heureusement, est livré avec une bibliothèque pour le charger. Par exemple, collada peut être l'un des candidats, bien que personnellement, je n'aime pas du tout le fait qu'il utilise XML.