poniedziałek, 15 stycznia 2007

Shader and MovieTexture

MovieTexture jest węzłem który umożliwia zastosowanie jako tekstury pliku video. BS Contact dodał obsługę shaderów do scen VRML/X3D.
Zrobiłem kilka przykładów jak shadery mogą pełnić funkcję filtrów postprodukcyjnych dla filmów video. Oto przykłady: obraz czarno-biały, kontury na czarnym tle, szarość, kwantyzacja, odwrócenie kolorów, sepia, płaskorzeźba, przebarwienie.


Cała rzecz opiera się na wykorzystaniu HLSL a szczególnie Pixel Shader v 2.
Oto przykładowy kod Pixel Shader odpowiedzialny za tworzenie szarości

sampler2D image : register(s0);
float4 main(
float4 Pos : POSITION,
float2 texCoord: TEXCOORD0) : COLOR
{
float4 img = tex2D(image, texCoord);
// konwersja do szarości
float4 sum = dot(img, float4(0.30f, 0.59f, 0.11f, 0.0f));
sum.a = img.a;
return sum;
}

sobota, 13 stycznia 2007

Flex 2.0.1

Adobe wypuściło uaktualnienie do wersji 2.0.1
Co nowego?

  • Flash Builder 2.0.1 działa pod Eclipse 3.2
  • Dodano narzędzie dokumentujące kod ASDoc
  • Można wpływać na wygląd aplikacji poprzez to można zmieniać w czasie działania arkusze styli kaskadowych CSS ( nowa wersja Flex Store pokazuje że wystarczy zmienić CSS podczas działania i zmieni się wygląd) Przykłady: OrangeFlash Opis można przeczytać w dokumentacji
  • Najważniejsza rzecz to wprowadzenie modułów. Moduły są to takie biblioteki które są uruchamiane i ładowane do aplikacji podczas jej działania. Pierwszy o nich pisał Roger Gonzales a także Peter Ent M0duły są tym co AJAX dla stron internetowych. Oto przykład (wraz z kodem) wykorzystujący modularność. Od strony ActionScriptu dodano pakiety mx.modules.* a dla MXML znacznik Warto przejrzeć dokumentację o tworzeniu modularnych aplikacji

Uaktualniono dokumentację

poniedziałek, 8 stycznia 2007

Pluginy VRML / X3D

Od pewnego czasu testuję sporo światów 3D napisanych w VRML/X3D. Jak na komputerze mam kilka wtyczek to czasami uruchamia się nie ta przeglądarka VRML/X3D co powinna.
Pod Internet Explorerem rzadziej się to zdarza, niż pod Firefoxem. Internet Explorer bazuje na atrybucie classid znacznika OBJECT, a potem na rozszerzeniu. Natomiast Firefox bazuje na atrybucie type znacznika OBJECT/EMBED, a potem na rozszerzeniu.

Zasada instalacji jest taka że obsługę większości formatów VRML/X3D bierze na siebie ta wtyczka którą ostatnio się instalowało. Sugerowana kolejność instalacji: Octaga, Flux, BS Contact, Cortona. Przygotowałem bibliotekę JavaScript VRMLObject.js której zasadą jest osadzanie plików VRML/X3D tak aby można było oglądać pod określoną przeglądarką VRML. Oto demo. Przetestujcie sobie pod IE i Fx.

środa, 3 stycznia 2007

A może jednak MPEG-4?

Zastanawiając się nad dalsza ewolucją technologii internetowych warto wspomnieć o standardzie MPEG-4. Od strony technicznej jest to odpowiednio przegotowany plik zawierający informacje o tym jak przetwarzać dane zawarte w nim.

Ponieważ VRML97 i jak X3D są standardami ISO więc można było dodać obsługę tych standardów w do MPEG-4.

Jak to wygląda dziś? Otóż standard MPEG-4 jest kojarzony z plikami mp4. W większości przypadków są to pliki video zakodowane według kodeków które są zaaprobowane przez MPEG-4 jako część specyfikacji MPEG-4 Audio (znane bardziej jako kodek AAC) czy MPEG-4 Video (znane jako MPEG-4 Part 2, albo MPEG-4 Part 10 czyli H.262).

Ale to nie koniec możliwości MPEG-4. Do MPEG-4 przewidziano też obsługę opisu prezentacji danych zarówno treści, multimediów oraz światów i modeli 3D.

W praktyce to polega na tym ze kod prezentacji pisze się w języku wyższego poziomu pod nazwą kodową B4 i następnie to się kompiluje do postaci zgodnej ze standardem o nazwie XMT natomiast grafikę i dane binarne konwertuje do postaci BIFS.

BIFS to skrót od Binary Information Format for Scene, jest to binarny format w jakim zapisywane są informacje w pliku mp4 (mp4 to coś jak spakowany plik zawierający informacje) Do opisu danych używa się formatu XMT (Extensible MPEG-4 Textual format), który opiera się na XML. Oznacza to że do tego formatu można wstawiać dane typu Layer2D, SVG, SMIL, X3D.


IBM zrobił aplet JAVA który miał odtwarzać pliki XMT-0 zapisane jako mp4x.
więcej można zobaczyć na tej stronie

Jeden z współtwórców standardu MPEG-4 firma ENST opublikowała przeglądarkę Osmo-4, która ma otwarty kod źródłowy. Na podstawie tego rozwinął się GPAC to pakiet narzędzi do odtwarzania danych MPEG-4 i MP4Box jako narzędzie do tworzenia danych MPEG-4.
Jest to jedno z najbardziej zaawansowanych technologii multimedialnych z jakimi zetknąłem się. Najbardziej mnie zaskoczyło to że jest wtyczka do przeglądarek internetowych. Ponieważ z powodów licencyjnych nie można umieszczać plików binarnych do GPAC więc znaleźli się tacy co zrobili wersje binarne tych programów. Skompilowaną wersję na Windows można ściągnać od Celtic Druida Są to MP4MenuGui
MP4BoxGUI czy samo MP4Yoolkit

Z innych odtwarzaczy plików mp4 można zaliczyć BS Contact MPEG-4 a dema można obejrzeć na tej stronie Kolejny przykład to wykorzystanie MAXPEG Playera
i jego przykłady wysokiej jakości filmów i jak interaktywności

Do MPEG-4 playerów można też zaliczyć Dicas Mpegable (do ściagniecia stąd) i Envivio Player
oraz Philips WebCine Player