Vì vậy, tôi đã đọc "Hướng dẫn OpenGL chính thức" và trong một phần nơi họ dạy ánh sáng vật chất, họ đột nhiên sử dụng vòng loại "phẳng" cho biến đầu vào trong trình đổ bóng phân đoạn. Tôi google'd vấn đề và tất cả tôi đã đưa ra là "phẳng bóng" và "mịn bóng" và sự khác biệt giữa chúng, mà tôi không thể hiểu làm thế nào nó có liên quan đến một biến "MatIndex" đơn giản. đây là mã ví dụ từ sách:"phẳng" vòng loại trong 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
Đây là gì?
Xin lỗi nhưng "nội suy" có ý nghĩa gì trong ngữ cảnh của chúng ta? Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi và khi tôi cố gắng dịch nó bằng ngôn ngữ của tôi, tôi nhận được "interpolatsia", đó là cùng một từ. = [ – Pilpel
@Pilpel: [nội suy] (https://en.wikipedia.org/wiki/Interpolation) là một khái niệm chung bạn nên làm cho mình quen thuộc khi bạn muốn làm đồ họa. Với nội suy, người ta thường có một tập hợp các điểm dữ liệu và cố gắng tạo ra các giá trị cho inbetween các điểm dữ liệu đã cho. Trong bối cảnh này, chúng tôi có dữ liệu trên mỗi đỉnh và phải nội suy nó theo từng đoạn. Hãy tưởng tượng một hình tam giác có màu trên mỗi đỉnh.Đối với đỉnh A, chúng ta chỉ định màu đỏ, cho đỉnh B, chúng ta chỉ định màu xanh lá cây và cho đỉnh C, chúng ta chỉ định màu xanh. Nội suy sẽ tạo ra các gradient màu mịn trên toàn bộ tam giác. – derhass