很可能咕咕咕. 后面那个 2 就是因为之前已经重新弄过一次了.
目前还几乎是啥都没做, 啥功能都没有.
一个3d空间, 里面有: 方块,正方形,线段,点, 分布方式类似与MineCraft(坐标是边长的整数倍,轴对齐). 方便起见, 后面将这四种几何体称为基元.
通过对基元进行组合,与在基元上附加一些信息, 来描述其他(或自身)基元的运动,创建销毁等事件. 从而可以生成由基元构成的模型, 模型动画等.
- 多个基元的组合: 主要表示容易通过空间位置表示的信息, 例如相对位置等
- 基元上的附加信息: 主要表示不容易通过基元表示的信息, 例如数字, 颜色等
逻辑该如何表示? 还没想.
基元的大小可以是2的幂次.
提供函数的功能. 将多个基元描述的规则, 封装到几个用于表示输入输出的基元上.
进度 | 功能 |
---|---|
正在做 | 渲染 |
未开始 | 场景管理 |
未开始 | 语言 |
目前可以画三角形了.
做完了:
- 简单的 Camera 控制
- GPU Instance 的封装
- 旋转的编码解码
- texture array
- 重构
正在做:
- gpu instance 有个上限 2048. 完全不够用. 还得大改.
- 先看一下 geometry shader, 看看行不行.
- 如果不行, 要么还是用生成mesh的方法.
- 要么就实例化 64 种网格.
- 旋转的运算
- 贴图的texture_id的规则
后面要做:
- 基元的管理(类似于MineCraft的Chunk)
- 贴图支持(一个chunk多个贴图的处理, 一次可能无法bind那么多贴图?, chunk构建的时候就应该分drawcall构建)
- 每种方块平均4张
64*64
的(4张是猜的), 一张贴图是2048*2048
, 所以一张图可以装2^5 * 2^5 / 4=256
种方块, 怎么也得支持10000+种方块吧, 因此可能会用到40+张图. 显存使用是4*2048*2048*40 B < 2^30 B = 1GB
, 算上mipmap也是< 1.5GB
.- 注意边缘在采样时, 可能会混合到下一张小贴图的颜色, 打图集的时候注意把边缘颜色相近的放在一起.
- 老后面的问题了, 先不管.
- 之前算错了, 显存没我想的需要的那么多, 那可以就全都存到显存里, 不释放了, 换绑定就行了.
- 注意边缘在采样时, 可能会混合到下一张小贴图的颜色, 打图集的时候注意把边缘颜色相近的放在一起.
- 关键是支持mod的话, 人家想做高清材质, 每种方块的贴图可能会很大.
- 先不考虑这个了
- 实在不行就不支持高清!!!
- 每种方块平均4张
- 射线检查的支持(目前主要用于鼠标点击)
- 测试用的随机场景生成
- 视锥体剔除