Quindi stavo leggendo "The Official OpenGL Guide" e in una sezione in cui hanno insegnato l'illuminazione dei materiali, hanno improvvisamente utilizzato il qualificatore "flat" per una variabile di input nello shader di frammenti. Ho cercato di risolvere il problema e tutto ciò che è venuto fuori è stato "ombreggiatura piatta" e "sfumatura uniforme" e le differenze tra di loro, che non riesco a capire come sia correlata a una semplice variabile "MatIndex". ecco il codice di esempio dal libro:qualificatore "piatto" 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
Che cosa è questa storia?
Scusa, ma cosa significa "interpolazione" nel nostro contesto? L'inglese non è la mia lingua madre e quando cerco di ottenere la traduzione nella mia lingua ottengo "interpolatsia", che è la stessa parola. = [ – Pilpel
@Pilpel: [interpolazione] (https://en.wikipedia.org/wiki/Interpolation) è un concetto generale con cui dovresti familiarizzare quando vuoi fare grafica. Con l'interpolazione, in genere si dispone di un set di punti dati e si tenta di generare valori per tra i punti dati specificati. In questo contesto, abbiamo dati per vertice e dobbiamo interpolarlo per frammento. Immagina un triangolo con colore per vertice.Per il vertice A, specifichiamo il rosso, per il vertice B, specifichiamo il verde e per il vertice C, specifichiamo il blu. L'interpolazione genera sfumature di colore uniformi su tutto il triangolo. – derhass