Autor Wątek: Khronos Releases Vulkan 1.0 Specification  (Przeczytany 2921 razy)


Offline Mr. Spam

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

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Luty 16, 2016, 18:02:28
Jaram się :D Zobaczymy, jak to nowe API przyjmie się na rynku. Dużo zależy na pewno od dostępności i jakości sterowników oraz narzędzi. Najbliższe miesiące i lata wszystko pokażą. Microsoft ma swój Direct3D 12, Apple ma swój Metal, ale to jedno API jest przenośne i to nawet między platformami dużymi a mobilnymi (nie ma specjalnej wersji "ES"). Konsorcjum Khronos wreszcie zrobiło to, co nie udało się przy okazji OpenGL 3.0 - zerwali ze wsteczną kompatybilnością, zaczęli wszystko od nowa i postawili na nowoczesność i prostotę.

Tymczasem... nie dla każdego takie niskopoziomowe API jest dobre.


Offline MrKaktus

  • Użytkownik

# Luty 16, 2016, 23:49:23
Sa drivery i sample na wszystko poza Windowsem na Intelu ;)
https://www.khronos.org/vulkan/

Offline Xion

  • Redaktor
    • xion.log

# Luty 17, 2016, 08:50:36
Vulkan to nie jest to samo co OpenGL czy DirectX. W porównaniu do nich, to API jest zdecydowanie bardziej lowlevelowe. Jego celem wydaje się raczej wyeliminowanie konieczności stosowania różnych hacków służących do "przekonywania" sterowników by zachowywały się tak a nie inaczej, i równocześnie ułatwienie życia autorom tychże sterowników, by nie musieli zgadywać np. czy to wywołanie DrawPrimitive jest jedyne w danej klatce czy może poza nim będzie 100 kolejnych.

Dla programistów gier Vulkan tak naprawdę nie ma prawie żadnego znaczenia, bo nikt przy zdrowych zmysłach nie będzie kodował gry bezpośrednio w API które wymaga ~3k linii kodu by wyświetlić oteksturowany sześcian. W najlepszym razie nowe wersje Unity itp. po przepisaniu na Vulkan będą działały szybciej i może oferowały więcej feature'ów, ale to nie stanie się z dnia na dzień.

Ale oczywiście przeważająca na Warsztacie frakcja silnikologów pewnie już ostrzy zęby i przeprojektowuje swoje endżyny ;-)

Offline Xender

  • Użytkownik

  • +2
# Luty 17, 2016, 09:41:05
Ale oczywiście przeważająca na Warsztacie frakcja silnikologów pewnie już ostrzy zęby i przeprojektowuje swoje endżyny ;-)

Gdzie Ty widzisz tych silnikologów (obecnie, nie X lat temu)?

Zresztą wiesz co, chyba wolę (jako programista), jak ktoś robi niedokończony silnik, niż "postawiłem klocka w Unity i jestem z tego dumny". :P

Offline Avaj

  • Użytkownik

# Luty 17, 2016, 10:31:31
Vulkan to nie jest to samo co OpenGL czy DirectX. W porównaniu do nich, to API jest zdecydowanie bardziej lowlevelowe. Jego celem wydaje się raczej wyeliminowanie konieczności stosowania różnych hacków służących do "przekonywania" sterowników by zachowywały się tak a nie inaczej, i równocześnie ułatwienie życia autorom tychże sterowników, by nie musieli zgadywać np. czy to wywołanie DrawPrimitive jest jedyne w danej klatce czy może poza nim będzie 100 kolejnych.

Dla programistów gier Vulkan tak naprawdę nie ma prawie żadnego znaczenia, bo nikt przy zdrowych zmysłach nie będzie kodował gry bezpośrednio w API które wymaga ~3k linii kodu by wyświetlić oteksturowany sześcian. W najlepszym razie nowe wersje Unity itp. po przepisaniu na Vulkan będą działały szybciej i może oferowały więcej feature'ów, ale to nie stanie się z dnia na dzień.

Ale oczywiście przeważająca na Warsztacie frakcja silnikologów pewnie już ostrzy zęby i przeprojektowuje swoje endżyny ;-)
3000 to przesada, gdzieś z  1000 linii kodu. Aczkolwiek to jest taki typ kodu, który wszyscy sobie owrapują w wysokopoziomowe API. Przykładowo stworzenie obrazka to około 30 linii kodu, ale jeśli nie mamy specjalnych wymagań i chcemy po prostu obrazek to wsadzimy to w funkcję create_my_image() i zapomnimy o tym.

Offline Xion

  • Redaktor
    • xion.log

  • +1
# Luty 17, 2016, 18:31:12
Cytuj
3000 to przesada, gdzieś z  1000 linii kodu.
Nope, nie przesadzałem.

Cytuj
Zresztą wiesz co, chyba wolę (jako programista), jak ktoś robi niedokończony silnik, niż "postawiłem klocka w Unity i jestem z tego dumny". :P
A ja od obu wolę jak ktoś zrobi kompletną grę i ją wyda, nawet jeśli miałaby być na Unity.

Offline MrKaktus

  • Użytkownik

# Luty 17, 2016, 21:14:35
Nope, nie przesadzałem.
No i co z tego ze 3000 linii?
Komu to przeszkadza?
Jezeli potrzebujesz renderowac w Vulkanie aby zyskac na wydajnosci to jestes zaawansowany i napiszesz te 3000 czy 10K linii kodu. I tak bedziesz wtedy pisal caly Rendering Backend.
Jak ktos pisze gre to jak uzywa C++ w UE4 to juz jest dobrze ;)

Offline Xion

  • Redaktor
    • xion.log

# Luty 17, 2016, 21:40:35
Geez, wyluzujcie. Musiałem naprawdę uderzyć w jakąś czułą strunę, bo wszyscy się jakoś zrobilli strasznie defensywni :<

A ja tylko stwierdzam, że 95% programistów gier Vulkana nie potrzebuje, między innymi dlatego że zrobienie w nim czegokolwiek na poziomie rzeczywistego gameplayu to robota na poziomie rzeżbienia w asmie. Od tego są silniki, frameworki, czy nawet API będące następcami OpenGL/DirectX -- które teraz można napisać całkowicie w userspace! -- żeby Vulkana przykrywały dla zdecydowanej większości użytkowników.

Offline koirat

  • Użytkownik

# Luty 17, 2016, 22:18:57
Pojawią się engin-y które będą udostępniał możliwość bezpośredniego dostępu do Vulkana.
Więc te kilkaset tysięcy linijek i więcej będzie już napisane, osobiście trzeba będzie dopisać tylko te kilkanaście tysięcy.

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Luty 18, 2016, 22:45:31
Vulkan to nie jest to samo co OpenGL czy DirectX.
Owszem, chyba że mówimy o Direct3D 12 - wtedy jest :)

Oczywiście zgadzam się z tym, że używanie bezpośrednio takich API jest sensowne tylko w szczególnych przypadkach i trudniejsze, niż to jest w DirectX <= 11 i OpenGL.

Kto wie, może nawet zaczniemy mówić o nowej warstwie na "stosie" grafiki, gdzie nad sterownikiem jest API niskopoziomowe, a nad nim kolejne - wysokopoziomowe - czy to OpenGL, DirectX czy Allegro, SFML? To by miało sens, bo nie każdą prostą grę (np. Tetris, Arkanoid) czy aplikację graficzną najlepiej jest napisać wykorzystując cały duży silnik (Unity, Unreal Engine). Takie proste API nadal są potrzebne.

A może ktoś napisze implementację OpenGL albo DirectX z użyciem Vulkana?

Offline remz

  • Użytkownik

  • +1
# Luty 20, 2016, 20:40:15
https://github.com/SaschaWillems/Vulkan

Link z vulkanowego reddita, w razie jakby ktoś już chciał zacząć się uczyć. Od trójkąta do postprocessów, przykłady w łatwiej przyswajalnej formie.