JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=307cb420ab8ae4cd49e1fdb09175428fMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

JLI-Format
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 04.05.2003, 21:59    Titel: Antworten mit Zitat

Ich zitiere mich mal selbst Wink

nepomuk hat Folgendes geschrieben:

WIMNI unterstützt PNG nun sogar halbtransparenz, d.h. das man die durch die Grafik auch leicht durchsehen kann. (ähnlich wie wenn man ein icon auf dem desktop [oder datei im explorer {große symbole}] gerade im drag&drop modus hat, dann ist es auch halbtransparent - man sieht das dahinter auch)


-> ist schon je nach PNG-einstellung halbtransparent, das programm muss da erst gar etwas machen... so glaube ich das jedenfalls (mein prog unterstützt dieses PNG-feature nicht, weshalb ich mich nur auf quellen anderer stützen kann)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 04.05.2003, 22:17    Titel: Antworten mit Zitat

Hi,
nein eben nicht, das Grafikformat selber speichert die Transparenz für jeden Pixel ab! Sicherlich muss das Programm, welches die Grafik anzeigt diese Transparenz auch beachten, aber das Grafikformat selber hat die Informationen über die Transparenz.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 05.05.2003, 12:14    Titel: Antworten mit Zitat

Das wäre ja nicht schwierig hinzuzufügen.
Dafür bräuchte man doch dann nur einen Transparenzwert, oder Question
Es geht doch nur darum, die information zu speichern, wie transparent die Grafik konvertiert worden ist.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 05.05.2003, 16:49    Titel: Antworten mit Zitat

Hi,
wie wäre es eher mit einem Alphawert für jeden Pixel?!? Es würde nämlich sehr Vorteil haft sein, wenn deine Grafiken Transparenz unterstützen. Gut mit einem Colorkey kann man eine Farbe herausfiltern, was ist aber, wenn man eine Grafik mit 50% Alpha an einigen Stellen über eine andere Grafik packen will, sodass diese beiden kombiniert das gewünschte Bild ergeben? Ich persönlich würd die Alphauntertüzung für sehr vorteilhaft halte und würde es begrüßen, wenn dein Format diese bereitstellt.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 05.05.2003, 21:06    Titel: Antworten mit Zitat

Wie funzt das denn dann mit png im Programm? Was muss man dann machen, damit die Grafiken kombiniert werden? Und wie wandelt man die Grafiken um bzw. wählt Felder u. Transparenzwert aus???
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 07.05.2003, 14:21    Titel: Antworten mit Zitat

Jetzt sind insgesamt drei Komprimierungsarten voll funkionstüchtig(mit packen und entpacken). Ich hatte ind den letzten Tagen noch mit ein paar Bugs zu kämpfen. Die restlichen Arten sind meistens von den anderen abgeleitet und unterscheiden sich z.T. nur bei den Variablentypen(wird also schneller vorangehen)
PS: Ich mache das JLI-Format wohl vorerst ohne Alphakanal. Den kann ich ja später noch hinzufügen.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 07.05.2003, 22:12    Titel: Antworten mit Zitat

Speicherst du pro pixel wirklich nur 24 Bit ab oder vielleicht doch 32 Bit?
Wenn du 32 Bit pro Pixel zur verfügung hast, kannst du in die zusätzlichen 8 Bit den Alphakanal packen, üblicherweise ARGB...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 08.05.2003, 12:28    Titel: Antworten mit Zitat

Wie gesagt, es gibt mehrere Methoden. Die einfachste Methode ohne Komprimierung braucht 24 Bit pro Pixel.
Andere haben dann einen größeren Header und brauchen allerdings nur 8-16 Bit pro Pixel.
Speichert man denn den Alphawert üblicherweise in einem Bereich von 0-255 ab?
PS: So schnell kanns gehen; ich habe jetzt schon zwei weitere Komprimierungsarten dazuprogrammiert.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LordHoto
JLI'ler


Alter: 34
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 08.05.2003, 14:45    Titel: Antworten mit Zitat

jo von 0-255 aber je höher der wert desto weniger Transparenz ist da!

MFG

LordHoto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 08.05.2003, 17:19    Titel: Antworten mit Zitat

