我是 C++ 的新手,有时我不确定什么是更好的性能/内存方式。我的问题是我需要具有两个指向 vec3(3 个浮点数)和 vec3/vec2 的指针的结构。
现在我正在尝试决定是否使用: - 具有两个构造函数的联合,一个用于 vec3,一个用于 vec2 - 创建两个结构,一个将包含 vec2 和一个 vec3
struct vec3
{
float x,y,z;
};
struct vec2
{
float x,y;
};
struct Vertex
{
template <typename F>
Vertex(vec3 *Vertices,F Frag)
: m_vertices(Vertices),m_fragment(Frag)
{}
union Fragment
{
Fragment(vec3 *Colors)
:colors(Colors)
{}
Fragment(vec2 *Texcoords)
:texcoords(Texcoords)
{}
vec3 *colors;
vec2 *texcoords;
} m_fragment;
vec3 * m_vertices;
}
这段代码运行良好,但我很担心性能,因为我打算经常使用 Vertex 结构,我的程序可能有数千个 Vertex 结构实例。