我正在尝试实现简单的软件3D引擎.所以我需要一个矩阵4x4来表示变换.我的矩阵的每个单元格类型都是System.Double格式,这意味着整个矩阵将使用8个字节*16个单元格= 128个字节.目前我已将此作为一个类实现.此矩阵也是不可变类型.
所以现在,当我试图通过这个矩阵乘以向量时,我正在做这样的事情:matrix.m11*vector.X(etc ...).我认为,要访问字段m11,程序首先需要获取'矩阵'参考值,然后检查它是否为null,然后找到m11值,是吗?如果我将类更改为struct,我的乘法会变得更快?我知道128字节结构很大,但如果我编写只使用ref/out keyowrds的方法?这将是很好的选择?
正如我在SharpDX库中看到的,矩阵是一个结构.我应该将类更改为struct然后提高性能吗?
xoo*_*ofx 15
我不建议使用类来存储3D引擎的double4x4矩阵,原因如下:
fixedC#中的单个指令.它也适用于与其他库的互操作(物理引擎将期望float4x4结构而不是对象实例)另外,如果你关心表现:
ref在所有矩阵计算中通过而不是通过复制传递矩阵.| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |