![]() |
[OpenGL] Texture verpixelt
Ich habe ein Programm mit der GDI gemacht, aber weil die performance nicht wirklich gut ist hatte ich vor diese auf OpenGL umzuschreiben.
Das Problem ist jetzt allerdings das mit GL_NEAREST und auch mit GL_LINEAR die Textur einfach grottig aussieht (Bei der GDI sieht's genau wie bei GIMP aus): ![]() Hat jemand eine Idee wie man das loesen kann? EDIT: Ich verwende die letzte dglOpenGL.pas von Dezember 2009 und dazu eine Textures.pas von Jan Horn von 1. Mai 2001. Die TGA ist einfach ein Bild mit einem Alphakanal. |
AW: [OpenGL] Texture verpixelt
Das liegt nicht daran, dass OpenGL das nicht könnte, sondern daran, dass du die falschen Blending-/Alpha-Parameter benutzt.
wie sieht denn z.B. deine glblendfunc aus? Sieht nämlich sehr nach 1-Bit Alpha aus (GL_ONE). Bevor ich mir hier nen Wolf tippe, hier kannst du das ganze detailliert nachlesen, wie man in OpenGL mit und ohne Alphachannel blendet: glBlendFunc: ![]() glAlphaFunc: ![]() normalerweise nimmt man für eine Transparenz mit Alphachannel beim Blending mode: glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
AW: [OpenGL] Texture verpixelt
Uhm. Im Moment garnichts. Ich habe mir einfach ein Paar Beispiele angesehen und dann gesehen, dass der Code von
![]() Hab also deren Bild mit meinem ersetzt und dann passierte das. Es sieht ziemlich danach aus das die TGA einfach falsch ist, aber alles schliessen und die exportierte TGA wieder in GIMP oeffnen sieht so aus wie es soll (Die Original Datei ist eine PNG; und wie gesagt: mit GDI/Canvas klappts prima). |
AW: [OpenGL] Texture verpixelt
GDI und OpenGL haben miteinander überhaupt nichts zu tun :D
Ahaaa...in dem Schatten-Tutorial wird ja auch gebblendet, indem alles, was einen Alpha als kleiner/gleich 0.1 hat, weggeschnippelt wird. Du brauchst aber in deinem Bild den Alphachannel des Originals. Also ersetze doch mal glAlphaFunc(GL_GREATER, 0.1); durch glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA) ; |
AW: [OpenGL] Texture verpixelt
Ja, danke. Klappt!
(Der Vergleich zur GDI kam weil GDI ja nicht wirklich gut ist und es sogar dort geklappt hat :D (nur eben mit ~30 FPS was zu wenig ist)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 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 by Thomas Breitkreuz