- 最后登录
- 2022-10-8
- 注册时间
- 2010-12-6
- 阅读权限
- 100
- 积分
- 14150
- 纳金币
- 76544
- 精华
- 23
|
一个软渲染器至少应该提供3D---》2D的变换,纹理映射等功能,不然连截图都不好截。由于用习惯了DX,所以结构上应该和DX有点神似!!而在数据处理方式上,我还是觉得OPENGL的爽,省了一堆BUFFER。哈哈!
下面是暂定的渲染器结构,大概如下:
Device:由于是一个软渲染,所以,“设备”是一个抽象出来的东西。通过它我们能够操作数据的绘制,就像我们真正在操作一个图形设备一样!
Graphic Painter:这个是专门用于绘制像素到屏幕的工具,可以选有DDraw,GDI,SDL或者其它的绘制方式。
DeviceState:设备状态管理,记录了设备的当前状态。用于控制最终效果
VertexProc:顶点处理,这个阶段将输出的顶点信息(法线,位置,纹理坐标)等处理(空间变换,裁剪,剔除,计算光照,光栅化)完毕,则得到了光栅化后的三角形(OPENGL中叫片元:fregment)。
PixelProc:即像素处理阶段,这个阶段主要是处理纹理映射,以及ALPHA,雾化等后期效果。
可以看出,和DX的划分有点类似。 不过呢,总体感觉来说,比写在一起要清析多了。 已经写出一整个框架,并已测试通过。空间变换没有做完。做完后就能看到效果啦。 |
|