39.opengl-游戏实战

2020-10-26 15:39:41 浏览数 (1)

projection的作用是设置一个投影大小,坐标的传输可以按照这个大小来设置,比较好理解,比如设置宽高 100 * 100的投影矩阵,100扔进去,会缩小到1,50扔进去缩小到0.5,顶点着色器最后输出的坐标就是[-1.0, 1.0, 1.0]

背景和ball精灵的矩阵计算还没彻底弄明白:opengl::math::glm的矩阵运算是左乘还是右乘?

learnopengl最后一章游戏实践完成了,终于持续两个月左右的opengl学习之旅结束了,也是一个新的开始。没有涉及新的知识,简单总结
一、项目架构梳理
虽然是个demo,但是有很好的代码结构,体现了良好的面向对象设计,功能的封装,既是一个opengl的练习demo,也是一个非常不错的c 练习项目
二、收获
2.1 粒子特效,这个项目中涉及到很多游戏里很巧妙的算法,很有趣

1)粒子速度衰减算法

  1. mac屏幕需要适配
代码语言:javascript复制
GLboolean ShouldSpawn(GLuint chance)
{
    GLuint random = rand() % chance;
    return random == 0;
}
...
// 随机数   取模,生成一个概率1/75的算法
ShouldSpawn(75)
2.2 碰撞的检测和计算
很遗憾的一点是,irrklang在mac上不兼容,游戏的声音不能成功加载

0 人点赞