Weisses Nix mit OpenGl unter Vista

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Holzchopf

Meisterpacker

Betreff: Weisses Nix mit OpenGl unter Vista

BeitragDi, Jan 27, 2009 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Crying or Very sad

Tach Leudde!

Folgendes: An meinem Laptop (Vista, Grafikchip Intel Express 965) krieg ich partout OpenGL in BMax nicht anständig hin. Das seltsame: Es betrifft nur 2D-Befehle, die MiniB3D läuft. Führe ich aber ein Beispielcode aus, in dem DrawText vorkommt, so wird dieser Text nur als Kombination von texturierten Rechtecken angezeigt und somit nicht lesbar.
Beispielbild, das oben Links wär der Text.

Genausowenig funktioniert DrawText unter OpenGL sonstwo. Führe ich zum Beispiel das Example zu SetGraphicsDriver aus, so hab ich einfach nur weisse Blöcke, dort wo eigentlich Text sein müsste.
Beispielbild

Und ja, das betrifft nicht nur DrawText, sondern auch alles andere... bei DrawImage zB werden einfach alle Bildchen als weisse Klötze hingemalt.

Hat jemand ne Ahnung woran das liegen könnte? Die neusten Treiber und BlitzMaxVersion sind natürlich installiert.

Edit (28.05.2009):
Update auf BlitzMax 1.33 und die damit zwangsmässig verbundene Komplettneuinstallation BlitzMaxs behoben das Problem...
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
  • Zuletzt bearbeitet von Holzchopf am Do, Mai 28, 2009 20:20, insgesamt einmal bearbeitet

Xaymar

ehemals "Cgamer"

BeitragDi, Jan 27, 2009 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
kann es sein das dir einfach die OpenGL unterstützung für 2D fehlt? Check mal ob die Graka mindestens OpenGL 1.3.1 hat mit 1.3.0 hatte ich die Probleme auch
Warbseite

Holzchopf

Meisterpacker

BeitragDi, Jan 27, 2009 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab 1.5.0 Confused
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

kog

BeitragMi, Jan 28, 2009 0:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja für 2D befehle werden auch normale 3D befehle verwendet.

ozzi789

BeitragMi, Jan 28, 2009 8:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Vlt hilft dir ein neuer Graka-Treiber
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Xaymar

ehemals "Cgamer"

BeitragMi, Jan 28, 2009 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
kog hat Folgendes geschrieben:
Naja für 2D befehle werden auch normale 3D befehle verwendet.


und wie wird 3D gerendert? richtig mit 2D.

1.5.0... hmm schon seltsam...
Warbseite

Jan_

Ehemaliger Admin

BeitragMi, Jan 28, 2009 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
So, habe es auch probiert.

Code: [AUSKLAPPEN]
SetGraphicsDriver GLMax2DDriver()

Graphics 640,480
DrawText "Max2D graphics, Hit Key",0,0
Flip
WaitKey
EndGraphics

SetGraphicsDriver GLGraphicsDriver()
Graphics 640,480
glClear GL_COLOR_BUFFER_BIT
GLDrawText "RAW' OpenGL Graphics! Hit key again",0,0
Flip
WaitKey


Bei mir funktioniert es.
ATI Grafikkarte.

Aber ich kenne es von meiner Alten Nvidia, da gab es das selbe, und war ein Treiberproblem.
Habe es damals mit dem Omegatreibern gelöst, aber die gibt es ja nicht für Intel Grafikkarten.
between angels and insects
 

Ava

Gast

BeitragMi, Jan 28, 2009 15:08
Antworten mit Zitat
Das Problem liegt weder an der Grafikkarte, noch am Treiber, noch an Vista. Ich bin mir nicht sicher, ob der glGraphics-Treiber von Blitzmax DrawText unterstützt (der glMax2D-Treiber sollte es aber). Die Ursache des Darstellungsfehler ist - wenn ich mich recht erinnere - ein "falsches" Blend-Setting, dass die Pixmaps der Font-Glyphen ohne Beachtung des Alphakanals nach OpenGL überträgt.

[/EDIT] Ich kann ein Treiberproblem natürlich nicht _völlig_ ausschliessen. Wink Aber ich hatte dieses Problem bei der Entwicklung meiner GFX-Engine auch öfters, von daher nehme ich an, dass es eher ein "Benutzer-Problem" ist.
  • Zuletzt bearbeitet von Ava am Mi, Jan 28, 2009 15:11, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragMi, Jan 28, 2009 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber, Ava, bei mir klappts...
between angels and insects
 

Ava

Gast

