Giải thích dễ hiểu nhất về stride

Chào mọi người! Mình đang học opengl cơ bản. Lúc mình học thì có gặp cái hàm này glVertexAttribPointer(), trong hàm này có một tham số là stride mà mình không hiểu nó có nghĩa là gì (mình có đọc qua tài liệu và ảnh minh hoạ mà không hiểu cho lắm). Bạn nào biết thì giải thích cho mình nhé.

Coi cái ảnh như 1 ma trận dữ liệu. Ví dụ ảnh RGB thì mỗi pixel gồm 3 byte R,G,B.
Như vậy theo suy nghĩ thông thường ta tính được số byte dữ liệu trên 1 row = width * 3.
Nhưng sự thật thì không phải khi nào cũng thế mà số byte dữ liệu trên 1 row = width * 3 + x. (x là một con số thay đổi tùy trường hợp).
Thông số về số byte trên 1 row dữ liệu cần thiết trong nhiều trường hợp tính toán xử lý và người ta gọi là thông số đó là stride.
image
Đọc thêm đoạn đầu ở link dưới. Nhớ là đọc đoạn giải thích stride thôi chứ đừng đọc hết không lại lú thêm =))

9 Likes

Cảm ơn bạn! mình nghĩ mình hiểu kha khá rồi.

Cái này mới đúng nha bạn, vì đó là vertex attrib chứ ko phải pixel.
https://stackoverflow.com/questions/27210032/what-is-vertex-stride#:~:text="stride"%20in%20general%20refers%20to,the%20vertex%20in%20the%20array.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?