【发布时间】:2013-04-04 11:18:08
【问题描述】:
用什么方法来存储矩阵值会更好?
float m1,m2,m3 ... ,m16
或
float[4][4].
我首先尝试了 float[16],但是当我在调试和测试时 VS 不会显示数组内部的内容 :( 可以实现 cout 并尝试从控制台测试应用程序读取答案。
然后我尝试使用 float m1、m2、m3 等进行测试和调试,这些值可以在 VS 中读取,因此看起来更容易使用。
我的问题是因为我对 c++ 相当陌生,什么是更好的设计?
我发现float m1,m2 ... ,m16 在调试时更易于使用。
如果有人可以根据经验说或者有基准数据,我的直觉认为这并不重要,因为矩阵数据在内存中的布局应该相同,所以我会很高兴吗?
编辑: 更多信息是列主矩阵。 据我所知,视图转换管道只需要一个 4x4 矩阵。 所以没什么大不了的,所以我有一些恒定的值。
忙于编写一个简单的软件渲染器,以此来学习更多 c++ 并获得更多经验并学习/提高我的线性代数技能。可能只会使用每个片段着色和一些简单的照明模型,到目前为止,我已经看到 4x4 矩阵是我渲染所需的最大矩阵。
编辑2: 发现为什么我无法读取数组数据,它是我使用的浮点指针,调试菜单只显示指针值我确实发现了一种在手表中查看数组值的方法,你必须在哪里做指针,n 其中 n =你想看到的元素。
所有回答谢谢的人我现在将使用 Vector4 m[4] 答案。
【问题讨论】:
-
在 VS 调试中甚至可以看到数组值。再检查一遍
-
您可以自定义 autoexp.dat 以指示调试器显示您对矩阵的需求。也就是说......如果没有更多细节,就无法确定最佳实现(从性能的角度来看)。您将如何使用该矩阵?您将应用哪些操作?你会支持哪些算法?通常“拆分”的变量非常好,但是...如果它真的是一个瓶颈...配置文件配置文件然后测量。
-
std::array<float, 16>. -
我会重新检查一遍,也许我做了一些愚蠢的事情。本机编程和 C++ 和环境的新手。