尝试使用 渲染系统(WebGL, OpenGL, 也可以使用 一些引擎来更方便的试下,如:Unity 的 Graphics,DX 等),实现以下内容:
- 实时的 输出 两个 2d 或是 3d 向量的 点乘结果,并调整两个向量,观察 结果 有什么 规律
- 如果將 -1~1,转为 0~1,反过来如何转换
- 了解 什么是单位向量
- 实时的 绘制 两个 2d 或是 3d 向量的 叉乘结果,并调整两个向量,观察 结果 有什么 规律
- 可以使用现成 API,或是自己实现一个 向量 结构体,尝试使用下列功能
- 向量 单位化
- 向量 大小
- 向量 四则运算
- 向量 点乘
- 向量 叉乘
- 什么是 法线
- 如何确定三角形的 正背面
- 绘制 一个纯白色三角形
- 绘制 两个三角形,并组合为一个四边形
- 暴露一个 颜色 来调整四边形的颜色
- 给四边形添加一个 纹理,并让四边形采样输出
- 将 uv 数值调整一下,分别看看对 uv 的 缩放 和 位移 时,四边形的纹理是如何的表现
- 了解 什么是向量
- 什么是 齐次坐标
- 什么是 矩阵,创建或使用一个 矩阵 结构体
- 表示 旋转
- 表示 缩放
- 表示 移动
- 表示 投影(这个稍微难一些,可以直接套公式)
- 正交投影
- 透视投影
- 利用 矩阵 实现下面功能
- 缩放 四边形
- 旋转 四边形
- 移动 四边形
- 创建或使用一个现成的 摄像机 类
- 切换正交/透视投影
- 可以设置 FOV(垂直方向的 FOV)
- 可以旋转角度镜头的旋转方向
- 设置镜头的近截面、远截面
- 绘制 两个四边形
- 设置 两个四边形 分别 不一样的颜色
- 设置 两个四边形 的混合配置,并调整 alpha 达到两个四边形可以透明的,但像素交集部分相互混合在一起
- 尝试 一个四边形 镂空 另一个四边形
- 尝试 一个四边形 遮罩 另一个四边形
- 尝试创建或使用一个 Mesh 网格类
- 自定义顶点数据,组合成一个 圆形
- 圆形边上的 法线生成
- 让圆形可以按照 法线方向移动顶点
- 使用 Mesh 导入一个现有的 球体
- 尝试给球体添加 Diffuse、漫反射经验模型:兰伯特
- 尝试给球体添加 Specular、高光 Phong 模型、Blinn-phong
- 尝试实现 天空盒
- 尝试将 天空盒 与 其他模型一起显示
- 尝试给模型添加 天空盒 反射
- 尝试给模型添加 天空盒 折射
推荐学习课程:
- GAMES 在哔哩哔哩可以看(GAME :Graphics And Mixed Environment Symposuim 计算机图形与混合现实研讨会)
- GAMES101-现代计算机图形学入门-闫令琪
- 由于时间关系,我目前只看了前面的一部分课程,但是可以了解到课程质量很高,GAMES 是国内举办的课程,非常不错,强力推荐哦
- 大家可以在 bilibili 搜索 GAMES 就可以找到对应的课程内容的视频了