media_play + Textur + Shader

Posted By: Superku

media_play + Textur + Shader - 10/02/12 22:25

Ich habe eine Entity im Level und zeichne per media_play Videos auf ihre Textur. Diese kann ich aber nicht an den Shader übertragen, da erscheint nur ein schwarzes Bild - mit DEBUG_BMAP anzeigen kann ich sie aber schon.
Handelt es sich um einen Bug oder eine Hardwarelimitation (oder um einen Denkfehler)?

Code:
BMAP* bmp_video = NULL; // oder testweise auch mit Angabe einer Bilddatei
...
bmp_video = bmap_for_entity(my,0);
media_play("video.wmv",bmp_video,100);
...
texture bmp_video_bmap;


Folgender Code resultiert übrigens in einem "Parameter unknown" Error, ist das beabsichtigt?

Code:
BMP* bmp_video = NULL;

MATERIAL* mat_test =
{
	effect = "...";
	skin1 = bmp_video;
}

Posted By: jcl

Re: media_play + Textur + Shader - 10/04/12 07:21

media_play kopiert das Video in die Bitmap, so dass es sichtbar sein müsste. Vielleicht hat die Textur ein falsches Format? media_play benötigt 24 Bit.

Die Fehlermeldung in dem Code unten ist korrekt, denn die BMAP muss existieren, um sie in einer nachfolgenden Definition verwenden zu können.
Posted By: Superku

Re: media_play + Textur + Shader - 10/05/12 21:38

Also die Textur ist 24bit, aber wenn ich sie in der Engine "bmap_locke", erhalte ich 8888 als Format, was meines Wissens nach korrekt ist. Lösche ich die Textur jedoch vorher, erstelle eine ebensogroße 24bit Textur mittels bmap_createblack und setze diese als neue Skin, erhalte ich zwar wieder 8888 als Format, aber dann funktioniert es, die Textur im Shader einzulesen.

Ein Testszenario: http://www.superku.de/media_play.zip
Posted By: jcl

Re: media_play + Textur + Shader - 10/08/12 10:58

Danke, ich schaue mir die Testdatei an.
Posted By: Superku

Re: media_play + Textur + Shader - 10/20/12 01:12

Haben Sie schon Zeit gehabt, sich das Problem genauer anzuschauen?
Posted By: jcl

Re: media_play + Textur + Shader - 10/21/12 15:01

Ja, die Ursache ist einfach: die "_bmap" Texturen in Shadern müssen per Skript erzeugte Bitmaps sein, deshalb ist Ihre Lösung - Ersetzen der Textur durch eine Skript-Bitmap - korrekt. Alternativ können Sie auch eine Material-Skin verwenden.

Es gibt eigentlich keinen technischen Grund für die "_bmap"-Einschränkung, so dass ab der nächsten Version Shader auch auf Bitmaps von Modellen mit dieser Methode zugreifen können.
Posted By: Superku

Re: media_play + Textur + Shader - 10/21/12 16:52

Sehr gut, danke!
Posted By: HeelX

Re: media_play + Textur + Shader - 12/27/12 16:40

Originally Posted By: jcl
so dass ab der nächsten Version Shader auch auf Bitmaps von Modellen mit dieser Methode zugreifen können.


Wurde dies bereits in der V8.42 beta korrigiert? Kann ich davon ausgehen, dass dieses feature dann im nächsten offiziellen Release funktioniert?
Posted By: jcl

Re: media_play + Textur + Shader - 12/27/12 17:15

Ja, meines Wissens ist das in der aktuellen Beta implementiert.
© 2024 lite-C Forums