OpenGL 2d 位图与 3d 字符
OpenGL 2d bitmap with 3d character
以来,我一直在寻找一个好的教程,它教你 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();
这至少应该让你开始。
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 无法将结构注册为增强几何体3D点
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- 尝试创建一个 3D 矢量,该矢量将保留指向指向无符号字符的指针的指针
- OpenGL 2d 位图与 3d 字符