GLSL to język cieniowania OpenGL. Użyj tego tagu w przypadku pytań, które dotyczą szczególnie shaderów napisanych w tym języku. W przypadku ogólnych pytań dotyczących shaderów użyj zamiast tego [shader].
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 …
Często zdarza mi się kopiować i wklejać kod między kilkoma modułami cieniującymi. Obejmuje to zarówno pewne obliczenia lub dane współdzielone między wszystkimi modułami cieniującymi w jednym potoku, a także wspólne obliczenia, których potrzebują wszystkie moje moduły cieniujące wierzchołki (lub dowolny inny etap). Oczywiście, to okropna praktyka: jeśli muszę zmienić kod …
Próbowałem wdrożyć Perlin Noise , używając tylko teorii (po flafla2.github.io/2014/08/09/perlinnoise.html). Niestety nie udało mi się uzyskać wyglądu „oryginalnego” hałasu Perlin. Jaki jest powód, dla którego poniższy kod renderuje blokową wersję Perlin Noise? Co powinienem ulepszyć / zmienić w kodzie, aby renderował szum Perlina bez artefaktów? Podejrzewam, że może występować problem …
Odkrywam cudowny świat matematyki i uderzam w wielką ścianę z PBR i nazwami, więc mam kilka pytań: O ile rozumiem, BRDF opisuje, w jaki sposób materiał reaguje na światło (przychodzące światło bezpośrednie i odbicia). Ale w „Cook-Torrance” nic nie widzę o odbiciach, nie rozumiem, jak je integruję, więc otrzymuję jedynie …
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?
Zastanawiam się, jaki jest najlepszy sposób zintegrowania funkcji pętli dynamicznej w module cieniującym? Po pierwsze, wydaje się, że tablice dynamiczne nie są możliwe. Czy zatem lepiej jest utworzyć tablicę o maksymalnym rozmiarze i wypełnić tylko jej część lub zdefiniować tablice o zdefiniowanych rozmiarach? Więc jaki jest najlepszy sposób na iterację …
Renderowanie sceny zwykle wymaga więcej niż jednego programu do cieniowania, który w moim przypadku używa tych samych atrybutów i dzieli co najmniej niektóre mundury. Aby działały poprawnie, obecnie gram bezpiecznie, co oznacza, że ponownie wiążę atrybuty i uzyskuję odpowiednie jednolite lokalizacje za każdym razem, gdy przełączam się między programami cieniującymi. …
Używając tekstur w GLSL, najlepiej obliczyć ostateczne współrzędne tekstury w module cieniującym wierzchołki i przekazać je do modułu cieniującego fragmenty za pomocą varyings. Przykład z prostym przerzuceniem we współrzędnej y: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, 1.0-texture.y); // …
Przede wszystkim chcę powiedzieć, że przeczytałem wiele postów na temat mapowania cieni za pomocą map głębokości i map sześciennych i rozumiem, jak one działają, a także mam doświadczenie w pracy z nimi przy użyciu OpenGL, ale mam problem z implementacją Technika dookólnego mapowania cieni przy użyciu jednopunktowego źródła światła w …
Usiłuję wdrożyć model BRDF mikrofacet. Czytam slajdy Sebastiena Lagarde . Wdrożyłem formuły do mojego kodu, ale myślę, że obraz wyniku jest nieprawidłowy. Żółty to podstawowy kolor materiału. Kolor zwierciadlany jest czerwony, aby prawidłowo widzieć. Mój kod: // Fragment Shader #version 330 core in vec3 Position; in vec2 TexCoord0; in vec3 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.