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

Aktuelle Zeit: Fr Nov 22, 2024 01:12

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 131 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6 ... 9  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Mai 25, 2008 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Kannst du mir die ohne RLE auch noch anhängen also, wenn es damit Probleme gibt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 25, 2008 14:06 
Offline
DGL Member

Registriert: Do Feb 21, 2008 10:49
Beiträge: 55
Wohnort: Dresden
Programmiersprache: FPC/Linux
http://rapidshare.com/files/117495140/t ... no_rle.rar

wenn ich mich ni vertan hab, müssten das die gleichen ohne rle sein.


EDIT: ich will ja ni krümelkackerisch wirken, aber es wär echt cool, wenn man auch paletten-tgas laden könnte. wenn du das noch reinbaust, kommste an meine persönliche wall of fame :)

_________________
Gruß McWurscht - sorry für's Posting.

Wer mal meinen bisher erfolgreichsten Erguss in Sachen Web-Programmierung sehen will: RCV


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 27, 2008 09:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hab das Edit erst jetzt gesehen. Wozu benötigst du denn überhaupt Paletten TGAs/Bilder? Denn Paletten werden von OpenGL nicht wirklich unterstützt. Es gibt zwar so etwas in der Art aber das wird vermutlich nicht in Hardware unterstützt bzw. machen Paletten in der Regel auch Qualitativ einfach keinen Sinn. Deswegen müsste/sollte ich die Paletten eigentlich gleich in RGB(A)8 umwandeln. Das Ganze würde dann auch BMPs/PNGs mit beeinflussen. Denn diese können auch Paletten benutzen. Bei BMPs besonders tragisch, denn da lese ich 8 Bit Dateien bereits ein aber ich ignoriere die Palette und behandel die Dateien als Graustufenbilder. Falls es nur um Graustufen geht das funktioniert bei TGAs bereits problemlos.

Bitte nicht falsch verstehen. Aber ich möchte nicht einfach irgendwas einbauen. Das habe ich nie und werde ich auch nie. Ich will eigentlich immer den Kosten/Nutzen Faktor im Auge behalten. Besonders, wenn es eher um etwas exotischeres geht. Denn sonst bin ich schnell wirklich große Teile meiner Zeit mit Dingen beschäftigt, die wirklich nur 1-2 Leute benutzen und der Rest braucht es einfach nicht. Zu mal das in deinem Fall keine wirkliche Einschränkung darstellt.


Ich habe dein Problem im übrigen gestern abend gefunden und behoben. Es lag an meinem internen Cache. Ich werde versuchen es heute abend hochzuladen. Und die Varianten ohne RLE funktionierten Problemlos bei mir.

PS: Die komprimierte Heightmap bringt im übrigen keine wirklichen Vorteile. Die ist nur 5 kb kleiner aber dafür ist RLE schwieriger zu laden und das dauert dann länger. ca. 25ms (RLE) im Vergleich zu ca. 3ms (ohne RLE).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 27, 2008 17:31 
Offline
DGL Member

Registriert: Do Feb 21, 2008 10:49
Beiträge: 55
Wohnort: Dresden
Programmiersprache: FPC/Linux
naja, ich benutze viele texturen, die original mal 8-bit palette waren. die musste ich dann auf 32bit hochdrehen. das verprasst natürlich unsinnigen platz. deswegen wäre das mit 8-bit palette echt ne feine sache.

und das mit dem länger laden ist mir wurscht, weil das ja eh nur einmal am anfang geladen wird.

_________________
Gruß McWurscht - sorry für's Posting.

Wer mal meinen bisher erfolgreichsten Erguss in Sachen Web-Programmierung sehen will: RCV


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 27, 2008 19:14 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Klar für dich wäre es Ideal aber ich habe dabei halt ein paar Bedenken.
- Ich müsste das für PNG und BMPs auch machen. Wobei ich bei BMPs sogar das bestehende Verhalten ändern müsste.
- Du bist seit ich die Unit angefangen habe der Erste der das haben wollte.

Was du auch nicht vergessen darfst im Grafikspeicher würden daraus wieder 24 oder bei Transparenz sogar 32 Bit werden. Also eine massive Speicherausdehnung. Das kann auch zu Verwirrungen führen, denn bei dir auf der Platte ist es ja nicht so viel.

