OpenGL 2d 位图与 3d 字符

OpenGL 2d bitmap with 3d character

本文关键字:3d 字符 位图 2d OpenGL      更新时间:2023-10-16
一段时间

以来,我一直在寻找一个好的教程,它教你 OpenGL for 2D(位图/俯视游戏)和添加 3D 角色的能力,可悲的是我还没有找到一个好的教程。

大约 2 年前,我已经完成了 http://www.sdltutorials.com/的 2D SDL 教程,但现在我希望能够将 3D 角色添加到自上而下的游戏中,所以我必须使用 OpenGL。

因此,如果您知道一个很好的教程,它教您 2D OpenGL 的基础知识,其中包括能够添加 3D 角色和对象,请告诉我!

以下是我希望能够创建的示例:https://i.stack.imgur.com/EXtGm.jpg(游戏:Gun Bros),如您所见,世界是在2D位图系统中创建的,但角色是3D的。

以下是我发现自己的几个教程网站,但不能 100% 确定其中是否有任何网站真的可以帮助我:
www.videotutorialsrock.com - 纯 3D 编程。
lazyfoo.net/tutorials/OpenGL/- 纯 2D 编程(这是我想我需要的 2D 部分的基础知识)
www3.ntu.edu.sg/home/ehchua/programming/opengl/CG_Introduction.html - 也是 2D,但我还没有看过它。

如果你想

深入了解openGL,我会推荐橙色的书。 我们在课堂上使用它,它有很多非常好的信息。 如果你正在为网络开发这个,我强烈推荐这个webGL教程。 我从那个教程中学到了很多东西。 至于自上而下游戏的具体实现,我还没有遇到过教程。 您可能可以使用非常简单的.obj,然后在它们上进行一些凹凸映射。 将纹理映射到 3D 对象需要 UV 映射。 对于 uv 映射,我是这个 uv 教程的粉丝

我找不到任何关于您寻找的教程,但我确实有一个想法来完成它。

目前在 2D 教程中,您有一个正交相机。你可以保留你到目前为止所做的一切。

要在此基础上强加3D图形,您需要专门用于3D模型的相机和透视相机。

像往常一样渲染 2D,然后在其上绘制 3D 场景。我只能假设在您的 2D 场景中您没有使用深度缓冲区,但如果您使用深度缓冲区,则需要在渲染 3D 场景之前清除它。

glClear(GL_COLOR_BUFFER_BIT);
SetOrthoGraphicProjection();
Draw2DScene();
glClear(GL_DEPTH_BUFFER_BIT);
SetPrespectiveProjection();
Draw3DScene();

这至少应该让你开始。