Aktuelle Zeit: 15.10.2018 17:30

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 15:49 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
ccode_new hat geschrieben:
Verseteh die Frage nicht.
Deine Texture hat doch schon einen Alpha Kanal (#GL_RGBA).
Du musst halt die richten Sachen von den rendern einschalten: glEnable(), glBlendFunc(), #GL_BLEND, #GL_ALPHA_TEST usw.


Das ist noch das Problem.

Hast du dafür ein funktionierendes kleines Beispiel ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 19:47 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Betreff: Farbechtheit beim Overlay
Was ist hier ein optimaler Weg ?

Code:
Procedure glDraw3DImage(x.f,y.f,z.f,Img.i,w.f=0,h.f=0)
  Protected Dim ccol.f(3)
  If IsImage(Img)
    If w = 0
      w = ImageWidth(Img)
    EndIf
    If h = 0
      h = ImageHeight(Img)
    EndIf
    glGetFloatv_(#GL_CURRENT_COLOR, @ccol())
    glPushMatrix_()
    glMatrixMode_(#GL_MODELVIEW)
    glColor4f_(1.0,1.0,1.0,1.0) ;WICHTIG!
    glBindTexture_(#GL_TEXTURE_2D, GTex(Img))
    glEnable_(#GL_BLEND)
    glBlendFunc_(#GL_SRC_COLOR, #GL_DST_COLOR) ;Wie bekomme ich das mit der Farbechtheit hin ? Was ist hier die optimale Lösung ?
    glBegin_(#GL_QUADS)
    glTexCoord3f_(0,0,z)
    glVertex3f_(x,y,z)
    glTexCoord3f_(1,0,z)
    glVertex3f_(x+w,y,z)
    glTexCoord3f_(1,1,z)
    glVertex3f_(x+w,y+h,z)
    glTexCoord3f_(0,1,z)
    glVertex3f_(x,y+h,z)
    glEnd_()
    glBindTexture_(#GL_TEXTURE_2D, 0)
    glDisable_(#GL_BLEND)
    glPopMatrix_()
    glFinish_()
    glColor4f_(ccol(0),ccol(1),ccol(2),ccol(3))
  EndIf
EndProcedure


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 21:02 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Meine Textur-Funktion (mit Alpha) sieht so aus:
Code:

Structure SIZE_STRUCT
  X.f
  Y.f
EndStructure

Structure TEXTURE_STRUCT
  Handle.i
  Size.SIZE_STRUCT
  Center.SIZE_STRUCT
EndStructure

Procedure.i DrawTexture2D(*Texture.TEXTURE_STRUCT,X.f,Y.f,Alpha.a)
  glEnable_(#GL_TEXTURE_RECTANGLE)
  glBindTexture_(#GL_TEXTURE_RECTANGLE,*Texture\Handle)
  glBegin_(#GL_QUADS)
  If Alpha
    glColor4ub_(255,255,255,Alpha)
  Else
    glColor4f_(1,1,1,1)
  EndIf
  glTexCoord2f_(0,*Texture\Size\Y)
  glVertex3f_(X,Y,Z)
  glTexCoord2f_(*Texture\Size\X,*Texture\Size\Y)
  glVertex3f_(X + *Texture\Size\X,Y,Z) 
  glTexCoord2f_(*Texture\Size\X,0)
  glVertex3f_(X + *Texture\Size\X,Y + *Texture\Size\Y,Z)
  glTexCoord2f_(0,0)
  glVertex3f_(X,Y + *Texture\Size\Y,Z)
  glEnd_()
  glDisable_(#GL_TEXTURE_RECTANGLE)
EndProcedure


Und ich hab nur einmal beim initialisieren das hier:
Code:
glEnable_(#GL_BLEND)
glBlendFunc_(#GL_SRC_ALPHA,#GL_ONE_MINUS_SRC_ALPHA)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 21:13 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo Mijikai,

Ja damit kann man ganze Bilder/Texturen Transparent setzen.

Ich möchte aber Farben transparent setzen für eine Textdarstellung, etc.

Dein Code ist dafür leider unbrauchbar.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 21:18 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Bei einem Bild mit (32 bit) Alpha/ Transparent sollte alles 1:1 wie beim Original dargestellt werden...

Beispiel:
Bild

Oder willst du den Alphawert nach dem das Bild geladen ist ändern ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 21:25 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hierbei:

Code:
If StartDrawing(ImageOutput(timg))
      DrawingMode(#PB_2DDrawing_Transparent)
      DrawText(0, 0, text, tcolor)
      StopDrawing()
    EndIf


würde der Texthintergrund schwarz sein!!!

Wenn ich das als Overlay verwenden möchte muss der Hintergrund durchscheinend sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 29.04.2018 21:32 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Vielleicht ist hier was dabei:

TextureFont: http://nehe.gamedev.net/tutorial/2d_texture_font/18002/
TrueTypeFont: http://nehe.gamedev.net/tutorial/freetype_fonts_in_opengl/24001/
BitmapFont: http://nehe.gamedev.net/tutorial/bitmap_fonts/17002/
TextureMappedFont: http://nehe.gamedev.net/tutorial/texture_mapped_outline_fonts/18001/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Falsche Farben und Text bei OpengL
BeitragVerfasst: 30.04.2018 10:02 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Meine Lösung ist sehr simple und heißt im übrigen Vektorgrafik.

Code:
If CreateImage(timg, tw, th, 32, #PB_Image_Transparent) ;TextImage
    If StartVectorDrawing(ImageVectorOutput(timg))
       
        VectorFont(FontID(tfont), tfh)
        VectorSourceColor(tcolor)
       
        MovePathCursor(0, 0)
        DrawVectorText(text)
       
        StopVectorDrawing()
      EndIf


Wichtig ist dabei mit RGBA-Werten bei der Farbe zu arbeiten.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye