website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » Composite POC


Posté : 30-10-2012 09:45 icone du post

Hello
Réponse rapide et je mets la doc juste derrière

Bon CompositeTags marche de 2 manières:

1) Comme le blitter il utilise des surfaces rectangulaires (genre x y haut large) et les blitte avec transparence alpha dans une autre bitmap
==> j'ai jamais utilisé ce 1)

2) Il trace des triangles de forme quelconque venant d'une bitmap dans une autre bitmap avec transparence
C pratiquement identique à ce que fait OpenGL (ou Warp3D) avec
glVertexPointer(...);
glTexCoordPointer(...);
glDrawArrays(GL_TRIANGLES,0,TRInb*3);
Voir une doc GL si besoin....

C'est ce que j'utilise dans CompositePOC (en combinant 2 triangles pour tracer un rectangle) et me permet de les mettre dans N'IMPORTE quelle position
les tourner, les mettre de biais,le redimensionner etc....
Donc P contient le tableau avec les coordonnées x y des points des tris
TRInb le nombre de triangles (2 pour simuler un rectangle)
COMPVF_STW0_Present indique que les coordonnées de textures s t w sont fournies aussi (similaire au u v w d'OpenGL mais dans l'espace pixels et non pas 0.0 à 1.0 )
struct XYSTW_Vertex3D {
float x, y;
float s, t, w;
};
La technique 2 permet juste de positionner le rectangle dans n'importe quelle position ce qui est coolissime
( ou alors de tracer des tonnes de triangles 3D pour faire un rendu 3D comme fait Wazp3D )
Le plus simple est alors de reprendre du code qui marche à CompositePOC
Pour un rectangle normal on peut se contenter de la 1) mais je l'ai jamais utilisée...

Sur P96 j'ai fait comme l'exemple de Hans avec la boing ball = pas d'avis

Sur les opérateurs alpha voir ici
http://www.amiga-ng.org/prntopic.php?forum=4&topic=1286&post_id=17 251

Voir aussi dans
Aminet/wazp3D/soft3d_compositing.c

Alain

Edité par K-L : lien rendu cliquable (mettre un espace avant le lien)
Message édité par : K-L / 30-10-2012 10:15

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1399&forum=14