项目具体描述:1000行 JavaScript 实现的简易软件渲染器
时间:2018.5.1 - 2018.5.21(拖拖拉拉这么久)
部分截图:
已实现:
- 线框模式渲染
- 纹理模式渲染
- 二次渲染:render to texture
- 背面剔除:cw + ccw
- 基础光照:ambient + diffuse
- 深度测试
留坑:
- Tessellation
- Deferred Rendering
- PBR
项目文件结构:
asserts:资源部分js:JavaScript 代码-
mathcolor.js: Color 类 , RGBA 操作matrix.js: Matrix 类 ,矩阵基本运算 ,三维中运算矩阵(投影,变换等。。。)vector.js: Vector 类 ,向量基本运算 ,向量变换
-
camera.js:摄像机类,封装摄像机数据 -
device.js:核心类Device,三角形遍历,操作Shader渲染 ,设置渲染目标等 -
light.js:光照数据封装 -
model.js:模型数据封装,内置cube,plane模板数据生成,以及简单的模型文件读取 -
raster.js:核心类Raster,实现顶点插值Interpolate,画线算法Bresenham,三角形扫描线算法ScanLine等 -
shader.js: 模拟渲染管道可编程部分,支持顶点着色器(Vertex Shader) ,像素着色器 (Pixel Shader) ,内置定向光照着色器 (Direction Light Shader),点光源着色器(Point Light Shader)等。 -
texture.js:核心类Texture,实现纹理映射,Wrap和Clamp方式。
-
main.js:启动文件index.html: html 文件
( 留坑待填 )。。。。。。。。。。。。。。。。。。。。。。


