2011-08-27 7 views
12

Pierwsza; jak są kompilowane moduły cieniowania OpenGL? Czy są one skompilowane na procesorze lub GPU, czy też różnią się w zależności od implementacji? Czy różni dostawcy mają różne wyjścia binarne; jeśli tak, to czy możliwe jest przekompilowanie pliku binarnego dla jednego typu GPU na innym GPU? Zajmuję się tworzeniem gier, które zamierzam uruchomić na procesorach Intel GFX, kartach ATI i kartach NVidia. Wolałbym wysyłać tylko binarne części shaderów, bez konieczności kompilowania źródła na komputerach klienckich. czy to możliwe? Jak działa proces kompilacji shaderów?Czy moduły cieniujące OpenGL są kompilowane na GPU lub procesorze? W jaki sposób moc binarna różni się w zależności od producenta karty graficznej?

Odpowiedz

11

Proces kompilacji jest, ogólnie biorąc, wykonywany na procesorze. Jednak dane wyjściowe różnią się nie tylko od dostawcy, ale również od modelu. Jako takie, moduły shaderów muszą zostać przekompilowane na komputerze użytkownika, aby zachować kompatybilność z dowolnym modelem procesora graficznego, którego może używać użytkownik (w tym modele GPU, które mogą nie istnieć podczas pisania gry!)

+0

Czy to jak radzi sobie większość komercyjnych gier? – IDWMaster

+2

Tak. Możesz spróbować uczynić to mniej oczywistym poprzez zaciemnienie zawartości twojego modułu cieniującego (np. Zaszyfrowanie go tak, aby nie było wyświetlane w zwykłym tekście, usuwanie komentarzy i zmiana nazwy mieszkańców, itp.), Ale musisz mieć ten kod źródłowy na końcu. – bdonlan

Powiązane problemy