Về cơ bản, nó cho phép bạn kiểm soát ngữ nghĩa của các chỉ số thuộc tính riêng lẻ . Điều này chủ yếu được đền đáp trong các dự án lớn hơn, nơi bạn có nhiều shader khác nhau, tuy nhiên, thường sử dụng các thuộc tính khá phổ biến, ví dụ như vị trí hoặc tọa độ kết cấu. Với các vị trí thuộc tính rõ ràng, bạn có thể thiết lập một ngữ nghĩa cho các thuộc tính đó và thực thi rằng trên tất cả các shader của bạn , ví dụ: các vị trí luôn ở thuộc tính 0, tọa độ kết cấu luôn ở thuộc tính 1, ...
Đầu tiên, điều này có lợi thế là không phải truy vấn chỉ số thuộc tính cho mỗi shader . Tất nhiên bạn có thể truy vấn nó một lần và tìm kiếm nó trong ví dụ bản đồ từ tên thuộc tính / ngữ nghĩa đến các chỉ mục, nhưng thiết lập trước đó thậm chí còn tốt hơn. Và nó mang lại cho chúng ta một lợi thế lớn hơn nhiều, nếu không ràng buộc thuộc tính rõ ràng, bạn sẽ phải liên kết các mảng đỉnh của một mô hình với các kênh thuộc tính riêng lẻ không chỉ cho mỗi mô hình, mà còn cho mỗi shader , vì mảng vị trí của bạn có thể đi đến thuộc tính 0 trong một shader và thuộc tính 1 trong một cái khác.
Đây không chỉ là một rắc rối lớn mà về cơ bản còn phá hủy lợi thế của Vertey Array Object (VAO) , đặc biệt ở đó để nắm bắt tất cả trạng thái thuộc tính đỉnh, bao gồm các chỉ số thuộc tính được bật và nguồn bộ đệm của chúng để bạn có thể vẽ đối tượng của mình bằng cách chỉ ràng buộc VAO và gọi hàm vẽ. Nếu không ràng buộc thuộc tính rõ ràng, bạn vẫn sẽ phải kích hoạt / liên kết các mảng riêng lẻ ít nhất cho mỗi shader khác nhau mà bạn sử dụng. Với ràng buộc thuộc tính rõ ràng, bạn biết rằng vị trí của mô hình của bạn luôn đi vào chỉ số thuộc tính 0 .