共计 24 篇文章

Java软光栅渲染器-三维观察

目标 定义虚拟摄像机 计算观察变换矩阵 计算透视投影变换矩阵 计算视口变换矩阵 显示一个立方体的线框模型 本章相关源码: Camera Mesh 实现 这一部分的实现有点复杂,主要是各种变换矩阵的演算。我周五晚上第一次实现这个功能的时候,照抄jME3的代码,但是结果并不让人满意。 后来我感觉不弄明白计算方法是行不通的。于是花了两天时间学习各种资料,并在纸上推算了一遍,周日才把程序改对了。错误的原因, ...

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

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

Java软光栅渲染器-矩阵

目标 定义并实现3x3矩阵的运算 扩展实现4x4矩阵 源代码: Matrix4f Matrix3f 实现 矩阵的数学定义 在线性代数中,矩阵就是以行和列形式组织的矩形数字块,可以使用二维数组来描述一个矩阵。使用大写加粗的字母来表示矩阵,如:M、V、P。使用小写的m[i][j]来表示矩阵中第i行第j列元素。 ...

Java软光栅渲染器-四元数

目标 定义四元数,并实现四元数的运算。 源代码: Quaternion 实现 关于四元数的意义、四元数与复数、四元数的共轭等概念,网上有太资料来学习,本文就不再多写了。我在实现四元数时,主要参考《3D数学基础:图形与游戏开发》第10章的内容。 理解四元数 如何形象地理解四元数? 四元数记法 四元数包含一个标量分量和一个3D向量分量。 ...