gpt4 book ai didi

c++ - 使用 OpenGL 和 SDL 的 Sprite 表

转载 作者:行者123 更新时间:2023-11-30 02:08:35 25 4
gpt4 key购买 nike

我一直在开发一款新游戏,终于到了开始编写主要角色 Action 代码的地步,但我对如何做到这一点有疑问。

以前,我在 Allegro 中制作了两个游戏,所以 spritesheet 很容易实现,因为我在图像上建立了帧和位置,并将每一帧保存在不同的位图中,但我知道使用 OpenGL 可以做到这一点它不是必需的,而且要多花一点钱。

所以,我一直在考虑如何保存我的 spritesheet 并在我的程序中使用,但我只有一个想法。

我加载了图像并在纹理中进行了转换,在帮助我制作动画的函数中,我只是抓取一部分纹理进行绘制,而不是将每个纹理都存储在我的程序中。

这是最好的方法吗?

预先感谢您的帮助。

最佳答案

你走在正确的轨道上。

需要考虑的事项:

  • 在每个 sprite 周围留出足够的死角,这样视频卡就不会在小尺度上混入相邻 sprite 的纹素。
  • 适当设置纹理最小/放大过滤。如果您想要 block 状外观,GL_NEAREST 是可以的。
  • 如果您想花哨并节省一些纹理内存,则没有理由必须将 Sprite 布置在规则的网格中。较小的 Sprite 可以在纹理中挤得更近。
  • 如果您的 sprite 是从 3D 模型渲染的,您可以将模型的法线和置换贴图输出到另一个纹理中,然后将它们组合在片段着色器中以获得一些很棒的光照和自阴影。

关于c++ - 使用 OpenGL 和 SDL 的 Sprite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6463122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com