So las ich "The Official OpenGL Guide" und in einem Abschnitt, in dem sie die Materialbeleuchtung lehrten, verwendeten sie plötzlich das "flache" Qualifikationsmerkmal für eine Eingabevariable im Fragment-Shader. Ich google die Sache und alles, was ich kam, war "flache Schattierung" und "glatte Schattierung" und die Unterschiede zwischen ihnen, die ich nicht verstehen kann, wie es auf eine einfache "MatIndex" Variable bezogen ist. hier ist das Beispiel-Code aus dem Buch:"flat" Qualifier in 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
Was ist das alles?
Entschuldigung, aber was bedeutet "Interpolation" in unserem Kontext? Englisch ist nicht meine Muttersprache und wenn ich versuche, seine Übersetzung in meine Sprache zu bekommen, bekomme ich "Interpolatsia", das ist das gleiche Wort. = [ – Pilpel
@Pilpel: [interpolation] (https://en.wikipedia.org/wiki/Interpolation) ist ein allgemeines Konzept, mit dem Sie sich vertraut machen sollten, wenn Sie Grafiken erstellen möchten. Bei der Interpolation hat man normalerweise eine Menge von Datenpunkten und versucht Werte zwischen den gegebenen Datenpunkten zu erzeugen. In diesem Kontext haben wir Per-Vertex-Daten und müssen diese pro Fragment interpolieren. Stellen Sie sich ein Dreieck mit Farbe pro Ecke vor.Für Vertex A geben wir Rot an, für Vertex B geben wir Grün an und für Vertex C geben wir Blau an. Die Interpolation erzeugt glatte Farbverläufe über das gesamte Dreieck. – derhass