tutoriaux 3D - C - Programmation
Marsh Posté le 30-04-2007 à 18:05:35
Voir http://www.codeguru.com/Cpp/G-M/mu [...] .php/c4727
C'est un article intitulé Create 3D Graphics without OpenGL or DirectX avec le code source.
Marsh Posté le 01-05-2007 à 19:21:38
cad ?
faire une routine de triangle avec mapping de texture ?
Marsh Posté le 02-05-2007 à 19:04:49
ReplyMarsh Posté le 03-05-2007 à 11:48:02
t'arrive à quelque chose ou pas ? (on peut te faire un petit topo)
Marsh Posté le 03-05-2007 à 11:59:28
rvb78 a écrit : je désire savoir mappé un triangle ou un plutot un quadrilatère |
Si pas en opengl, il te faut (à la main s'entend)
- une librairie pour écrire en mémoire vidéo, pixel par pixel.
- un algo de tracage de ligne rapide (bresenham ou un truc comme ça)
- capter comment on balaye un triangle
- et lire en même temps un bitmap et faire la relation entre ta position dans le triangle et dans le triangle de la texture par rapport aux coordonnées de texture de ce triangle.
bon courage.
Marsh Posté le 03-05-2007 à 14:02:13
bin en fait faut juste s'imposer un format d'affichage et un format de bitmap (on peut commençer par du 8bits palettisé).
deux pointeurs (un sur le framebuffer, un sur le bitmap), deux paires de dimensions et zou tu fais ta routine en C.
enfin vga old skool kwoi
Marsh Posté le 07-05-2007 à 23:02:10
C bon j arrive a faire deux trois trucs. C est le "faire la relation entre ta position dans le triangle et dans le triangle de la texture par rapport aux coordonnées de texture de ce triangle" que je ne capte pas.
Marsh Posté le 08-05-2007 à 12:50:22
tu as ton triangle, avec une paire de coordonnées U,V par sommet (vertex)
en ignorant l'aspect 3D (mise en persperspective et correction de perspective)
tu traces ton triangle de haut en bas, par ligne horizontale. (deux cas: le sommet "millieu" est à gauche ou à droite de la droite qui rejoint le sommet "haut" et "bas" ).
tu "tries" tes points:
le plus haut: point 1
le plus bas: point 3
celui qui est au milieu: point 2
pour chaque segments, tu calcules tes pentes (pour avoir le x gauche et droit de chaque segment horizontal)
symétriquement, tu fais tes pentes U & V / delta Y de chaque segment, pour faire progresser tes coordonnées U,V dans la texture à échantillonner.
du coup tu as un couple U,V pour chaque coté gauche/droit de la ligne horizontale à traçer. tu refais un gradient (en fait y'a des raccourcis maths pour le faire une fois pour toute je crois) par ligne horizontale.
tu traçes ta ligne horizontale en faisant progresser ton couple U,V, et tu échantillonne dans la texture et voilà.
après:
- a toi de trouver comment ne pas te faire piéger avec des y2==y3, autres cas tordus, et faire un clipping qui marche.
ensuite, tout ce que je t'ai dit est faux sur l'interpolation U,V, car dû à la projection tout est proportionnel à 1/Z, il faut donc interpoler 1/Z, U/Z, V/Z, le long du triangle (et déterminer par pixel Z, et donc U & V corrigés) pour avoir un effet de perspective visuellement correct.
Marsh Posté le 30-04-2007 à 15:26:27
Bonjour, je cherche des tutoraiux 3D afin de faire tourner un carré avec texture mapping. JE cherche un truc en C et pas OpenGL please. QQ un a t il des adresses interessantes ?