共计 13 篇文章

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

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

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

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

Java软光栅渲染器-光栅化2D三角形

目标 光栅化2D三角形(scan conversion)。避免重复光栅化相邻三角形边界的像素(edge equation)。 光栅化空心三角形 光栅化实心三角形 避免重复光栅化相邻三角形边界的像素 实现 继续为ImageRaster增加光栅化三角形的功能。 空心三角形 这一步几乎不需要做任何多余的事情,直接调用3次 drawLine 就行。 /** * 画空心三角形 * */ public void ...