Précédent   Forum des professionnels en informatique > Applications > Développement 2D, 3D et Jeux > API graphiques > OpenGL
OpenGL Forum d'entraide sur le développement en OpenGL. Avant de poster -> FAQ OpenGL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2008, 16h32   #21
Membre Expert
 
Homme Julian Ibarz
Ingénieur développement logiciels
Inscription : avril 2006
Messages : 449
Détails du profil
Informations personnelles :
Nom : Homme Julian Ibarz
Âge : 26
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2006
Messages : 449
Points : 1 639
Points : 1 639
passe au debug alors, regarde bien que ta premiere face est bien affichée, ensuite regarde que ta deuxieme l'est aussi. Peux-tu me faire des screens de rendu de chaque passe ?
__________________
Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
Profils : G+ - LinkedIn
TanEk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2008, 21h43   #22
Membre du Club
 
Inscription : mars 2002
Messages : 115
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 115
Points : 59
Points : 59
Envoyer un message via ICQ à GoldenEye
Bon alors voilà les screenshots c'est assez intéressant
Je dispose de
- l'image réelle:
http://rapidshare.com/files/14694854...nReel.PNG.html

- le color picking avant que je trafique avec le stencil & l'alpha (et ça marchait):
http://rapidshare.com/files/14694888...ormal.PNG.html

- Le color picking après la tambouille stencil + alpha dont le code est plus haut :
http://rapidshare.com/files/14694906..._Test.PNG.html
C'est marrant des éléments ont disparu...

