OpenTK.Matrix4 中的奇怪随机值
Strange random values in OpenTK.Matrix4
我正在尝试使用 OpenTK 的 Matrix4 class 为项目构建模型视图矩阵。我正在尝试构建一个转换矩阵,但该矩阵一直在设置随机值。
这是控制台的屏幕截图:
这是我用来构建它的代码:
private static Matrix4 CreateModelview(Rectangle dst)
{
var scale = Matrix4.CreateScale(dst.Size.X, dst.Size.Y, 1.0f);
var translation = new Matrix4();
translation[0, 0] = 1f;
translation[1, 1] = 1f;
translation[2, 2] = 1f;
translation[3, 3] = 1f;
translation[3, 0] = dst.Position.X;
translation[3, 1] = dst.Position.Y;
translation[0, 3] = 0f;
translation[1, 3] = 0f;
Console.WriteLine("Translation:");
Console.WriteLine(translation);
Console.WriteLine();
Console.WriteLine("Scale:");
Console.WriteLine(scale);
Console.WriteLine();
var modelview = scale * translation;
return modelview;
}
我尝试了内置静态函数 Matrix4f.CreateTranslation,结果相同。
我自己解决的,是我翻转行和列的组合,然后错误地上传到我的统一缓冲区。
我正在尝试使用 OpenTK 的 Matrix4 class 为项目构建模型视图矩阵。我正在尝试构建一个转换矩阵,但该矩阵一直在设置随机值。
这是控制台的屏幕截图:
这是我用来构建它的代码:
private static Matrix4 CreateModelview(Rectangle dst)
{
var scale = Matrix4.CreateScale(dst.Size.X, dst.Size.Y, 1.0f);
var translation = new Matrix4();
translation[0, 0] = 1f;
translation[1, 1] = 1f;
translation[2, 2] = 1f;
translation[3, 3] = 1f;
translation[3, 0] = dst.Position.X;
translation[3, 1] = dst.Position.Y;
translation[0, 3] = 0f;
translation[1, 3] = 0f;
Console.WriteLine("Translation:");
Console.WriteLine(translation);
Console.WriteLine();
Console.WriteLine("Scale:");
Console.WriteLine(scale);
Console.WriteLine();
var modelview = scale * translation;
return modelview;
}
我尝试了内置静态函数 Matrix4f.CreateTranslation,结果相同。
我自己解决的,是我翻转行和列的组合,然后错误地上传到我的统一缓冲区。