Więc czytałem "Oficjalny przewodnik OpenGL" oraz w dziale, w którym nauczali oświetlenia materiałowego, nagle użyli "płaskiego" kwalifikatora dla zmiennej wejściowej w shaderze fragmentu. W tej sprawie wziąłem pod uwagę i wszystko, co wymyśliłem, to "płaskie cieniowanie" i "płynne cieniowanie" oraz różnice między nimi, których nie rozumiem, jak są one powiązane z prostą zmienną "MatIndex". oto przykładowy kod z książki:Kwalifikator "płaski" w glsl?
struct MaterialProperties {
vec3 emission;
vec3 ambient;
vec3 diffuse;
vec3 specular;
float shininess;
};
// a set of materials to select between, per shader invocation
const int NumMaterials = 14;
uniform MaterialProperties Material[NumMaterials];
flat in int MatIndex; // input material index from vertex shader
Co w tym wszystkim chodzi?
Przepraszam, ale co oznacza "interpolacja" w naszym kontekście? Angielski nie jest moim ojczystym językiem i kiedy próbuję uzyskać tłumaczenie w moim języku, otrzymuję "interpolatsia", czyli to samo słowo. = [ – Pilpel
@Pilpel: [interpolacja] (https://en.wikipedia.org/wiki/Interpolation) to ogólna koncepcja, którą powinieneś poznać, kiedy chcesz robić grafikę. Przy interpolacji zwykle ma się zestaw punktów danych i próbuje wygenerować wartości dla pomiędzy danymi punktami danych. W tym kontekście mamy dane na temat werteksów i musimy je interpolować na fragment. Wyobraź sobie trójkąt z kolorem na wierzchołek.Dla wierzchołka A określamy kolor czerwony, dla wierzchołka B, określamy kolor zielony, a dla wierzchołka C kolor niebieski. Interpolacja generuje gładkie gradienty kolorów w całym trójkącie. – derhass