website logo
Auteur
avatar
thellier

Forum » » Logiciels » » A propos de Hurrican/Wazp3D


Posté : 18-07-2012 11:31 icone du post

Salut

(je recopie ici un mail envoyé à Huno pour info...)

>l'eau dans Turrican qui a un problème

Ok j'ai vu les sources de Hurrican : à vrai dire je me casse pas = je dézippe tout les fichiers dans windows puis fais une recherche de fichiers contenant "glBlendFunc"
Bon y a que 3 blendfonctions utilisée dans Hurrican

// Renderstates für Sprites mit ColorKey setzen
void DirectGraphicsClass::SetColorKeyMode(void)
{

glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
BlendMode = COLORKEY_MODE;
}

// Renderstates für Sprites setzen, die komplett weiss gerendert werden
void DirectGraphicsClass::SetWhiteMode(void)
{
glBlendFunc( GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA );
BlendMode = WHITE_MODE;
}

// Renderstates für Sprites mit Additivem Alphablending setzen
void DirectGraphicsClass::SetAdditiveMode(void)
{
glBlendFunc( GL_SRC_ALPHA, GL_ONE );

BlendMode = ADDITIV_MODE;
}

La première est la fonction de base de transparence dans GL/wazp3D/compositing
C'est elle qui est utilisée pour l'eau
donc elle devrait marcher...

1) Sauf si la texture de l'eau n'a pas d'alpha ? Pb de chargement de textures (datatypes?)

2) Ou alors la texture water n'a pas d'alpha par elle-même mais subit un GL_MODULATE (=colorier une texture) avec une couleur transparente ?
Auquel cas c'est moi qui ai merdé car quoique le Compositing ne sache pas faire le GL_MODULATE j'avais quand même implémenté
de récuperer/appliquer l'alpha (l'alpha moyen des couleurs des triangles à tracer) puis je l'ai désactivé dans la dernière compil
(je sais plus pourquoi...) mais j'ai constaté depuis que FPSE était devenu moins beau... Donc c'étais une erreur
C'est pas évident car j'utilise que 3 fonctions de transparence du Compositing pour émuler les 156 BlendModes possibles du glBlendFunc() d'OpenGL

BREF l'eau a-t-elle aussi des problèmes avec le vrai WaRp3D ?

>il y a aussi le sélecteur de menu que nous ne voyons pas (on y va au fun )
Oui mais ça on peut pas faire grand-chose :-/
Je pense que le menu subit un GL_MODULATE (=colorier une texture) et le Compositing sait pas faire : Hans me l'a confirmé
Dans Wazp3D j'émule le GL_MODULATE en retracant par-dessus les triangles avec une couleur transparente mais uniquement
pour les textures solides (on peut voir cet effet sur le fusil dans quake ou dans microbe3D)car sinon pour du texte ça trace un rectangle coloré tout autour = pas trop moche dans Hurrican mais affreux dans GleXcess

Alain

PS:
A noter que la 3éme GL_SRC_ALPHA, GL_ONE doit en fait devenir
GL_ONE,GL_ONE pour les textures n'ayant pas d'alpha donc devenir la fonction de base additive dans GL/wazp3D
En Compositing je l'ai convertie en CompositeTags(COMPOSITE_Plus,...

Quand à la function GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA j'ai du mal à visualiser ce que cela fait faudra que je la teste dans Cow3D
Déjà le GL_DST_ALPHA ne marchera que sur écran 32 bits :-/
Mais C possible que ce soit une de ces "conneries qui marchent quand même"








Message édité par : Elwood / 18-07-2012 11:52

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