Konfiguracja Visual 2017 do pracy z OpenGL i DirectX


#1

Zaczynałem swoją przygodę z programowaniem już parę lat temu (2005-2010). Potem miałem kilkuletnią przerwę ze względu na brak czasu (zabawa w ojca itp), a teraz postanowiłem wrócić do tematu. Ale na dzień dobry przeżyłem szok. Otóż za moich czasów wszystkie potrzebne pliki bibliotek i nagłówkowe linkowało się w kompilatorze i gotowe. Dzisiaj rzuciłem się na książkę OpenGL Księga Eksperta i okazało się, że bez CMake’a nie da się skompilować kodu. Zrażony do Opena rzuciłem się na Directa i następny zonk, bo kompilator domaga się nagłówków (na początek plik xnamath.h pewnie z SDK), a jak się okazuje obecnie nie ma już oddzielnego SDK do DirectX, a wchodzi on w skład SDK do Windows. Sprawdziłem odznaczenie w instalatorze Visuala “opracowywanie gier w środowisku windows” w skład którego wchodzi stosowny SDK Windows 10, obsługa Unreal i DirectX, ale to wciąż nie działa.
A moje pytanie brzmi: czy byłby ktoś tak dobry i napisał co powinienem zrobić, albo podesłał mi linka do dokumentacji z moim problemem? Próbowałem się dokopać do czegoś sensownego, niestety straciłem kilka godzin i dowiedziałem się niewiele…


#2

Udało mi się rozwiązać problem z Directem. Okazuje się, że wystarczy przeczytać fragment kolejnej książki Luny “Introduction do 3D Game Programming with DirectX12” (notabene kalce wszystkich poprzednich z minimalną zmianą uwzględniającą zmiany w bibliotece) dotyczący kompilowania przykładów:

  1. dodanie do kodu aplikacji Win32:
    #pragma comment(lib, “d3dcompiler.lib”)
    #pragma comment(lib, “D3D12.lib”)
    #pragma comment(lib, “dxgi.lib”)
  2. dołączenie do niej plików z przykładowym kodem.

Niestety OpenGl stanowi wciąż problem…


#3

Witam

chciałbym pomóc w tym temacie ale mogę tylko powiedzieć , że zrezygnowałem z konfiguracji VS dla OpenGL możliwe że nawet to działało u mnie ze 2 latatemu ale nie nie zostałem przy tym rozwiązaniu, mogę natomiast powiedzieć, że mam działający Eclipse IDE for C/C++ Developers
Version: Oxygen Release (4.7.0)
Build id: 20170620-1800
i jestem w stanie skompilować wszystkie przykłady załączone do książki "Open GL Księga experta wydanie VII(helion), trzeba mieć skonfigurowany prawdopodobnie cmake-3.10.1 i MinGW - to mam w properties projektu i include paths and symbols, mogę sie mylić co do cmake ale mingw na 100% jest potrzebne, nie pamiętam detali konfiguracji bo bawiłem się tym ze 2 lata temu.

pozdrawiam


#4

Zainstaluj sobie najnowszy sterownik do twojej karty graficznej, i sproboj moj silnik c++ zlozyc przez Visual Studio (MinGW nie testowalem)

Zainstaluj GIT, Python, NASM, Perl itp.

Wlasnie dzisiaj zrobilem release I dolozylem wszelakich staran aby budowaj sie 3 kliknieciami (Configure, Generate, Open) z CMake-GUI

Ale oczywiscie tylko jesli zrobisz checkout git’em bo uzywamy submodules do managmentu dependencies.

W naszym silniku “wrapujemy” OpenGL, ale rownie dobrze mozesz sobie pisac czysty OpenGL zaraz po uzyskaniu okienka bez uzywania naszego framework’u wogle (tak integrujemy np. CEGUI ktory ma wlasny OpenGL Renderer).

Tylko oczywiscie OpenGL 3.3+ core profile, nie compatibility profile :wink:


#5

Dzięki wielkie za sugestie. Pewnie też przetestuję, ale pomyślałem sobie, że gdyby zrezygnować z niezależności od platformy na rzecz windowsa i kompilacji projektu w visualu, to powinno wszystko działać bez problemu. Nie miałem jeszcze czasu, żeby usiąść do tematu, bo wsiąkłem w directx, ale wydaje mi się, że jeśli utworzę pustą aplikację windows, dołączę biblioteki opengl za pomocą #pragma i pliki nagłówkowe, to powinno wszystko śmigać.
Trochę się jednak pozmieniało przez te wszystkie lata, a najciekawsze, że C++ wygląda dziś trochę archaicznie na tle takich języków jak java, C# czy python. Poza tym wykorzystanie w bibliotekach niskopoziomowych operacji procesora eliminuje konieczność liczenia każdego cyklu i walki o każdy bajt pamięci. No ale odbiegam od tematu, a to nie ten dział.


#6

#pragma to choroba wszystich kompilatorow (nawet GLSL), bardzo utrudnia portowanie applikacji na pozniejszym etapie.

Bardzo polecam CMake+vcpkg na windowsie jesli chcesz szybko z czyms wystartowac w Visual Studio.