基于https://github.com/ssloy/tinyrenderer项目构建
一个lua和C混合使用的软件渲染demo
- 注册函数到lua,尝试用lua调用c函数
- 熟悉c和lua之间栈操作
- 熟悉注册module
- 熟练使用userdata和table
- 尝试修改metatable(非继承)
- 熟悉类似OpenGL的工作流程
- 实现一个软渲染器:从绘制三角形开始 => 到画出有阴影的渲染图像
- 坐标系转换(MVP+viewport)
- zbuffer剔除
- 2 pass shading(shadow map)
- 应用texture, normal(or normal tangent)等纹理素材
cpp入口程序是TinyRenderer(是一个cmake的target)
修改environment.lua中的enable变量,来决定运行内容,main.lua中是实际的函数调用
Reload CMake时,lua修改会同步到build文件夹中(cmake file(COPY)触发)