Hướng dẫn lập trình OpenGL ES thảo luận rằng bạn nên tránh dữ liệu đỉnh không thẳng hàng và đưa ra ví dụ về căn chỉnh dữ liệu với khối 4 byte.Sự liên kết quan trọng trong dữ liệu đỉnh opengl trong iOS
Tuy nhiên trong hầu hết các tài liệu giới thiệu và hướng dẫn Tôi đã tìm thấy trực tuyến Tôi không thấy bất cứ ai làm điều này. Ví dụ bên dưới là từ một dự án demo trên 71 Hình vuông:
static const SSTexturedVertexData3D EnemyFighterVertexData[] = {
{/*v:*/{1.987003, -0.692074, -1.720503}, /*n:*/{0.946379, -0.165685, -0.277261}, /*t:*/{0.972816, 0.024320}},
Và bạn vẫn làm như thế nào? Thêm một giả 0,0 đến v và n và 2 của chúng vào t? Tôi đoán là nếu bạn chỉ tải dữ liệu đỉnh một lần cho mỗi ứng dụng thì nó sẽ không quan trọng lắm nhưng nếu ràng buộc và khôi phục lại các mảng khác nhau trên mỗi khung được hiển thị thì nó sẽ là vấn đề quan trọng. Kế hoạch của tôi là kết hợp tất cả các mảng của tôi với nhau, nhưng tôi tò mò.
Bạn có chắc chắn những điều trên chưa được căn chỉnh với ranh giới 4 byte không? Nếu mã bạn hiển thị đang sử dụng GLfloats, đó là các loại dữ liệu 32 bit (4 byte), do đó, bất kể có bao nhiêu trong số chúng, chúng luôn được căn chỉnh với một ranh giới 4 byte. Hướng dẫn này đề cập đến quần short và các loại dữ liệu khác. –
Tôi đã tự hỏi điều đó. Cảm ơn! Bạn nên đặt câu trả lời đó để tôi có thể đánh dấu nó. – badweasel
Tôi có thể, nhưng nó không trả lời câu hỏi cơ bản hơn về cách liên kết byte quan trọng của dữ liệu đỉnh là hiệu suất. Điều đó có thể yêu cầu một số điểm chuẩn để minh họa đầy đủ. –