- Je mets donc aussi en ligne ce qui est dessiné dans le stencil (j'enlève le colorMask à FALSE et je ne redessine pas les rectangles de picking
Je dois avouer que je comprends pas pourquoi mes ailes de moulin ont disparu

- A tout hasard je mets en ligne la texture de l'aile de moulin pour qu'on soit bien d'accord que le canal alpha est bien mis dans le png
http://rapidshare.com/files/146949869/Moulin00.png.html

Voilà si tu as une idée ?
GoldenEye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2008, 00h40   #23
Membre Expert
 
Homme Julian Ibarz
Ingénieur développement logiciels
Inscription : avril 2006
Messages : 449
Détails du profil
Informations personnelles :
Nom : Homme Julian Ibarz
Âge : 26
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2006
Messages : 449
Points : 1 639
Points : 1 639
En fait la technique du stencil est mauvaise... Pour que ça marche il ne faut pas que les objets se chevauchent or c'est justement dans ce cas particulier que ça nous intéresse... Car imagine que tu dessines un objet derriere les ailes de ton moulin et bien il va remplir le stencil de 1 et quand tu dessineras le moulin et bien il croira qu'il peut alors qu'il ne peut pas (j'explique très mal mais je pense que t'as compris le problème ).

Donc en fait il n'y a pas de solution miracle à part faire comme je t'ai dis au début (générer une texture d'identifiant pour les objets avec des trous, ce qui prend deux fois plus de mémoire). Sinon pour ton problème il doit venir en dehors des lignes de code que tu m'as filé car je ne vois pas de réel problème dans tes lignes.

Normalement il viendrait dans la partie du code qui affiche tes objets en transparent (tu dois sûrement activer un état opengl ou un truc comme ça).

Désolé de ne pas t'aider plus que ça...
__________________
Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
Profils : G+ - LinkedIn
TanEk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2008, 22h57   #24
Membre du Club
 
Inscription : mars 2002
Messages : 115
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 115
Points : 59
Points : 59
Envoyer un message via ICQ à GoldenEye
je vois ce que tu veux dire
Si on a un objet derrière le moulin (ou plus précisément derrière une zone transparente du moulin), effectivement le stencil va passer à 1 et mon moulin sera affiché à cet endroit alors que je n'en ai pas envie
Hors de question de me rabattre sur la solution proposée bien plus haut car j'ai 300 textures qui se baladent dans l'éditeur de cartes de jeu...
Donc c'est mort
Merci en tout cas de ton aide sur ce sujet
GoldenEye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2008, 23h52   #25
Expert Confirmé
 
Avatar de shenron666
 
Homme Tony BAYART
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 2 198
Détails du profil
Informations personnelles :
Nom : Homme Tony BAYART
Âge : 35
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 2 198
Points : 3 560
Points : 3 560
Citation:
Envoyé par TanEk Voir le message
En quoi l'alpha test fausse le picking shenron ? Je veux bien te croire lorsque tu dis qu'il faut le supprimer pour que tout fonctionne bien mais pourquoi ? Tu n'as toujours pas fourni d'arguments qui contredise la possibilité de son utilisation, enfin de ce que j'ai compris .
en fait je pense que l'alpha test peut fonctionner, mais comme je l'ai dit le problème c'est la modulation de la texture
le problème que j'ai rencontré avec les ATI, c'est qu'elles utilisent l'alpha blending pour faire de l'alpha test, du coup le pixel passe par la phase de modulation et la couleur n'est pas celle qu'on voulait

GoldenEye, dans tes tests, est-ce que tu as bien désactivé le dithering ?
__________________
Je ne répondrai à aucune question en MP

Tutoriels OpenGL
shenron666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 00h18   #26
Membre Expert
 
Homme Julian Ibarz
Ingénieur développement logiciels
Inscription : avril 2006
Messages : 449
Détails du profil
Informations personnelles :
Nom : Homme Julian Ibarz
Âge : 26
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2006
Messages : 449
Points : 1 639
Points : 1 639
Citation:
Envoyé par shenron666 Voir le message
en fait je pense que l'alpha test peut fonctionner, mais comme je l'ai dit le problème c'est la modulation de la texture
le problème que j'ai rencontré avec les ATI, c'est qu'elles utilisent l'alpha blending pour faire de l'alpha test, du coup le pixel passe par la phase de modulation et la couleur n'est pas celle qu'on voulait
Comment une texture peut être modulée si le blending est désactivé ? C'est quand même deux choses complètement différentes le blending et l'alpha test non ?
__________________
Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
Profils : G+ - LinkedIn
TanEk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 15h39   #27
Expert Confirmé
 
Avatar de shenron666
 
Homme Tony BAYART
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 2 198
Détails du profil
Informations personnelles :
Nom : Homme Tony BAYART
Âge : 35
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 2 198
Points : 3 560
Points : 3 560
vas dire ça à ATI
la seule différence entre un alpha blending et un alpha test c'est que l'alpha test ne présente que 2 modulation : 0.0 et 1.0
le blending permet de moduler avec des valeurs intermédiaires

pour le color picking, il faut vraiment travailler avec des valeurs exactes
si on arrive à conserver les valeurs exactes après un alpha test alors ça marchera
si l'implémentation des drivers est telle que la couleur est faussée par l'alpha test, tu l'as dans le baba

en bref, il faut tester, mais perso j'y crois pas trop
__________________
Je ne répondrai à aucune question en MP

Tutoriels OpenGL
shenron666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 20h01   #28
Membre du Club
 
Inscription : mars 2002
Messages : 115
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 115
Points : 59
Points : 59
Envoyer un message via ICQ à GoldenEye
GlDisable(GL_DITHER) n'a rien changé
Je m'aperçois que Shenron a raison, j'ai comme l'impression que mes petites images disparaissent du stencil dès lors que le blending est activé...
Moralité ATI c'est pourri
GoldenEye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 19h24   #29
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 3 414
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 42
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 3 414
Points : 6 711
Points : 6 711
Bonjour,

je me permet de remonter ce vieux post car j'ai un problème qui semble tout à fait similaire sur une ATI Mobility Radeon HD 5650

je fais un rendu de simples triangles sans texture, sans trou, etc...et pas moyen d'avoir des couleurs vraies

le code est en Delphi mais vous pourrez sans doute le comprendre

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
  glVertexPointer(3, GL_FLOAT, 0, FVertices[0]);
  glEnableClientState(GL_VERTEX_ARRAY);
 
  glDisable(GL_CULL_FACE);
 
  glDisable(GL_FOG);
  glDisable(GL_TEXTURE_2D);
  glDisable(GL_LIGHTING);
  glDisable(GL_LINE_STIPPLE);
  glDisable(GL_POLYGON_STIPPLE);
  glDisable(GL_ALPHA_TEST);
  glDisable(GL_DITHER);
  glDisable(GL_LINE_SMOOTH);
  glDisable(GL_BLEND);
  glShadeModel(GL_FLAT);
 
  glBegin(GL_TRIANGLES);
  for i := 0 to Length(FTriangles) - 1 do
  begin
    glColor4ub(i and $ff, (i shr 8) and 255, (i shr 16) and 255, 0);
    with FTriangles[i] do
    begin
      glArrayElement(a);
      glArrayElement(b);
      glArrayElement(c);
    end;
  end;
  glEnd;
je récupère ce rendu par un glReadPixels() mais les bords restent antialiasés !

j'ai bien un fond blanc (-1), des triangles de couleurs 0, 1, 2 ... mais sur les bords j'ai des couleurs comme #BFBFC0 #404042 pour passer du blanc au noir

que me reste-il pour désactiver le traitement ? un Shader ?

EDIT: ARF !

je viens de tester avec un Shader j'ai le même résultat !

Code :
1
2
3
4
5
 
uniform vec4 ObjectID;
void main() {
  gl_FragColor = ObjectID;
}
avec glUniform4f je peux définir la couleur de l'objet, mais le résultat est toujours antialiasé !?

c'est quoi ce délire ?!

EDIT: ok, c'est normal, le Dither se fait après le Fragment Shader...et d'après ce que je lis ATI force un Dither x2 minimum...les cons !
__________________
Developpez.com: Mes articles
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice sous Delphi
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web