ReadPixel -Fehleranalyse
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: ReadPixel -Fehleranalyse |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie einige gelesen haben, hatte Tag ja Anzeigeprobleme bei meinem Dreamplayer 2.4, was mich doch znähst sehr erschütterte. Meine Vermutung ging zu Anfang auf Fehler bei der Draw3D, was zum Glück nicht so ist. Denoch gibt es Probleme und ich habe mir von Tag ein Screenshot geben lassen, welches Das Problem mir visualisierte. Meine Vermutung nun ist ein Problem, welches ich schonmal hatte, als vor ~2 bis 3 Jahren ein Update für Blitz3D raus kam und da die Ausgabeergebnisse von ReadPixel plötzlich unterschiedlich waren.
Ich würde euch nun bitten folgendes Programm auszuführen und vor allem diejenigen, bei welchen das Ergebnis nicht wie unten aussieht, mir ein Screenshot zu schicken, damit ich mit den Werten dann arbeiten kann. Denn das Problem wird sicherlich mehrere interessieren. Test-Programmcode: Code: [AUSKLAPPEN] Graphics3D 512,512,0,2
SetBuffer BackBuffer() Local Texture=CreateTexture(256,256,2) Local Camera=CreateCamera() Local Cube=CreateCube() Local X PositionEntity Cube,0,0,2 EntityTexture Cube,Texture LockBuffer BackBuffer() For X=0 To 255 WritePixel X,0,X Shl 24,TextureBuffer(Texture) WritePixel X,1,X Shl 16,TextureBuffer(Texture) WritePixel X,2,X Shl 8,TextureBuffer(Texture) WritePixel X,3,X,TextureBuffer(Texture) Next UnlockBuffer BackBuffer() RenderWorld For X=0 To 255 Color 128,128,128:Plot X,ReadPixel(X,0,TextureBuffer(Texture)) Shr 24 Color 255,0,0:Plot X+64,ReadPixel(X,1,TextureBuffer(Texture)) Shr 16 Color 0,255,0:Plot X+128,ReadPixel(X,2,TextureBuffer(Texture)) Shr 8 Color 0,0,255:Plot X+192,ReadPixel(X,3,TextureBuffer(Texture)) Next Flip WaitKey End Und so sollte es aussehen (wenn nicht, dann bitte melden): ![]() |
||
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir isses Ok - WinXP 32 bits, B3D 1.99, 1280x1024x32 | ||
Starfare: Worklog, Website (download) |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir auch. (Noch einen neuen Bug hätte ich auch jetzt nicht verkraftet) | ||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
bei mir siehts so aus: https://www.blitzforum.de/upload/file.php?id=2363 MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Test ma 640,480 und speziell Vollbild, da du in Aero läufst ...
EDIT: ach ja bei mir siehts so aus wie es soll. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Fr, Nov 23, 2007 16:23, insgesamt einmal bearbeitet
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
genau so... bei verschiedenen auflösung bei vollbild und bei kleinbild alles bleibt gleich... | ||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tja ... willkommen in der Welt der NVIDIA 1XX Treiber die mit ihrer emulation der fixed pipeline (die 8000er hat keine fixed mehr hardwareseitig) nun DX7 endgültig zuschiessen scheint. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
FRUST !!!! | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, erstmal nicht den Kopf hängen lassen ![]() Hier der Testcode (muss ein Download sein, weil ein Bild geladen wird ''ohne WritePixel eben'') http://www.hectic.de/data/verlauf.zip Für Leute die es interessiert. Hier das Ergebnis, welches ich von Tag zugesandt bekommen habe. ![]() edit1: Ich würde speziell AMD nochmal bitten sich der Sachen mal anzunehmen, und diesen Test durchzuführen. Speziell auch den Code mal antesten und Graphics3D 640,480,16,2 erzwingen. Es sollten immer vier gerade schräge Linien (grau, rot, grün und blau) zu sehen sein. |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klappt, das Problem ist auch meiner Meinung nach nicht PIXEL sondern CREATETEXTUR, das geht auch bei ESCAPE3D nur noch mit Flag 256 korrekt, und selbst dann noch bei einigen nicht . Sobald du bei dem Befehl 2 oder 4 benutzt kommen nur noch die tollsten Sachen raus. Deswegen hast du auch keine Problem bei Draw3D weil du da mit LOADTEXTURE arbeitest um die Bilder zu laden.
Aber Bugreport kannst du dir bei BRL sparen, die stellen sich tot. cu |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm also in der rar datei die du gepostet hast siehts so aus also ich glaub richtig
https://www.blitzforum.de/upload/file.php?id=2364 ach ja ich habs nochmal zur sicherheit ausprobiert mit "Graphics3d 640,480,16,2" is aber immer noch wie zuvor... MfG Edit: hab geradee noch gehsehn das du ja nen code mit verschiedenen verläufen mit reingepackt hast sieht i-wie alles weng anders aus... poste später noch bild muss aber jetzt leider weg... MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Abrexxes, das mit CreateTextur war mir auch so noch klar, nur hat ja Tag dieses Problem mit meinem Dreamplayer, wo ich eben nicht mit CreateTextur arbeite sondern alles per LoadTexture lade. Ich wollte wissen, wieviele so ein Problem haben, denn den Dreamplayer haben sich nicht so viele downgeloadet und die wenigen die eventuell Anzeigeprobleme haben könnten melden sich auch nicht immer. So bleibt man im Unwissenden.
Wie man bei dem Bild von Tag unschwer erkennen kann, sind die Positionen und Größenverhältnisse ja grob schon richtig. Es scheint also so, als würden die Daten nur um wenige Werte verschoben. Meine Vermutung war am Anfang der 16Bit -Mode, wo dann auch die Texturen im 16Bit vorliegen. Das ganze dann auch noch mit unausgewogenen 5,6,5 Bit für rot, grün und blau. Alpha habe ich hier noch nichtmal genutzt. Für mich ist das ganze deshalb so wichtig, da ich vor habe Datenspeicherung wie Samples und wenige Konfigurationen über solche Bilder zu machen, damit dann eben zu jedem Level für den Buggy nur eine Bilddatei geladen werden muss. Das macht den Download pro Leven um einiges einfacher. Zudem sind die PNG-Dateien komprimiert und haben 4 Byte pro Pixel (ARGB). Man kann also gut damit arbeiten. Wenn nun dieses nicht überall funktioniert, habe ich wirklich nur wenig Lust dazu, das ganze dann umzuschreiben, was mir so viel Mühe machte. @AMD, ja so soll es auch aussehen. --- Ich muss nochmal ein Test durchführen. Mom... edit1: So, ich hab grad mal folgendes ausprobiert. Desktopeinstellung auf 16 Bit Farbtiefe eingestellt und ein Graphics3D 640,480,32,2 erzwungen. Das Ergebnis ist das gleiche, wie Tag es mir auch beschrieben hat. Ich werde also in diesem Fall nur 4 Bit pro Farbkanal (ARGB = 16 Bit) nutzen können, wenn ich User mit so alten Grafikeinstellungen mit berücksichtigen möchte. Sorry für den SCHOCKER DES TAGES. ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
16Bit ist nicht even distributed. Das heisst: ARGB16 ist 5551, das heisst 5Bit für RGB und 1 Bit für Alpha (da oder nicht da -> masking), nicht 4Bit für jedes (da solche karten die das benötigen eh keine Alpha tests haben womit full alpha ein riesen problem und kein Feature ist ) | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe Graphics3D eingeschaltet. Da schein es 4 Bit pro Farbkanal zu geben, da alle Linien genau 16 Abstufungen hatten (2^4 = 16). Das Quellimage ist 32 Bit mit jeweils 8 Bit pro Farbkanal. Es wird also genau aufgeteilt. Zum Glück, wie ich finde.
Dabei ist es egal ob Grafikmodus 0, 16 oder 32 eingestellt ist (eben ausprobiert). edit1: Nochmal folgendes ausprobiert. Desktop auf 16 Bit eingestellt. Graphics3D auf Mode 0, 16 und 32 ausprobiert. In allen Fällen hatte das geladene Bild jeweil 16 verschiedene Transparenzabstufungen! |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auf was du die Bit setzt wenn du im Fenstermodus bist, ist eigentlich irrelevant. Es ist zwingend Desktopfarbtiefe.
Falls du im Vollbild testest auf der anderen Seite, ist die Desktopfarbtiefe irrelevant ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ist mir schon klar. Nur bei solchen Dingen will ich immer alle Möglichkeiten ausschliessen.
Noch ein Test (Desktop auf 16 Bit auf Graphics3D): 2D-Darstellung 0565 Bit 3D-Darstellung 4444 Bit und das jeweils gleichzeitig. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
hectic hat Folgendes geschrieben: @Abrexxes, das mit CreateTextur war mir auch so noch klar
Keine Hektik hectic.(*g*) Ich wollte dich nur darauf hinweisen das dein Test eventuell schon von vorn herein falsche Resultate liefert da der Befehl im Moment eine große Fehlerquelle ist. |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
HI
fals es noch etwas dazu bei trägt ich hab jetzt also den Code mit den verschiedenen Verläufen getestet also mit "Verlauf" "VerlaufA" und "VerlaufC" und hier mal die ergebnisse: https://www.blitzforum.de/upload/file.php?id=2368 https://www.blitzforum.de/upload/file.php?id=2367 https://www.blitzforum.de/upload/file.php?id=2366 soll ich noch etwas testen^^ das es ja scheint das bei mir i-wie alles weng anders is^^? MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für mich sollte alles klar sein. Bei Tag lief das nicht richtig, da er sein Desktop vermutlich auf 16 Bit lafen lässt (er macht ja auch Musik und keine Grafikspielerei). Nichtsdestotrotz muss ich auch solche User mit berücksichtigen. Was an deinem nur schwarzen Bild angeht, so wird es vermutlich an CreateTexture liegen, was bereits Abrexxes beschrieben hat. Vielleicht kannst du hier noch den einen Korrekturcode ausführen und sagen, ob es nun bei dir funktioniert oder nicht.
Code: [AUSKLAPPEN] Graphics3D 512,512,0,2
SetBuffer BackBuffer() Local Texture=CreateTexture(256,256,2) Local Camera=CreateCamera() Local Cube=CreateCube() Local X PositionEntity Cube,0,0,2 EntityTexture Cube,Texture LockBuffer BackBuffer() For X=0 To 255 WritePixel X,0,X Shl 24,TextureBuffer(Texture) WritePixel X,1,X Shl 16,TextureBuffer(Texture) WritePixel X,2,X Shl 8,TextureBuffer(Texture) WritePixel X,3,X,TextureBuffer(Texture) Next UnlockBuffer BackBuffer() RenderWorld For X=0 To 255 Color 128,128,128:Plot X,(ReadPixel(X,0,TextureBuffer(Texture)) Shr 24) And $FF Color 255,0,0:Plot X+64,(ReadPixel(X,1,TextureBuffer(Texture)) Shr 16) And $FF Color 0,255,0:Plot X+128,(ReadPixel(X,2,TextureBuffer(Texture)) Shr 8) And $FF Color 0,0,255:Plot X+192,(ReadPixel(X,3,TextureBuffer(Texture))) And $FF Next Flip WaitKey End Ich kann daher sagen, dass ich mit dem gemeldeten Fehler von Tag und deinem gepostetem Fehler viel wertvolles erfahren habe, was ich sonst hätte vernachlässigt hätte und zu Problemen beim Enduser gekommen wäre. Ich möchte speziell diese Methode ''abspeichern von wenigen Informationen in eine Bilddatei'' öffters benutzen, um bei Spielen auf unzählige Dateien verzichten zu können (z.B. Leveldaten beinhalten levelspezifische Bilder und können dabei noch wenige scripte oder andere Informationen beinhalten und das alles in nur einem Bild. Ein Bild, ein Level). Meine Tipps dazu: - Bei Texturen kann man nur $F0F0F0F0 mit Sicherheit deren ARGB-Werte auslesen. Sie batragen also pro Pixel 4+4+4+4 = 16 Bit. Bei 2D ist die Auflösung etwas anders RGB = 5+6+5 = 16 Bit. - Immer, auch dann wenn das eigene System keine Probleme macht und die Befehle SHR und SHL keine 'Rückstände' hinterlassen, muss mit AND nochmal der Integer ausgefiltert werden. Danke an alle die sich daran beteiligt haben. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du mir ne Textur bringst mit 4 Bit Alpha dann glaub ichs dir.
Bis dahin beharre ich weiter darauf, dass es 1,5,5,5 ist. Zitat: A1R5G5B5
16-bit pixel format with 5 bits reserved for each color and 1 bit reserved for alpha (transparent texel). A8R8G8B8 32-bit ARGB pixel format with alpha. R9G8B8 24-bit RGB pixel format. X1R5G5B5 16-bit pixel format with 5 bits reserved for each color. X8R8G8B8 32-bit RGB pixel format with 8 bits reserved for each color. Das sind die einzigen hardwarebeschleunigten Farbprofile! Alles andere müsste konvertiert werden auf eines von denen was zu einem massiven Performanceeinbruch führt! (kein Gewäsch sondern direkter Auszug aus den DirectX SDK Dokumentationen) Ich geh deswegen davon aus, dass Silby, da er ohnehin schon auf Steinzeithardware ausgelegt hat, immerhin da die Empfehlungen von MS befolgt und nicht auch da noch die Spezifikationen und Empfehlungen von MS ignoriert ![]() Deine Methode funktioniert vermutlich primär weil einfach deine Farben im 16Bit zufälligerweise am richtigen Ort sind bzw. weil die Farbabstufungsunterschiede kaum zu erkennen sind zwischen 4 und 5 bit und Blitz3D auf 16Bit automatisch Dithering einschaltet um das Banding zu reduzieren. Die einzige Möglichkeit das zu testen ist eine Alphatextur, die entsprechend Laden und dann rendern. Wenns 4,4,4,4 ist dann hast du alpha abstufung, wenns 1,5,5,5 ist hätteste auch Masking nehmen können vom effekt her ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group