Hi,
also ein Byte reicht um den Alpha wert abzuspeichern,jedoch kenne ich es bisher eigentlich mit einem Wertebereich [0;100], welches also einer prozentualen Angabe entspricht. Also könntest du da theoretisch noch ein paar bit rausfall lassen, damit du so nah wie möglich an die Hundert herankommst.
Wäre irgendwie auch komisch, wenn du dies mit [0;255] abspeichern würdest, weil was machst du wenn etwas 1% Tranzparenz haben soll? Speicherst du dann den Wert 2,5 dafür ab?
Also ich kenne jedenfalls Alphaangaben bisher nur über ein prozentuales Verhältnis.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 08.05.2003, 19:41    Titel: Antworten mit Zitat

Die prozentuelan Angaben werden nur von Programmen umgerechnet und so angezeigt. Der "normale" 32-Bit-Farbwert enthält je ein Byte für Alpha, Rot, Grün und Blau - was für jeden Farb/Alphawert einen Wertebereich von 0-255 ergibt. Viele Bildbearbeitungsprogramme (so z.B. auch Gimp, ein immer wieder von mir erwähntes kostenloses Profiprogramm) können einen Transparenzwert sogar bit Nachkommastellen Anzeigen, also z.B. 16,375% Transparenz. Für die Bearbeitung des Bildes stehen dann in der Regel 128 Bit Farbinformationen (4 Floatwerte, je im Wertebereich zwischen 0 und 1 bei 7 Nachkommastellen) zur Verfügung, erst beim speichern werden sie wieder auf die "normalen" 32-Bit heruntergerechnet.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Starwash
Senior JLI'ler


Alter: 39
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 08.05.2003, 20:27    Titel: Antworten mit Zitat

Hi,
ich weiß ja nicht, wie du das anstellst, aber wenn ich 1% Tranzsparenz haben will, so müsste 2,5 als Wert abgespeichert werden und ich kann 2,5 nicht auf ein Byte kriegen...Wenn ich diesen Wert nun rund und also 3 abspeicher, so würde dies aber schon ~1,2% entsprechen und mir somit eine Ungenauigkeit rein bringen.
Das mit den Floats funktioniert auch bei OpenGL so, dass diese einen Wertebereich von [0;1] haben können und daraus der Farbwert ermittelt wird und die Tranzsparenz.

ir = (int)fr*255; //ir=int;fr=float;
ia=(int)fa*100; //ia=int;fa=float;

So habe ich gelesen, dass die Farbwerte von OpenGL behandelt werden, womit wir ja wieder bei einer prozentualen Angabe wären.
Besser gesagt, OpenGL rechnet den Integerwert durch 255 bzw. bei Alpha durch 100 und erhält damit die Floatwerte und kann dann wieder ganz normal mit den Floatwerten arbeiten. Und bisher wurde ich bei jeglichen Arbeiten mit Alphawerten auf eine füher oder später prozentuale Angabe aufmerksam. Ich weiß natürlich nicht, wie es in DirectX aussieht, ob dort auch ein prozentualer Wert für die Tranzsparenz verlangt wird oder ob dieser [0;255] haben darf.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 09.05.2003, 01:03    Titel: Antworten mit Zitat

Von SDL her weiß ich, dass dort mit einem [0-255]-Wertebereich gerechnet wird. Zur beschleunigten Darstellung von Grafik in SDL wird OpenGL verwendet, daher gehe ich mal davon aus, dass auch in OpenGL ein 1BYTE-Wertebereich vorhanden ist. Es würde auch keinen Sinn machen, nur 7 Bit anstatt 8 Bit für Alpha zu verwenden, weil dann die Grafikdaten mit einem Füllbit ausgestattet werden müssten, damit die Grafikkarte noch in einer Angemessenen Geschwindigkeit rechnen kann.
Ansonsten würden einige Pixel in der Grafikkarte z.B. von Byte 953/Bit 4 bis Byte 957/Bit 2 gehen. Das ist zwar rechnerisch möglich, aber keineswegs Performant und darauf kommt es schliesslich an.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.05.2003, 12:22    Titel: Antworten mit Zitat

Welchen Wertebereich benutzt denn DirectX???
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LordHoto
JLI'ler


Alter: 34
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 09.05.2003, 22:40    Titel: Antworten mit Zitat

Also 1 Byte kann 255 verschiedene Werte annehmen DirectX Skaliert diese dann auf 0.0f (volle Transparenz = 0) 1.0f (keine Transparenz = 255) Darum musst du dich aber nicht kümmern das macht Direct3D automatisch für dich!

MFG

LordHoto

PS : Einfach Textur laden fertig! Aber die Render States für das Alpha nicht vergessen Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter
Seite 3 von 9

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum