Nicht Quadratische Textur laden

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

EPS

Betreff: Nicht Quadratische Textur laden

BeitragDo, Mai 11, 2006 11:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi zusammen, ich möchte mir gerne ein Tool schreiben um PNG Bilder (mit Alpha Information) zurecht zu schneiden. Das ganze soll dazu dienen die Einzelbilder einer gerenderten Animation o.ä. auf Texturmaße zu bringen, die Bilder also "quadratisch" zu machen.

Ich hab eine LIB die mir PNG Dateien schreiben kann und dies auch mit den Alpha Informationen. Das ganze hab ich jetzt mal getestet und das funktioniert auch soweit.

Das Problem ist, das ich eine PNG mit Alpha Infos nur dann richtig laden kann, wenn ich das Bild als eine Textur lade denn würde ich das Bild als normales 2D Image laden ginge mir ja die Alpha Information verloren.

Da die geladene Textur selbst aber schon "quadratisch" sein muß, damit sie nicht verzerrt wird, suche ich eine Möglichkeit, um auch Bilder zu laden die z.B. 320x240 sind.

Anders ausgedrückt: Wie kann ich ein 320x240 Bild als eine Textur laden OHNE das es verzerrt wird.

Theoretisch könnte man das Bild ja laden, die Textur "von Hand" anlegen (Anhand der Bildmaße) und dann Pixel für Pixel übertragen, aber wie bekomme ich die Alpha Informationen dabei übertragen?

Gibt es da eine Möglichkeit?
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

D2006

Administrator

BeitragDo, Mai 11, 2006 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

lad doch die Textur einfach rein und benutz ql:ScaleTexture. Wenn du die richtigen Paramter benutzt sollte die korrekte Höhe und Breite dabei rauskommen. Beachte dabei, dass B3D immer die kleinste 2er Potenzen Textur benutzt, in der das "Bild" kommplett reinpasst. In deinem Fall also wahrscheinlich 512², wobei du das ja mit ql:TextureWidth rauskriegen kannst.

Was es noch zu beachten gibt: Falls du das Programm dann vertreiben wilst, wird das wahrscheinlich brühe. Habe schon einige Erfahrungen gemacht, dass (ich glaube bei Geforce Karten) solche Texturen einfach nicht geladen werden.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

EPS

BeitragDo, Mai 11, 2006 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Verkaufen will ich das nicht, ist nur für mich.

Nun zu deiner Idee. Das klappt leider nicht, da die Textur nach dem laden ja bereits verzerrt ist (wenn das Bild z.B. 320x240 ist) und ich sie Pixelgenau benötige. Also auch ein nachträgliches zurechtskalieren würde da nicht helfen.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

fliege

BeitragDo, Mai 11, 2006 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst es doch auf ein normales quadrat draufpappen, machst halt aus der 320*240 Dimension ein 512*512, oben links dein Bild mit Originalmaßen, den Rest füllst du mit irgendeiner Transparenzfarbe aus. Wenn das Quadrat immer gerade zur kammera schaut, dann kannst du es mit dem picken relativ leicht gestalten:

Du nimmst die Textur vom gepickten entity und schaust dann mittels der mauskoords ob der gepickte Punkt transparent ist oder nicht.

Wenn das Quadrat aber nicht gerade in die Kamera sieht, musst du dich mit den UV Koordinaten spielen.

Ich hoffe, das hilft,

Flige

EPS

BeitragDo, Mai 11, 2006 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte die Texture ja gar nicht irgendwo drauf machen, ich möchte die Textur nur "cutten" und diese wieder abspeichern.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.
 

fliege

BeitragDo, Mai 11, 2006 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann musst du ja nur die nächste 2er Potenz nehmen und den Rest Transparent malen...

Oder versteh ich da wieder etwas falsch?

EPS

BeitragDo, Mai 11, 2006 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Jep, tust du Wink Aber nix für ungut.
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier

Man kann sich öfter als zweimal im Leben halb tot lachen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group