Pytania otagowane jako opengl

W przypadku pytań dotyczących korzystania z biblioteki graficznej OpenGL.

9
Czy nowi programiści graficzni powinni uczyć się Vulkan zamiast OpenGL?
Z wiki : „Interfejs API Vulkan był początkowo określany przez Khrono jako„ inicjatywa OpenGL nowej generacji ” i że jest to „ gruntowna próba przeprojektowania w celu ujednolicenia OpenGL i OpenGL ES w jednym wspólnym interfejsie API, który nie będzie wsteczny kompatybilny z istniejącymi wersjami OpenGL ”. Czy więc tym, …
53 opengl  api  vulkan 

6
Jak mogę debugować shadery GLSL?
Pisząc nietrywialne programy cieniujące (tak jak piszą każdy inny nietrywialny kod), ludzie popełniają błędy. [potrzebne źródło] Nie mogę jednak po prostu debugować go jak każdy inny kod - w końcu nie możesz po prostu dołączyć gdb lub debugera Visual Studio. Nie można nawet debugować printf, ponieważ nie ma żadnej formy …
45 opengl  glsl  debugging 

1
Co oznacza „st” w kontekście OpenGL?
Widziałem ten termin stkilka razy, gdy patrzyłem na inne shadery fragmentów OpenGL. Nie wiem jednak, co to oznacza ani do czego służy. Oto przykład: uniform vec2 u_resolution; vec2 st = gl_FragCoord.xy/u_resolution; Rozumiem, że to przekształca współrzędne pikseli w znormalizowane współrzędne 0,0 - 1,0 zamiast 640 x 480 (na przykład). Widziałem …
19 opengl 

2
Co to jest przepustowość i jak działa?
Dokumentacja OpenGL stwierdza, że ​​przepustowość returns the sum of the absolute value of derivatives in x and y. Co to oznacza w kategoriach mniej matematycznych i czy można to sobie wyobrazić? W oparciu o moje rozumienie funkcji, fwidth(p)ma dostęp do wartości pw sąsiednich pikselach. Jak działa to na GPU, nie …
18 opengl 


1
Czy istnieje sposób generowania prymitywów w module cieniującym geometrię bez żadnej geometrii wejściowej?
Kilka lat temu próbowałem zaimplementować ten klejnot GPU w OpenGL do generowania terenu proceduralnego 3D za pomocą Marching Cubes . Artykuł sugeruje wdrożenie Marching Cubes w module cieniującym geometrię w celu uzyskania maksymalnej wydajności. Oznacza to, że muszę uruchomić moduł cieniujący raz dla każdego woksela w domenie, a on wygeneruje …

2
Jak zaimplementować trackball w OpenGL?
Po tak wielu lekturach dotyczących transformacji nadszedł czas, aby zaimplementować trackball dla mojej aplikacji. Rozumiem, że muszę utworzyć wektor od początku do miejsca kliknięcia myszy, a następnie inny od początku do miejsca zwolnienia myszy. Moje pytanie brzmi: czy muszę przekształcić współrzędne pikseli (x, y) na współrzędne świata, czy powinienem po …
15 opengl  trackball 

1
Kompatybilność z OpenGL, konwencje nazewnictwa i ARB vs EXT
Myślałem, że zrozumiałem, jak działają konwencje nazewnictwa i rozszerzenia OpenGL, dopóki nie natknąłem się na przypadek, który mnie pomieszał. Oto moje dotychczasowe zrozumienie: Bez przyrostka - np glGenBuffers(). Ta funkcja jest częścią podstawowego profilu. Strona wiki mówi mi, że został on dodany do profilu podstawowego począwszy od wersji 1.5. ARB …
14 opengl 

3
Jakie są metody renderowania przezroczystości w OpenGL
Mieszanie alfa można włączyć, aby powierzchnie były przezroczyste, na przykład: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Ale działa to tylko wtedy, gdy obiekty są renderowane w kolejności od początku do końca. W przeciwnym razie rzeczy w tle pojawią się przed bliższymi obiektami, np. Podłoga na obrazku …

1
Kiedy wyłączyć poprawną interpolację perspektywy (noperspective)
W GLSL domyślna interpolacja atrybutów wierzchołków jest ustawieniem domyślnym - można ją wyłączyć dla określonych atrybutów wierzchołków za pomocą kwalifikatora noperspective . Oprócz shaderów przetwarzających post nigdy nie widziałem wyłączonej perspektywy poprawnej interpolacji - czy są jakieś inne przypadki użycia? Czy to w ogóle robi różnicę pod względem wydajności?

1
Synchronizacja kolejnych wywołań OpenGL Compute Shader
Mam kilka shaderów obliczeniowych, które należy wykonać w określonej kolejności i których wyniki zależą od poprzednich danych wejściowych. Idealnie, nigdy nie będę musiał kopiować bufora po stronie klienta i wykonywać całej mojej pracy na GPU. Rozważ, że mam dwa shadery obliczeniowe skompilowane i połączone jako program_onei program_two. Załóżmy, że mam …

2
OpenGL - Wykrywanie krawędzi
Chciałbym załadować dowolne siatki i narysować grube czarne linie wzdłuż krawędzi, aby uzyskać efekt cieniowania. Udało mi się narysować czarną sylwetkę wokół obiektów za pomocą bufora szablonów. Możesz zobaczyć wynik tutaj: Brakuje jednak czarnych linii w samym obiekcie. Pomyślałem o sprawdzeniu normalnych nieciągłości: Sprawdzanie, czy sąsiedni piksel ma inny normalny …

1
Co dokładnie robi „makeContextCurrent”?
Jestem dość zdezorientowany tą funkcją. Odwołanie do kontekstu GLFW brzmi następująco: Ta funkcja sprawia, że ​​kontekst OpenGL lub OpenGL ES określonego okna jest aktualny w wątku wywołującym. Kontekst może być aktualny tylko w jednym wątku naraz, a każdy wątek może mieć jednocześnie tylko jeden bieżący kontekst. Ale niewiele mi to …
12 opengl  c++ 

2
Mapy pochodne a mapy stycznej do przestrzeni normalnej
Odkryłem, że niektóre silniki używają map pochodnych zamiast normalnych map w przestrzeni stycznej . Po krótkiej lekturze wydaje się to naprawdę świetny sposób na zastąpienie stycznych normalnych przestrzeni, ale czy korzystanie z nich jest niekorzystne? Po co nadal używać normalnych przestrzeni stycznej? Czy można porównać zarówno zalety, jak i wady?

2
GL_STATIC_DRAW vs GL_DYNAMIC_DRAW vs GL_STREAM_DRAW: czy to ma znaczenie?
W OpenGL funkcje obiektów buforowych ( glBufferData, glBufferSubDatai prawdopodobnie kilka innych) mają parametr usageopisany w dokumentacji jako wskazówka zamierzonego użycia, która prawdopodobnie ma pomóc w poprawie wydajności implementacji. stosowanie Określa oczekiwany wzorzec użycia magazynu danych. Stała symboliczny musi być GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, lub GL_DYNAMIC_COPY. [...] …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.