Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 05, 2025 13:45

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Blending & Grakas
BeitragVerfasst: Sa Jan 25, 2003 13:15 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Hi Leute!
Ich habe ein Prob:
ich wollte ein Objekt (ein Tier) auf einer Landschaft abbilden. Dabei sollten die Ränder natürlich Transparent werden. Dazu habe ich volgende funktion genutzt:

Code:
  1.  
  2.  
  3. glenable(gl_blend);                
  4.  
  5. glBlendFunc(gl_src_color,gl_one);
  6.  
  7.  
  8.  
  9. glbindtexture(gl_texture_2d,tierecontrast[2]);
  10.  
  11. glbegin(gl_quads);
  12.  
  13. gltexcoord2f(0,0);
  14.  
  15. glvertex3f(40,-0.3,-43.5);
  16.  
  17.  
  18.  
  19. gltexcoord2f(1,0);
  20.  
  21. glvertex3f(40,-0.3,-41.5);
  22.  
  23.  
  24.  
  25. gltexcoord2f(1,1);
  26.  
  27. glvertex3f(40,1.7,-41.5);
  28.  
  29.  
  30.  
  31. gltexcoord2f(0,1);
  32.  
  33. glvertex3f(40,1.7,-43.5);
  34.  
  35. glend;
  36.  
  37.  
  38.  
  39. gldisable(gl_blend);
  40.  
  41.  
  42.  
  43. gldisable(gl_depth_test);
  44.  
  45. glenable(gl_blend);
  46.  
  47. glBlendFunc(gl_dst_color,gl_zero);
  48.  
  49.  
  50.  
  51. glbindtexture(gl_texture_2d,tieretex[2]);
  52.  
  53. glbegin(gl_quads);
  54.  
  55. gltexcoord2f(0,0);
  56.  
  57. glvertex3f(40,-0.3,-43.5);
  58.  
  59.  
  60.  
  61. gltexcoord2f(1,0);
  62.  
  63. glvertex3f(40,-0.3,-41.5);
  64.  
  65.  
  66.  
  67. gltexcoord2f(1,1);
  68.  
  69. glvertex3f(40,1.7,-41.5);
  70.  
  71.  
  72.  
  73. gltexcoord2f(0,1);
  74.  
  75. glvertex3f(40,1.7,-43.5);
  76.  
  77. glend;
  78.  
  79.  
  80.  
  81. gldisable(gl_blend);
  82.  
  83. glenable(gl_depth_test);  
  84.  
  85.  


Dabei ist "tierecontrast[2]" ein Gluint, welches eine reine Schwarz-Weiß-Textur enthält, welche Quasie einen Abdruck des Tieres enthält (da, wo das Tier hin soll, ist die Tex weiß, ansonsten schwarz). "tieretex[2]" ist das Tier an sich (weiß umrandet) .....
Wenn ich das genze nun bei mir zuhause starte (P3 500, TNT2 M64) , dann funzt alles sehr gut, wenn ich das Programm aber auf unseren Schulrechnern (/Notbooks) starte (P4 1800 M, Savantage 3), dann wird nur das "hinterste" Tier, welches ich zuerst render korrekt gezeichnet! Alle anderen Viecher haben eine schwarze Umrandung und scheinen halb durch!!!

Kann mir irgendwer sagen, wie es zu diesem Phänomen kommen kann? Es ist wirklich sehr wichtig, da ich dieses Projekt (3d- Filmchen über die Naturwissenschaftliche Schöpfungsgeschichte) in der Schule über nen Beamer vorstellen muss, was natürlich nicht funzt, wenn alles falsch dargestellt wird.
Vielen Dank schonmal!

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 25, 2003 13:34 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Hmm, vielleicht Einstellung der Treiber der GraKa anders, vielleicht veraltete OGL Version

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 25, 2003 18:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Möglicherweise unterstützt die Grafikkarte Blending nur mangelhaft - oder die OpenGL Treiber sind schlecht programmiert. Hab' da mit ATI Karten auch schon schlechte Erfahrungen gemacht.

Versuch doch einfach mal ein Pixelformat zu initialisieren, das im Softwaremodus läuft (Bit PFD_GENERIC_FORMAT in dwFlags gesetzt) - oder noch besser, lade die MesaGL DLLs (funktionieren auch im Softwaremodus und unterstützen bereits OpenGL 1.4) - wenns dann läuft, ist die Graka schuld, ansonsten hat dein Programm einen Fehler.

Wenn dir der Softwaremodus nicht zu langsam ist, kannst du dann ja den bei deiner Demo verwenden, ansonsten wirkt ein Treiberupdate auf dem Schulrechner evtl. Wunder.

Viel Spaß beim Programmieren,

Martin

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 25, 2003 18:57 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Ach ja, dein Blending Code kommt mir beim genaueren Hinsehen zumindest ein wenig umständlich vor -
warum verwendest du nicht einfach eine RGBA Textur, bei der du über den Alphakanal die durchsichtigen Teile ausmaskierst ???

nochmals

Martin

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]