![]() |
OpenGL Alpha Kanal funktioniert nicht
Hi,
ich habe das Problem, dass bei mir plötzlich der Alphakanal nicht mehr funktioniert. Früher ging er jetzt nochmal probiert und schon geht er nicht mehr, sprich der Hintergrund der Textur bleibt schwarz. Mein Quellcode:
Delphi-Quellcode:
Und zum anzeigen:
procedure TMainForm.FormCreate(Sender: TObject);
var i1, i2: Integer; begin If not InitOpenGL then begin ErrorMsg('Konnte OpenGL nicht initialisieren!'#10'Error: '+IntToStr(GetLastError)); Exit; end; DC := GetDC(Handle); RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0); ActivateRenderingContext(DC, RC); glClearColor(0.3, 0.3, 1, 0); Application.OnIdle := glRender; try For i1 := Low(MarioTex) to High(MarioTex) do begin For i2 := Low(MarioTex[i1]) to High(MarioTex[i1]) do LoadTexture(GetCurrentDir+'\Textures\'+IntToStr(i1)+'\frame_'+GetFrameStr(i2)+'.jpg', MarioTex[1][i2], False); end; except on E: Exception do ErrorMsg('Konnte Textur['+IntToStr(i1)+']['+GetFrameStr(i2)+'] nicht laden!'#10'Fehler: ['+IntToStr(GetLastError)+']'+E.Message); end; AktFrame := Low(MarioTex); glEnable(GL_TEXTURE_2D); glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1);
Delphi-Quellcode:
Was ist da falsch?
procedure TMainForm.glRender(Sender: TObject; var Done: Boolean);
begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glClearColor(0.3, 0.3, 1, 0); glSetSizes; glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1); glBindTexture(GL_TEXTURE_2D, MarioTex[1][AktFrame]); Player.Walk(1); glDraw(Player.pX, Player.pY, Player.pWidth, Player.pHeight); SwapBuffers(DC); Done := False; end; Ist der Fehler beim anzeigen oder beim laden? Danke für jede Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz