有没有一种方法可以使用 C++ 中的 SOIL 将一个纹理拆分为一组纹理?
我在项目中使用 SOIL,并且需要获取单个纹理,然后使用第一个纹理的不同部分将其转换为纹理数组。 (使用精灵表)。
顺便说一句,我正在使用 SDL 和 OpenGL。
I'm using SOIL in my project, and I need to take in a single texture, and than convert it into an array of textures using different parts of the first texture. (To use a sprite sheet).
I'm using SDL and OpenGL by the way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将精灵片与 OpenGL 等现代 3D API 结合使用的典型方法是使用纹理坐标来处理单个纹理的不同部分。 虽然您可以将其拆分,但使用纹理坐标对资源更加友好。
例如,如果您有一个简单的精灵表,水平有 3 个帧,每个帧为 32 像素 x 32 像素(总大小为 96x32),则可以使用以下代码来绘制第三帧:
The typical way to use sprite sheeting with a modern 3D api like OpenGL is to use texture coordinates to address different parts of your individual texture. While you can split it up it is much more resource friendly to use texture coordinates.
For example, if you had a simple sprite sheet with 3 frames horizontally, each 32 pixels by 32 pixels (for a total size of 96x32), you would use the following code to draw the 3rd frame: