3D图形软引擎开发总结

前言

经过几个月的学习,终于将这个3D图形软引擎基本制作完成了。在这个过程中,学到了很多东西,掌握了基本的3D流水线的构成和基本的3D算法知识。


3D图形软引擎功能介绍

  • 支持纹理贴图
  • 支持pure着色,flat着色,gauraud着色
  • 支持光照处理
  • 进行了透视修正
  • 支持mipmapping
  • 支持z缓存, 1/z缓存
  • 支持.obj文件格式读取


由于是软件引擎实现,在进行alpha混合的时候,总是很慢,所以暂时没有在软引擎中支持该功能。


截图

3D图形软引擎开发总结_第1张图片

这个是演示Mipmapping的Demo,也是最终引擎的样子,可以看出,帧率下降了很厉害,需要进行优化


3D图形软引擎开发总结_第2张图片


这个是软引擎内置的一个地形生成方法,可以看出地形还不错,而且我觉得,其他的线框模式总是那么单一,所以,我给我的线框模式加上了渐变效果,看上去效果还可以。(^_^)


3D图形软引擎开发总结_第3张图片

这个是garaud着色的演示,使用茶壶模型来进行,但是,各位可以看到,填充的细节不是很好,需要完善,但是光照效果还是不错的。


3D图形软引擎开发总结_第4张图片


这个只是演示仿射纹理映射的Demo,在软引擎中,大部分时候都是采用点采样的方式来进行纹理映射,引擎中也实现了双线性滤波纹理映射的方法,但是速度很慢,所以并没有大量使用,而三线性滤波就没有实现了。


3D图形软引擎开发总结_第5张图片

这个是使用1/z缓存的Demo, 效果要比z缓存要精确,并且,可以在此基础上进行透视修正。在软引擎中,实现了精确的透视修正,和近似的线性分段透视修正两种透视修正方法。


总结

通过这段时间的学习,渐渐的发现自己很喜欢做3D的东西,所以,今后将会继续学习已经中断了的DirectX 9.0。 并且,在学习3D的过程中,同时继续现在的物理引擎的学习,希望可以掌握一些基本的物理知识,并且能够实际的应用在游戏开发中。期待ing!!!

在接下来的时间里,如果时间允许的话,会使用软引擎,做一个简单的游戏Demo出来,看看效果如何。用这个Demo来给这个软引擎,画上一个句号吧!!!

你可能感兴趣的:(3D引擎)