共计 3 篇文章

Java软光栅渲染器-空间变换

空间变换 目标 对于所有3D图形引擎来说,将一组向量从一个坐标空间变换到另一个坐标空间的操作是最常用的和最基本的操作之一。例如,一个模型的顶点数据通常以对象空间的坐标形式保存,而在渲染该模型前,顶点坐标必须变换到虚拟相机空间才能被正确处理。本章主要介绍不同笛卡尔坐标系之间的线性变换,包括简单的比例变换、平移变换和旋转变换。 《3D游戏与计算机图形学中的数学方法》,第4章 坐标变换 本文将要实现下列变换: 实现比例变换 实现旋转变换 实现平移变换 实现齐次坐标 实现法向量变换 表达形式的互相转换 实现 比例变换 对模型中任意顶点 v,分别沿x、 ...

Java软光栅渲染器-矩阵

目标 定义并实现3x3矩阵的运算 扩展实现4x4矩阵 源代码: Matrix4f Matrix3f 实现 矩阵的数学定义 在线性代数中,矩阵就是以行和列形式组织的矩形数字块,可以使用二维数组来描述一个矩阵。使用大写加粗的字母来表示矩阵,如:M、V、P。使用小写的m[i][j]来表示矩阵中第i行第j列元素。由于在程序语言中的数组下标一般都是从0开始的,因此实际第1行第1列元素,在程序中被写作m[0][0] |m[ ...

Java软光栅渲染器-3D数学库

目标 把顶点从三维世界空间变换至二维屏幕空间,绘制顶点(如银河星系数据),操控摄像机旋转模型。 在渲染3D场景之前,先得做一些数学工作。上面提到的“顶点”、“空间变换”、“旋转”等术语,都需要依赖3D数学库来实现。 至少要包括: 三维向量(Vector3) 四元数(Quaternion) 矩阵(Matrix) 空间变换(Transform) 这一阶段的主要目标就是实现这些数学库。 在实现的过程中,我的主要参考资料是 jMonkeyEngine ...