BeitragMi, Jan 28, 2009 15:12
Antworten mit Zitat
Jap, mit GLDRAWTEXT, dass ist ja was anderes, als DRAWTEXT! Very Happy *g* Wie auch immer, wollte nur meine persönlichen Erfahrungen mit diesem Problem weitergeben. ^^

Jan_

Ehemaliger Admin

BeitragMi, Jan 28, 2009 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, shcon ok, aber das hatte er ja auch.
kenne das aber auch mit dem Blendmode.
between angels and insects
 

Ava

Gast

BeitragMi, Jan 28, 2009 15:24
Antworten mit Zitat
...das MiniB3D bei ihm läuft, bestätigt ansich meine Annahme, dass es kein grundlegendes (Harware) Problem sein wird...

Holzchopf

Meisterpacker

BeitragMi, Jan 28, 2009 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
kog hat Folgendes geschrieben:
Naja für 2D befehle werden auch normale 3D befehle verwendet.

Offenbar nicht, aber mit diesem Ansatz könnte ich wenigstens ein Work-Around für mein Problemchen schreiben.

ozzi789 hat Folgendes geschrieben:
Vlt hilft dir ein neuer Graka-Treiber

Naja, so fit bin ich in BMax halt noch nicht, dass ich mir selber alternative Treiber schreiben könnte =(

Ava, es könnte ja sein, dass Cgamer recht hat und meiner Hardware einfach der 2D-Support fehlt. (Wieso sollte man so etwas altes wie 2D-Grafik auch noch unterstützen? Mindestens 3D muss es sein, alles andere hat keine Existenzberechtigung und wird auch nicht implementiert. So siehts aus! Wink ) Was aber dennoch ziemlich seltsam wäre, schliesslich habe ich bei meiner Google-Such aktion etliche Artikel gefunden, in der Intel gross über den OpenGL-Support berichtete Confused

Und verschiedene Blendmodes habe ich auch schon ausprobiert, nützt alles nix Sad (btw, kann es sein, dass dieses GL*-Modul noch nicht ganz ausgereift ist?)

Ich such jetzt nochmal im englischen Forum... Vielleicht werde ich dort fündig. Aber falls hier jemand DIE Lösung hat, bitte her damit Smile

mFg
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Valnar

BeitragMi, Jan 28, 2009 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Holzchopf hat Folgendes geschrieben:
ozzi789 hat Folgendes geschrieben:
Vlt hilft dir ein neuer Graka-Treiber
Naja, so fit bin ich in BMax halt noch nicht, dass ich mir selber alternative Treiber schreiben könnte =(

Naja versuch doch einfach mal mit einem Handelsüblichen Treiber zu Installieren.
Wenn es verscheidene Arten von Treibern gibt, hilft es meist alle durchzutesten.
 

Ava

Gast

BeitragMi, Jan 28, 2009 18:06
Antworten mit Zitat
Das GL-Modul ist aufgrund seiner Struktur ansich völlig nutzlos. Rolling Eyes Zumindest, wenn man vorhat es als einfache Basis für OpenGL-Befehle zu verwenden ... und nicht nur dafür, dass dann "halt OpenGL läuft". ^^

Das SetBlend in BMax meinte ich mit dem "Blend-Problem" übrigens nicht - das war auf eine "tiefere Ebene" bezogen!

OpenGL besitzt übrigens keine "reinen 2D" Funktionen! wenn man vom Pixeltransfer in 2D Buffer absieht, was bei "3D" Funktionen aber auch nicht anders abgearbeitet wird ... ein "reiner Pixeltransfer" findet aber ansich auch nur dann statt, wenn Du bspw. Pixmap-Daten an einen Buffer in der Grafikkarte überträgst. Ohne dieses "Feature" würdest Du auf Deinem Screen aber nicht einmal die weissen Rechtecke sehen ... Rolling Eyes
 

klepto2

BeitragMi, Jan 28, 2009 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

kog hat Folgendes geschrieben:
Naja für 2D befehle werden auch normale 3D befehle verwendet.

Offenbar nicht, aber mit diesem Ansatz könnte ich wenigstens ein Work-Around für mein Problemchen schreiben.


Eben doch und genau das ist auch das Problem. sowohl minib3d und max2d verwenden opengl und das beißt sich, da jedes dieser Module auf bestimmte OpenGL Settings angewiesen ist. (Blend, Texture und vorallem Model und Projection matrix)

Du hast btw auch nicht angegeben welche Version von minib3d du benutzt und ob du die BeginMax2d und EndMax2D Befehle nutzt.

Falls du letzteres nicht benutzen solltest, probier die Befehle mal aus. Falls du sie allerdings schon benutzen solltes ersetze sie in TBlitz2D mal mit diesen hier:

Code: [AUSKLAPPEN]

   Function BeginMax2D()

      Local x,y,w,h
      GetViewport(x,y,w,h)
      
      glDisable(GL_LIGHTING)
      glDisable(GL_DEPTH_TEST)
      glDisable(GL_SCISSOR_TEST)
      glDisable(GL_FOG)
      glDisable(GL_CULL_FACE)

      glMatrixMode GL_TEXTURE
      glLoadIdentity
      
      glMatrixMode GL_PROJECTION
      glLoadIdentity
      glOrtho 0,GraphicsWidth(),GraphicsHeight(),0,-1,1
      
      glMatrixMode GL_MODELVIEW
      glLoadIdentity
      
      SetViewport x,y,w,h
      
      Local MaxTex:Int
      glGetIntegerv(GL_MAX_TEXTURE_UNITS, Varptr(MaxTex))

      
      For Local Layer = 0 Until MaxTex
         glActiveTexture(GL_TEXTURE0+Layer)
               
         glDisable(GL_TEXTURE_CUBE_MAP)
         glDisable(GL_TEXTURE_GEN_S)
         glDisable(GL_TEXTURE_GEN_T)
         glDisable(GL_TEXTURE_GEN_R)
   
         glDisable(GL_TEXTURE_2D)
      Next
      
      glActiveTexture(GL_TEXTURE0)
      
      DrawRect - 10 , - 10 , 5 , 5
      
      glViewport(0,0,TGlobal.Width,TGlobal.Height)
      glScissor(0 , 0 , TGlobal.Width , TGlobal.Height)
      glEnable GL_BLEND

End Function

Function EndMax2D()

      glDisable(GL_TEXTURE_CUBE_MAP)
      glDisable(GL_TEXTURE_GEN_S)
      glDisable(GL_TEXTURE_GEN_T)
      glDisable(GL_TEXTURE_GEN_R)
   
      glDisable(GL_TEXTURE_2D)
      glDisable GL_BLEND

      TGlobal.EnableStates()
      
      glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR)
      glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE)

      glClearDepth(1.0)                  
      glDepthFunc(GL_LEQUAL)
      glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)

      glAlphaFunc(GL_GEQUAL , 0.1)
      


End Function   
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

Holzchopf

Meisterpacker

BeitragMi, Jan 28, 2009 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
klepto2 hat Folgendes geschrieben:
Eben doch und genau das ist auch das Problem. sowohl minib3d und max2d...

Das Problem besteht ja nicht nur in Kombination mit der MiniB3D, sondern auch im ganz normalen Max2D und OpenGL 2D. Aus dem Grund kam ich auch zum Schluss, dass eben die Max2D Befehle nicht irgendwie per 3D emuliert werden, da diese ja funktionieren (es sei denn MiniB3D ist nicht OpenGL-Abhängig) Sad

Hab übrigens MiniB3D 0.52, die Befehle in der TBlitz2D hab ich mit deinen ersetzt, funktioniert immer noch nicht.

Valnar, auch andere Treiber schaffen keine Abhilfe. Was ich übrigens vergessen habe zu erwähnen Embarassed (sorry, wäre evtl von Bedeutung) ich hab n Dell Inspiron 1525 - und das Ding lässt mich nur Dell-Zertifizierte Treiber installieren...

Ah und bevor jetzt plötzlich alle helfen wollen und gute Tipps geben: Ja, ich hab schon alle Module neu kompiliert, ja, mein Vista ist up-to-date, ja, ich hab schon an den Treiber-Settings rumgespielt, ja, auf meinem anderen Rechner mit ner nVidia irgendwas läuft alles mit den selben Versionen problemlos und ja, gegoogelt hab ich auch.

Ich werde wohl dann als letzte Massnahme den Intel-Support belästigen und wohl oder übel meine paar wenigen 2D-Dinge, die ich über mein MiniB3D-Zeugs rendern will, 3D-Mässig reinfaken.

Und danke an alle Helfenden! Hat zwar nix genützt, aber ich bin lieber sicher, dass es nicht geht, als dass ich denke, es gänge nicht und unnötigerweise einen Workaround bastle.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

klepto2

BeitragMi, Jan 28, 2009 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann liegt das Problem nicht an Treibern (eigentlich schon) und nicht an Vista oder BMax, sondern schlicht an der miserablen OpenGL unterstützung der Intel chips. Damit gibt es schon massig probleme.
einfachste Lösung wäre eine neue Grafikkarte vernünftige die mit OpenGL 2.0 unterstützung arbeiten gibt es sehr günstig. Allerdings befürchte ich das das bei deinem Dell wohl auch flachfällt.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group