DirectX, która wersja na start

Odpowiedz Nowy wątek
2011-09-02 19:54
0

Witam.
Zamierzam uczyć się DirectX, lecz niestety nie wiem od której wersji zacząć. Proszę Was o pomoc w dokonaniu wyboru. Wiem, że DX11 jest nowsza i prawdopodobnie lepsza, ale DX9 jest o wiele bardziej popularna. Tym większy kłopot sprawia to, że DX11 nie ma kompatybilności wstecznej. A wiele osób jest ograniczona 9, głównie z powodu systemu(XP), no a przecież jeszcze dochodzi do tego karta graficzna... Z drugiej strony zanim dobrze się nauczę pisać w DirectX, to może się coś zmienić, i to tym głównym będzie 11. Co radzicie?


Pozostało 580 znaków

2011-09-02 20:27
0

Nie znam się dokładnie na DXach, ale wersja 10 była "przełomowa", zrywała kompatybilność z wersją 9. ZTCW, DirectX 10 udostępnia tryb zgodności ze sprzętem DX 9 - oczywiście bez emulacji nowych sprzętowych własności na starym sprzęcie (trzeba to sprawdzić :P ). Tzn niekompatybilność jest na poziomie bibliotek. DirectX 11 to stricte rozszerzenie DX 10, tzn kod DX 10 spokojnie skompiluje się pod bibliotekami DX 11.

DX 9 wybierz tylko jeśli zamierzasz pisać na konsole. W innym wypadku wybierz DX 10 - generalnie sprzęt DX 9 jest i tak, jak na dzisiejsze czasy, tragicznie słaby. A zrobienie gry obsługującej DX 10, DX 10.1 i DX 11 naraz powinno być proste.

Oprócz DX jest oczywiście OpenGL. Jego też możesz brać pod uwagę. Albo gotowe silniki, np id Tech 3, OGRE, JMonkeyEngine, itp


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2011-09-02 20:27

Pozostało 580 znaków

2011-09-02 20:28
0
  1. starczy, bo i tak nie wykorzystasz DX11 więc nie będzie różnicy, a potem najwyżej kieedyś zaczniesz DX11 to będziesz już wiedział o co chodzi i zaczniesz to co w nim nowe. Tak przynajmniej w moim wydaniu.

BTW. Zapomniałem o 10. ;D


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>
edytowany 1x, ostatnio: xeo545x39, 2011-09-02 20:30

Pozostało 580 znaków

2011-09-02 21:08
0

Duże są po między nimi(9 i 11) w kodzie?
A może inni mają jeszcze swoje zdanie na temat co by było lepsze na początek?


Pozostało 580 znaków

2011-09-02 21:27

Generalnie ogólny schemat działania Direct3D w wersji 9, 10 i 11 jest podobny, różnica tkwi jedynie w nazwach funkcji i paru drobnych szczegółach. Wersja 9 jest najlepiej udokumentowana - mam na myśli to, że najwięcej dostępnych tutoriali i książek pisanych jest pod tą wersję. Decyzje MSa o niewspieraniu dłużej XPka jeśli chodzi o DirectX spowodowała zastój w technologii 3D dla Windowsa i w rezultacie 99% gier z górnej półki próbują wyciągnąć jak najwięcej z wersji 9. Na szczęście od kilku lat nowoczesne silniki graficzne oferują wsparcie dla nowych wersji DXa przy zachowaniu trybu pracującego z wersją 9. Przełomowym etapem będzie premiera Battlefielda 3, którego silnik (Frostbite) fizycznie nie będzie wspierał XPka, czyli także Direct3D 9.

Proponuję zatem postudiować Direct3D 9 i ogarnąć shadery. Framework samej biblioteki jest skromny, gdyż cały program graficzny opiera się w większości na shaderze. Jeżeli siedzisz na Windows Vista/7, to po jakimś czasie, jak już zrozumiesz co do czego służy, to możesz przepisać swój kod na wersję 11.

W swoim mini frameworku, w którym powsadzałem obiekty Direct3D do klas stworzyłem klasę abstrakcyjną "System Renderowania" i stworzyłem klasy dziedziczące od niej "System Renderowania Direct3D 9", "System Renderowania Direct3D 10", "System Renderowania Direct3D 11", "System Renderowania OpenGL", itd. Jeżeli miałeś już do czynienia z obiektami w C++, to to jest ciekawy przykład do skorzystania z tej funkcji :)

Aha, jeśli nie masz awersji do tutoriali w języku ang. to polecam książkę "Introduction to 3D Game Programming with Direct X 9.0c: A Shader Approach". Można znaleźć w sieci "wersję elektroniczną" :D

edytowany 1x, ostatnio: michalo2882, 2011-09-02 21:31

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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