前言
经过几个月的学习,终于将这个3D图形软引擎基本制作完成了。在这个过程中,学到了很多东西,掌握了基本的3D流水线的构成和基本的3D算法知识。
3D图形软引擎功能介绍
- 支持纹理贴图
- 支持pure着色,flat着色,gauraud着色
- 支持光照处理
- 进行了透视修正
- 支持mipmapping
- 支持z缓存, 1/z缓存
- 支持.obj文件格式读取
由于是软件引擎实现,在进行alpha混合的时候,总是很慢,所以暂时没有在软引擎中支持该功能。
截图
这个是演示Mipmapping的Demo,也是最终引擎的样子,可以看出,帧率下降了很厉害,需要进行优化
这个是软引擎内置的一个地形生成方法,可以看出地形还不错,而且我觉得,其他的线框模式总是那么单一,所以,我给我的线框模式加上了渐变效果,看上去效果还可以。(^_^)
这个是garaud着色的演示,使用茶壶模型来进行,但是,各位可以看到,填充的细节不是很好,需要完善,但是光照效果还是不错的。
这个只是演示仿射纹理映射的Demo,在软引擎中,大部分时候都是采用点采样的方式来进行纹理映射,引擎中也实现了双线性滤波纹理映射的方法,但是速度很慢,所以并没有大量使用,而三线性滤波就没有实现了。
这个是使用1/z缓存的Demo, 效果要比z缓存要精确,并且,可以在此基础上进行透视修正。在软引擎中,实现了精确的透视修正,和近似的线性分段透视修正两种透视修正方法。
总结
通过这段时间的学习,渐渐的发现自己很喜欢做3D的东西,所以,今后将会继续学习已经中断了的DirectX 9.0。 并且,在学习3D的过程中,同时继续现在的物理引擎的学习,希望可以掌握一些基本的物理知识,并且能够实际的应用在游戏开发中。期待ing!!!
在接下来的时间里,如果时间允许的话,会使用软引擎,做一个简单的游戏Demo出来,看看效果如何。用这个Demo来给这个软引擎,画上一个句号吧!!!