1.双击根目录下的cmakeDo.bat,CoolEngine\render下会生成build文件夹。
2.使用VS打开 build文件夹下 ALL_BUILD.vcxproj运行。
3.设置启动项目
设置项目编码为UTF-8
方向键左右键旋转,前后键前进后退。 键盘F1-F3控制culling模式。空格键切换渲染模式。 ESC退出。
为了清晰地组织项目,并允许未来添加更多模块。项目结构设置如下:
github/CoolEngine/render/
├── build/
│ └── (这里存放 CMake 生成的构建文件和 Visual Studio 工程)
│
├── obj/
│ └── (这里存放美术资源,例如:.obj 模型,纹理等)
│
├── scripts/
│ ├── include/
│ │ └── pipe_header.h
│ ├── main.cpp
│ ├── some_other_file.cpp
│ └── CMakeLists.txt <-- scripts 模块的 CMakeLists 文件
│
├── CMakeLists.txt <-- 主 CMakeLists 文件
└── cmakeDo.bat <-- CMake 构建脚本放在这里
- CoolRenerMain类:windows窗口,引擎渲染的tick主入口
- Model类:加载模型
- maths类:数学库
- Camera:摄像机
- geometry:矩阵计算
- Scene:场景类
- Shader:shader类
- renderMath:渲染时的坐标系变换
- 韦易笑的博客 http://www.skywind.me,以及他的C语言实现的渲染器
- 国外一个开源的渲染器教程 https://github.com/ssloy/tinyrenderer/wiki/Lesson-2:-Triangle-rasterization-and-back-face-culling
- C++编写,没有任何第三方库依赖,使用模板编写数学库
- 支持加载Obj、支持加载Png纹理
- 尽量靠近Unity的设计,增加了object、transfrom、camera等、顶点排序顺序、X-Y-Z轴朝向
- 支持多相机
- 增加了多个物体同时渲染 :支持多个默认形状:平面/立方体/球形
- 增加光照模式:平面着色和高氏着色 、顶点光照、面法线光照
- 增加了摄像机的正面剔除/背面剔除
- 增加了点光源阴影
- 简单 CVV 裁剪
- 最大支持 1024 x 1024 的纹理
- 使用深度缓存判断图像前后
- 透视纹理映射以及透视色彩填充
- 提供更多渲染模式
- 实现二次线性差值的纹理读取
- 从jpg、bmp/TGA文件加载纹理
- 附带光线跟踪
- 优化顶点计算性能
- 优化 draw_scanline 性能
- 载入 BSP 场景并实现漫游
- 场景组织、层次细节、动态光照