Autor Wątek: Nauka nowszej wersji OpenGL, czemu?  (Przeczytany 333 razy)

Offline jpacanowski

  • Użytkownik
    • http://jpacanowski.pl/

# Czerwiec 30, 2017, 19:20:39
Próbuję wrócić do OpenGL po wielu latach i stworzyć prosty silnik 3D... Mam dylemat czy brać się za ten nowszy OpenGL... Może ktoś z was mnie jakoś przekonać czemu miałbym się uczyć tego nowego OpenGL w którym trzeba tyle linii kodu wklepać aby wyświetlić sam trójkąt i jeszcze ta kupa w postaci kodu w łańcuchu znaków, podczas gdy w starym OpenGL to było tylko kilkanaście linii kodu aby wyświetlić trójkąt?

Jeszcze jedno... Czym się różni OpenGL od OpenGL ES? Wiem, że OpenGL ES to na urządzenia przenośne, chodzi mi czy oba się różnią trochę od siebie, czy może po prostu ES to tylko okrojony z niektórych funkcji OpenGL?
« Ostatnia zmiana: Czerwiec 30, 2017, 19:25:15 wysłana przez jpacanowski »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Sarann

  • Użytkownik

# Czerwiec 30, 2017, 19:37:08
Główną zaletą profilu rdzeniowego jest z pewnością dużo większa kontrola nad rendering pipeline, kilkukrotnie większa wydajność, no i możliwość łatwej implementacji oświetlenia/efektów w shaderach, ogólnie polecam.

Offline Mergul

  • Użytkownik

# Czerwiec 30, 2017, 20:34:55
Zależy co oznacza nowy OpenGL... bo dla mnie Twój opis idealnie się kojarzy przesiadce z OGL na Vulkan xD
Zalet OGL 3.0> nad starym OGL jest wydajność, czystsze api (jeżeli korzystamy z core), większe możliwości programów cieniujących.
GLES wychodzi trochę oddzielnie od OGL. Tak ze np. GLES 2.0 ma kilka rzeczy z GL3, a zarazem nie ma wielu z GL2, od początku nie ma starych funkcji typu glBegin, glEnd. GLES obsługuje inną kompresje tekstur, dużo bardziej trzeba polegać na rozszerzeniach niż na OGL (bo najzwyczajniej w świecie wielu rzeczy brakuje bez rozszerzeń), np. w GLES 2.0 tekstury musza mieć rozmiar potęgi dwóch, nie ma MRT, nie ma tekstur głębi, nie ma tekstur float, ani half float... ale większość z tych rzeczy ma prawie każdy telefon, ale jako rozszerzenie. W wersji GLES 3.1 wchodzą compute shadery, a geometry shadery dopiero w wersji GLES 3.2, więc trochę inaczej niż w przypadku OGL. Większość zmian wychodzi dopiero podczas kodzenia :D
GLES 2.0 jest dośc okrojony jeżeli chodzi o "liczby", wspiera mniej vertex attribs, mniej texture units, w sensie, mniej wymaga standard, więc można załozyć ze mają mniej, bo zazwyczaj tak jest.