Evtl solltest du dir auch mal PNGs anschauen. Durch den Zip Algorithmus werden die Bilder einigen Fällen sogar richtig klein. Sofern es keine Fotos sind.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 12:35 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo Lossy,
Ich bin jetzt grade dabei die glBtmap in die PasGUI einzubinden. Ich habe dafür einen Mini-Wrapper geschrieben, weil ich noch zwei Properties brauche und die Original glBitmap nicht verändern wollte:
Code:
  1. //********************************************************************
  2. UNIT StdImage;
  3. //********************************************************************
  4.  
  5. {$define GLB_NO_NATIVE_GL}
  6. {$define GLB_LIB_JPEG}
  7.  
  8. INTERFACE
  9.  
  10. USES
  11.    SysUtils, StdBasicDefs, glBitmap;
  12.  
  13. TYPE
  14.  
  15. //********************************************************************
  16.    TStdImage = Class(TFiledObject)
  17.    Private
  18.       fImage: TglBitmap2D;
  19.  
  20.       Function GetTexture: TuInt32;
  21.    Public
  22.       Property Texture: TuInt32 Read GetTexture;
  23.  
  24.       Constructor Create(AName: T16bString); Reintroduce;
  25.        Destructor Destroy; Override;
  26.          Function Load(AFileName: T16bString): TBoolean;
  27.    End;
  28. //********************************************************************


BMPs und TGAs (komprimierte und unkomprimierte) funktionieren gut.
Aber ich kann keine JPEGs laden, und zwar deshalb, weil ich offenbar bei den Defines einen Fehler gemacht habe (siehe oben). Er kompiliert mir die Zeile "if not LoadJPEG(Stream) then" nicht und ich kriege daher immer die anschließende Exception:

Code:
  1. procedure TglBitmap.LoadFromStream(Stream: TStream);
  2. begin
  3.   {$ifdef GLB_SUPPORT_PNG_READ}
  4.   if not LoadPNG(Stream) then
  5.   {$endif}
  6.   {$ifdef GLB_SUPPORT_JPEG_READ}
  7.   if not LoadJPEG(Stream) then       // <============
  8.   {$endif}
  9.   if not LoadDDS(Stream) then
  10.   if not LoadTGA(Stream) then
  11.   if not LoadBMP(Stream) then
  12.     raise EglBitmapException.Create('LoadFromStream - Couldn''t load Stream. It''s possible to be an unknow Streamtype.');
  13. end;


Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 13:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hallo Traude,

was sind denn das für Eigenschaften? Kann das in deinem Code nicht so recht erkennen. Evtl baue ich sie dann noch ein.

Die Defines. Ja es sind die richtigen Defines. Aber leider die falsche Stelle. Ein Define was innerhalb einer Unit definiert wurde gilt auch nur für diese. Alle anderen Units werden dadurch nicht beeinflusst. Deswegen sind alle Defines oben in der glBitmap enthalten. Alternativ kann man die Defines aber auch beim Kompiler definieren, dann sind sie global und gelten für alle Units.

Lossy


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 14:46 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Danke habs umgestellt, funktioniert jetzt.

Die beiden Properties die ich brauche sind
1) Name: das repräsentiert eine Identität (ein WideString, der beim Setzen in UpperCase umgewandelt wird damit sich die Suchfunktion des GraphicUtilityManager leichter tut)
2) FileName: das repräsentiert die Datei (ebenfalls ein WideString, der ohne Veränderungen übernommen wird)

Ob Du es einbaust oder nicht überlasse ich Dir. Ich schlage vor, dass Du Dir das ganze dann ansiehst, wenn ich es hier hereinstelle, und dann selbst entscheidest, ob Du Deine glBitmap deswegen ändern willst. Ich kann mit dem Wrapper auch leben.

Ich brauche jetzt nicht mehr lange, schätze höchstens eine Woche noch.
Letzter zu bearbeitender Punkt vor dem Publishing: Test Message System.
Traude :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 17:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ach solche Eigenschaften sind das. Nun ja. Die Antwort darauf kenne ich dann wohl schon. ;) Ich dachte das wäre etwas zum Zugriff auf interene Daten oder so. Die Eigenschaft mit dem Namen hatte ich früher mal drin aber da ich der Einzigste war der sie eine Zeit lang genutzt hatte ist sie wieder raus geflogen. Und Dateinamen ist schwer, denn ich arbeite mit Streams. Wo die herkommen weiß ich nicht. Entsprechend würde das nur manchmal funktionieren.

Zu dem Rest. Ich bin gespannt. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 18, 2008 20:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Also eine Namen Eigenschaft vermisse ich auch. Dann könnte ich mir auch den Wrapper sparen. :)

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 19, 2008 18:10 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Hmmm. Das relativiert das jetzt irgendwie ein bisschen. Und so drüber geschlafen. Wenn sie nicht gesetzt sind ist es ja kein wirklicher "Balast".

Wobei du (Traude) benutzt ja WideStrings. WideStrings benutze ich aktuell aber so gar nicht. Spontan würden mir da so 2 Möglichkeiten vorschweben. Entweder eine Eigenschaft nur ansi. Oder eine normal ansi und eine wide. Dateinamen könnte/müsste ich beim Lesen automatisch setzen. Allerdings würde ich keine Uppercase konvertierung durchführen (können). Und Dateinamen wären auch irgendwie nur Ansi, denn WideStrings kann ich dort nicht verarbeiten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Feedback glBitmap
BeitragVerfasst: Sa Jun 21, 2008 00:01 
Offline
DGL Member
Benutzeravatar

