OpenGL Vertex Arrays
טוב, הפעם יש לי שאלה די קשה.
שמשתמשים בVertex Arrays בשביל לצייר בOpenGL, יש שתי אפשרויות: Indices ובלי Indices.
Indices אומר שאתה מביא גם מערכים של מידע (Vertices, Normals, Texure Coordinates), וגם עוד מערך של מספרים שאומר "לך לאינדקס שכתוב פה בכל המערכים האחרים".
בכל, מקרה, כל זה טוב ויפה במידה ולכל vertex יש Normal אחד וTexCoord אחד.
אבל ברגע שיש יותר (יש את זה בכמעט כל מודל שיותר מסובך ממשטח מרובע), אין לי מושג מה אני אמור לעשות.
לVertex אחד יכולים להיות כמה TexCoords לדוגמא - אחד לכל polygon שהvertex הזה שייך לו.
הנה דוגמא פשוטה (הקוד שלה למטה)
[התמונה הבאה מגיעה מקישור שלא מתחיל ב https ולכן לא הוטמעה בדף כדי לשמור על https תקין: http://i293.photobucket.com/albums/mm66/wolfscaptain/VBOIndices.jpg]
קוד PHP:
float Vertices[] = { -1,+1,+0, // left top +1,+1,+0, // right top +0,+1,+0, // middle top +0,-1,+0, // middle bottom +1,-1,+0, // right bottom -1,-1,+0 // left buttom }; float Normals[] = { -1,+1,+0, // left top +1,+1,+0, // right top +0,+1,+0, // middle top +0,-1,+0, // middle bottom +1,-1,+0, // right bottom -1,-1,+0 // left bottom }; float TexCoords[] = { 0,1, // left-top corner 1,1, // right-top corner 1,0, // right-bottom corner 0,0 // left-bottom corner }; unsigned int VertexIndices[] = { 0,5,3, // A 0,2,3, // B 1,4,3, // C 1,2,3 // D }; unsigned int NormalIndices[] = { 0,5,3, // A 0,2,3, // B 1,4,3, // C 1,2,3 // D }; unsigned int TexCoordIndices[] = { 0,1,3, // A 1,2,3, // B 0,1,3, // C 1,2,3 // D };
נערך לאחרונה ע"י Dragonion בתאריך 30-06-2009 בשעה 11:20.
|