
这个项目用 EasyX 实现了软件渲染器,模仿了很多 OpenGL 的 API 定义(类似 OpenGL 运行库),然后在 main.cpp 里面写用户自己的模型及贴图代码。在源码中有详尽的说明。
软件运行可以得到如下的效果:
主要实现的功能:
- 一些简单的数学运算(矩阵相乘,向量叉乘等)
- 使用扫描线多边形填充算法绘制多边形
- 线性插值(linear interpolation)
- 透视校正插值(perspective correct interpolation)
- 深度测试(用于消隐)
一些我想到的但是暂时没实现的功能:
- 不支持 ddx 和 ddy,所以没有 Mipmap,因为实现起来比较麻烦。
ddx 和 ddy 是指在屏幕空间上求
...

程序效果很简单,是一颗跳动的心脏,心脏下面有一行小字写着“七夕快乐”,按住鼠标左键并拖动可以让它旋转起来,按住右键可以让这颗心暂时停止跳动。
执行效果如下:
完整的源代码如下:
/////////////////////////////////////////////////////////
// 程序名称:致你的七夕礼物 —— 3D Heart
// 编译环境:Visual Studio 2017,EasyX 20151015(beta)
// 作 者:Nomango <www.nomango.cn>
// 最后修改:2017-8-19
// 项目类型:Win32 Console Application
//
#include <easyx.h>
#define _USE_MATH_DEFINES
#include <math.h>
#incl
...