39.opengl-游戏实战

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屏幕需要适配
GLboolean ShouldSpawn(GLuint chance)
{
    GLuint random = rand() % chance;
    return random == 0;
}
...
// 随机数 + 取模,生成一个概率1/75的算法
ShouldSpawn(75)
2.2 碰撞的检测和计算

很遗憾的一点是,irrklang在mac上不兼容,游戏的声音不能成功加载

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • xcode开发问题记录

    xcode打开假死,一直Loading 打开终端:cd /Users/mac/Library/Autosave\ Information/ (其中mac为当前...

    用户1068165
  • 1. 解析Bitmap的ARGB,实现图片颜色选择器

    因为大小端的缘故,和我们理解的ARGB的顺序相反,大小端读者有兴趣可以深入了解,

    用户1068165
  • 人像美颜算法-保边滤波

    Y值越大,越稀释边缘像素的差异,各个点的权重就更接近,可以想象:当Y无限大时,每个点的权重几乎等于1,就没有保边的效果

    用户1068165
  • 每日算法系列【LeetCode 470】用 Rand7() 实现 Rand10()

    已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。

    godweiyang
  • 学生信息管理系统(管理员)

    我一直以为学生信息管理系统是开源的,网上一搜一大把的那种。毕竟这种程序学完C之后都可以自己写一个,只有界面好看与否的问题。

    DeROy
  • PAT 1012 数字分类 (20)

    给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错...

    ShenduCC
  • C数据输出printf("%+-6d%+-6d",a,b);

    复杂点的%6d是一共6位,不足的用空格补足。但是题目这么长的还没见过。其实这个题目并不复杂。

    用户6755376
  • 论文阅读: R-FCN

    由上表易知,R-FCN就是为了 解决 不共享的proposal处理过程 而诞生的。

    JNingWei
  • 【蓝桥杯系列】第一节 C的基本用法

    置顶编程范收获更多热门编程快讯 大家好,最近很多小伙伴向我反应小编!我参加了蓝桥杯但是我连那是什么都不知道,我该怎么训练?是不是在网站刷题就可以啊? 在这里我要...

    编程范 源代码公司
  • 面试中经常遇到10大C语言基础算法,最后一个是精髓

    算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。本文是近百个C语言算法系列的...

    诸葛青云

扫码关注云+社区

领取腾讯云代金券