因此,OpenGL 编程的一个关键要求是您以保证连续内存的方式存储顶点。我最近读了几本专业图形程序员写的不错的书,他们都使用了相同想法的变体:将顶点打包struct
为 3的 a floats
,x,y,z,然后将多个顶点打包为 c 样式数组或std::vector
这些structs
。它有效。
但是我在这个网站上一次又一次地看到它说 astruct
不能保证内存连续性。有人说,如果您的结构包含所有内容,floats
那么它们可能是连续的,但不能保证。 并且确实保证了这一点,但是如果您放入数组或向量中的内容不连续,那就无关紧要了array
。std::vector
对于生产代码,我希望“可能”不会削减它。因此,尽管这两本书中的建议显然更适合学习,但我想知道还有哪些其他好的技术可以以保证连续内存的方式轻松组织顶点数据,或者,我会接受建议我不应该担心这个,这可能已经足够好了。
图形领域还有哪些常用的好方法?