
Kiedyś widziałem z DX9 na DX10 biblioteke dll do GTA ale nigdzie d/l nie ma.
Moderatorzy: Moderatorzy, Admini
Nie, nie jest. Do każdej gry wykorzystującej DirectX lub OpenGL możesz wrzucić zmodyfikowany .DLL od tychże bibliotek. W gigantycznym skrócie - DX i OGL zapewniają tzw. "warstwę abstrakcji" pomiędzy aplikacją i sprzętem+jego sterownikami. Dzięki temu programując możemy używać normalnych funkcji, a nie zastanawiać się jak w kodzie maszynowym zapodać do pamięci karty teksturę, model, nałożyć jedno na drugie, do tego zrobić masę przekształceń żeby to w ogóle wyglądało. Innymi słowy taki d3d8.dll odpowiada za komunikację gra<->sterowniki. Jako, że jest to biblioteka linkowana dynamicznie, gra najpierw szuka jej w swoim folderze, a dopiero później w folderach systemowych. Wykorzystując ten fakt wystarczy jedynie stworzyć własny przykładowy d3d8.dll zawierający wywołania funkcji identyczne z tymi z oryginalnego d3d8.dll, jednak z podmienionymi ciałami funkcji. I tak w tychże ciałach funkcji robimy ponowne wywołania - tym razem prowadzące do funkcji z DX9, DX10, DX11 lub DX6 jeśli jesteśmy samobójcami. Przy okazji możemy dowolnie zmodyfikować dane graficzne, a więc dodać shader-y, normal-mapy, a nawet tesselację. Funkcja zawsze dostaje tzw. "hak" do obrabianego zasobu (tekstura, model, audio, urządzenie wejścia, etc.), idąc po tym haku możemy wyciągnąć nazwę tekstury. Mając nazwę tekstury możemy wprowadzić prostą zasadę typu "sprawdź czy istnieje plik NAZWA_TESKTURY-NORMAL.PNG -> jeśli tak -> walnij z niego normal-mapę -> jeśli nie -> idź dalej". Niemal identyczna sytuacja tyczy się OpenGL (z tym, że tutaj jest nieco więcej zabawy w porównaniu do DX). Dorzucając przerobione pliki od DirectInput można nawet dodać obsługę pada od PS3, Xbox360 czy NES-a (jeśli przerobicie wtyczkę na COM-a albo LPT, bo na USB ciężej sterowniki napisaćMaKiPL pisze:Wciąż wymagany jest dostęp do źródła UE.