如何在不复制数据的情况下将子弹转换转换为glm矩阵?

问题描述:

我有一个子弹转换,我想让它作为glm :: mat3类型访问。如何在不复制数据的情况下将子弹转换转换为glm矩阵?

但是,我想知道是否有一个很好的方式来做到这一点,而不需要复制(如make_mat3x3)。

在我剔除了GLM之后,我发现 - 无需修改源代码 - 这是不可能的。
复制是必需的。

两个子弹GLM缓存由矩阵,而不是指针或引用。

对于子弹,看到一个证据:http://bulletphysics.org/Bullet/BulletFull/btMatrix3x3_8h_source.html
对于GLM,看一个例子:https://glm.g-truc.net/0.9.2/api/a00132_source.html

如果您使用memcpy可能会更快,但我不确定是否有可能。
这取决于值的排序方式。
(我有限的知识约GLM

即使你设法让两个对象居住在同一地址,
会有一个可怕的问题是很难进行管理。 (例如双删除)

但是,在您尝试避免复制之前,您是否配置文件呢?
复制并不昂贵,真的。

几年前,我浪费了几个小时带着类似的问题。
在我的情况下,我想复制子弹的矩阵到Opengl缓冲区。尽管如此,在我描述它之后,我发现在我的所有游戏原型中都有 ,这个操作的成本不到整个逻辑的1%。

不值得努力,真的。
不成熟的优化是邪恶的根源。