je travaille sur un système embarqué en quelque sorte, et dans un certain temps libre, je voudrais tester ses capacités de dessin.
Le système en question est un microcontrôleur ARM Cortex M3 attaché à la carte EasyMX Stellaris. Et j'ai un petit écran TFT 320x240 :)
Maintenant, j'ai du temps libre chaque jour et je veux créer un cube rotatif. Micro C PRO for ARM ne dispose pas de capacités de dessin 3D, ce qui signifie qu'il doit être effectué par logiciel.
Dans le livre Introduction à la programmation de jeux 3D avec DirectX 10, je connais l'algèbre matricielle pour les transformations, mais c'est cool lorsque vous avez DirectX pour régler correctement la caméra.
Je pense que je pourrais faire tourner un objet 2D, mais comment puis-je utiliser un objet 3D?
Toutes les idées et exemples sont les bienvenus. Bien que je préfère les conseils. J'aimerais comprendre ça.
la source
Réponses:
Vous vous rendez compte qu'une caméra DirectX n'est que quelques transformations matricielles? Vous avez une transformation de matrice ModelView, Projection, puis Viewport à chaque sommet dans cet ordre pour changer les coordonnées 3D en coordonnées 2D.
Plus de détails sur la transformation le long du pipeline standard (je crois que DirectX et OpenGL fonctionnent tous les deux de la même manière).
Ensuite, vous pixellisez les triangles en fonction des emplacements 2D (qui résultent de vos transformations) du réseau de sommets 2D que vous avez maintenant. Cela peut se compliquer rapidement, mais l'utilisation du test PIT et la coloration complète de tout pixel qui entre en collision devraient être assez simples et efficaces dans votre cas.
L'autre façon de le faire et la plus simple est de créer un traceur de rayons. Démontez simplement le rayon en utilisant la matrice de transformation que vous souhaitez appliquer sur votre objet.
Je n'ai pas joué avec des trucs de bas niveau depuis un moment, donc je me souviens peut-être mal, mais l'une ou l'autre route ne devrait pas être trop difficile. Comprendre comment fonctionne le pipeline matériel et l'implémenter dans un logiciel ou écrire un ray tracer.
C'est ici que j'ai appris ce que je sais du pipeline graphique.
la source
À l'époque où le matériel 3D n'était pas disponible, nous devions construire nos propres moteurs 3D et rasteriseurs polygonaux. 3DICA est un excellent tutoriel expliquant toutes les bases d'un moteur logiciel 3D. Pour moi, les images n'apparaîtront pas dans Firefox, mais dans Internet Explorer, elles fonctionnent bien.
Les chapitres 2.1 et 3.1 devraient suffire à couvrir vos besoins, mais la lecture de l'ensemble du didacticiel devrait vous en apprendre beaucoup.
la source