Registriert: Di Okt 03, 2006 14:07
Beiträge: 1277
Wohnort: Wien
Hallo Lossy,

Ich habe folgende Formate bisher bei mir getestet:
*** BMP
*** TGA(komprimiert und unkomprimiert), inklusive Alphakanal
*** JPEG (mit dem beigestellten Header)
*** PNG (mit dem beigestellten Header), inklusive Alphakanal


Alle benutzten Bilder waren POT und kein einziges davon größer als 256 x 256
Property MipMap gesetzt auf mmMipmap
Windows 2000, OpenGL 1.4

Funktioniert alles reibungslos und natürlich viel schneller als mit meinem eigenen Imageobjekt, denn das ist in keiner Weise auf Schnelligkeit optimiert.
Hübscher ist es auch, denn ich hatte keine Mipmaps eingebaut.


Einzige Änderung, die ich nach der Umstellung auf die glBitmap vornehmen musste:

Es war nötig, explizit ein "Unbind" vor dem Paint durchzuführen, ansonsten wurde beim ersten Paint die letzte geladene Textur auf den Widgets dargestellt. Wenn die Variable "ShowImage" FALSE ist, wird weder ein Bind noch ein Unbind durchgeführt. Beim zweiten Paint waren die Texturen dann verschwunden. Ich nehme an, dass ein automatisches Unbind beim SwapBuffers erfolgt.

Da es aber ohnehin notwendig ist, vor dem Paint sicherzustellen, dass keine Textur grade gebunden ist (es könnte das Anwendungsprogramm vorher zeichnen), wäre mir das Einbauen des Unbind sowieso nicht erspart geblieben.

Daher kann ich sagen: Alles OK und vielen Dank

Traude


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 23, 2008 13:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Schön Schön. Freut mich, dass alles so funktioniert wie du es erwartet hast. :)

Zitat:
Ich nehme an, dass ein automatisches Unbind beim SwapBuffers erfolgt.

Sollte mich ganz ehrlich gesagt ein bisschen wundern. Aber kann man auch nicht ganz ausschließen, dass so etwas vom Treiber gemacht wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 23, 2008 22:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jul 20, 2006 17:34
Beiträge: 52
Irgendwie spinnt bei mir die Funktion AssignAlphaToBitmap - oder ich stell mich zu doof an.

Ich hab folgenden Code:
Code:
  1.  
  2.   glbmp:=TglBitmap2d.Create(ExtractFilePath(Application.ExeName)+'tex.png');
  3.   bitmap:=TBitmap.Create;
  4.   glbmp.AssignAlphaToBitmap(bitmap);
  5.   bitmap.SaveToFile(ExtractFilePath(Application.ExeName)+'test.bmp');
  6.   glbmp.Free;
  7.   glbmp:=TglBitmap2d.Create;
  8.   glbmp.AssignFromBitmap(bitmap);
  9.   glbmp.GenTexture;

Beim Zeichnen der Textur wird alles richtig angezeigt, jedoch ist das gespeicherte Bitmap etwas anders als erwartet (siehe Anhang).
Ändert man vor dem zurück-Assignen das PixelFormat des Bitmaps, so ist der Fehler auch auf der Textur sichtbar.

Das beschriebene tritt sowohl bei Version 1.8.10 als auch bei 2.0.1 auf.


Dateianhänge:
Dateikommentar: Die im Code gespeicherte Datei
test.png
test.png [ 83.3 KiB | 9708-mal betrachtet ]
Dateikommentar: Die Textur
tex.png
tex.png [ 167.56 KiB | 9708-mal betrachtet ]

_________________
2+2=5
For extremely large values of two
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 24, 2008 09:24 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Nein. Das Problem liegt tatsächlich an AssignAlphaToBitmap. Danke für den Hinweis.

Ich setze intern eine Farbpalette und anschließend ändere ich erst das Pixelformat auf 8 Bit. Dabei geht das TBitmap scheinbar her und erzeugt sich eine neue Farbpalette. Die Werte innerhalb des Bitmaps sind zwar richtig aber er hat eine falsche Farbpalette. Entsprechend werden die Werte auch auf falsche Farben gemappt. Solltest du das Bitmap wieder in die glBitmap laden, OHNE das Pixelformat zu ändern, dann sollte wieder alles okay sein. Denn die enthaltene Palette interessiert mich mal so gar nicht. ;)

Für einen Hotfix geh mal bitte in die Methode TglBitmap.AssignAlphaToBitmap und ersetze die 4 Zeilen die Einstellungen am Bitmap vornehmen wie folgt.
Code:
  1.         Bitmap.PixelFormat := pf8bit;
  2.         Bitmap.Palette := CreateGrayPalette;
  3.         Bitmap.Width := Width;
  4.         Bitmap.Height := Height;


Werde das bei Gelegenheit fixen und eine neue Version hochladen.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 131 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6 ... 9  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.016s | 17 Queries | GZIP : On ]