Managed DirectX - skąd to wziąć?

0

Witam,

Szukając w sieci informacji na temat programowania DirectX w C# natrafilem na kilka tutoriali uzywajacych bilioteki Microsoft.DirectX...

Problem w tym, ze ja nie mam w ogole klasy DirectX (Visual Studio 2008 Professional). Wiec pytanie - czy to jest klasa wbudiowana w Visual Studio, czy mozna to gdzies sciagnac (ja nie znalazlem), ogolnie skad mozna to w ogole wziac? DirectX SDK jest przeciez tylko do Win32 a nie do .NET

0

sciągnij i zainstaluj DirectX SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=4e825a37-0c94-4421-9ec8-156e52525d11&DisplayLang=en

dodaj bibliotekę/biblioteki do projektu

user image

i szukaj w google "managed DirectX"

0

Ok, sciagnalem DirectX9c_redist (33 MB) i tam to znalazlem. Liczylem na oficjalne wspardzie dla DirectShow, ale wyglada na to ze nie ma tam tego :/

0

Ok, sciagnalem DirectX9c_redist (33 MB)

musisz sciągnąć SDK a nie DirectX Redist

tu masz linka do najnowszego dla tworzenia aplikacji w C/C++ i C#.
http://www.microsoft.com/downloads/details.aspx?familyid=572BE8A6-263A-4424-A7FE-69CFF1A5B180&displaylang=en

0

maciej_jl: ale twierdzisz, ze w tym sdk jest cos wiecej niz mam z DirectX9c_redist ? Jest tam oficjalna obsluga DirectShow dla .NET?
Bo jak mowilem, samo DirectX Managed jest w pakiecie, o ktorym mowie (3 MB).

A pobieranie ~500 MB po to, zeby wyluskac z tego jeden plik o wielkosci mniejszej niz 5 MB hmm

0

@othello: stałego łącza nie masz że się tak zapytam ? Limity transferu jakieś przesrane czy co że cię tak 500 MB przeraża ?
Musisz ściągnąć SDK. Pakiet redist jest do użytkowania DirectX przez gotowe aplikacje. SDK jest do tworzenia tych aplikacji.

0

No tak, ale w tym przypadku na jedno wychodzi, bo potrzebuje assembly DirectX-a, ktore po zarejestrowaniu umozliwia uzywanie, jak i tworzenie aplikacji (wiadomo jak to dziala w pod .NET)

No ale zobacze czy ten SDK zawiera cos ciekawego..

0

http://4programmers.net/DirectX

Masz tu wyjaśnione i skąd wziąć SDK, i to że zawiera ono biblioteki nagłówkowe Win32 (COM) oraz rejestruje assembly .NET jednocześnie, i to że DirectShow został już dawno przeniesiony do Platform SDK

0

Szczawik: ale z tego arta wynika ze managed DirectShow jako takiego nie ma, tylko jako COM? Poza tym, czemu niezalecane, to czego mam uzyc do przechwycenia i zapisania obrazu a kamery? Chyba nie vfw bo to juz w ogole prehistoria ze o wydajnosci nie wspomne

Bo do tego potrzebuje DierctShow - zamieszczalem jakis czas temu na forum program korzystajacy z DirectShow wlasnie do tego sluzacy, ale tam byla uzyta nieoficjalna wersja DirectShow.Net znaleziona na CodeProject. Pomyslalem ze sprobuje oficjanej od MS, no ale z tego co widze (i czytam w necie) takowej nie ma.... jezeli jest to niech mnie ktos poprawi

0

DirectShow nie został nigdy przeniesiony na .NET (z tego co wiem istnieją jedynie nieoficjalne porty, jak wspomniany powyżej). Zamiast tego Microsoft proponuje inne podejście: renderowanie obrazu (czy to z kamery czy z filmu, czy też (!) sceny trójwymiarowej) przez akcelerator graficzny. Zatem wszystko czego trzeba jest albo w ramach kodeków, albo w ramach Direct3D Graphics.. tak przynajmniej mówi teoria (czytaj: dokumentacja). Osobiście obraz z kamery przechwytywałem tylko w czasach DX8, więc współcześnie nie pomogę.

Zainteresuj się hasłem DirectX Video Mixing Renderer (VMR9).

0

Ok, wiec pytanie sie samo nasuwa - czy warto zmieniac podejscie - jednym slowem czy moge cos zyskac uzywajac akceleratora graficznego i Direct 3D?

Obsluga kamery bedzie dzialac na karcie raczej nie najwyzszych lotow i na kompie z prockiem 500 MHz. Przez DircetShow dziala znosnie, wiec czy warto sobie zawracac glowe? Chyba raczej odpuszcze, ale dzieki za wyjasnienie

0

Oczywiście, że zysk jest ogromny - przede wszystkim możesz do obróbki filmu w czasie rzeczywistym zastosować kartę graficzną, a nawet mechanizm Pixel Shader; możesz ale nie musisz. W ten sposób hardware'owo możesz zmieniać kolory, pozycję obrazu czy wręcz nakładać na niego dodatkową teksturę (logo, napisy), bez jakiegokolwiek obciążania procesora.

Jest to ogromny zysk i dla wydajności, ale też dla możliwości.

0

Hmm ale jedyne co jest mi potrzebne to zrzucanie obrazu z kamery do pliku (podglad niepotrzebny, aplikacja konsolowa albo jako usluga). Zadna obrobka nie jest przewidziana poza zastasowaniem kodeka MJPEG. Czy w takim przypadku odczuje wzrost wydajnosci?

Ale musze przyznac ze brzmi to dosc ciekawie. Jednak szukalem przykladow po necie i wszedzie jest tylko za pomoca DirectShow. :/ Na temat pobierania obrazu za pomoca Direct3D nie udalo mi sie znalezc nic :/ (tym bardziej w C#)

0

Na tym polu, jak wspomniałem, za bardzo nie pomogę. Może ktoś inny się zajmował takim problemem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1