零 bgfx图形库的使用——前言
本系列将会介绍,或者说是记录本人对bgfx的使用。起因是我想找一个工具去进行一些风格化渲染,其实Unity应该是更好的选择,但也不妨碍试试bgfx。官方例子的代码对于我这个外行人来说太复杂,不够直观。所以本系列会用更直接简单的代码去达到一个渲染目的。本人非计算机专业,写出的代码可能不够优雅,考虑方面也可能不周到(比如内存管理方面)。本人使用bgfx的系统为Windows、代码编辑器为VSCode、
总目录: bgfx图形库的使用(总目录)
下一篇: 一 bgfx图形库的使用——HelloWindow
前言
本系列将会介绍,或者说是记录本人对bgfx的使用。起因是我想找一个工具去进行一些风格化渲染,其实Unity应该是更好的选择,但也不妨碍试试bgfx。
官方例子的代码对于我这个外行人来说太复杂,不够直观。所以本系列会用更直接简单的代码去达到一个渲染目的。本人非计算机专业,写出的代码可能不够优雅,考虑方面也可能不周到(比如内存管理方面)。
注意
- 本系列使用C++代码编写主体程序。
- 本系列不介绍任何图形学知识,只是记录我对bgfx的使用。如果你刚起步,可以去看一个优秀的教程叫LearnOpenGL。本系列的图形学知识均基于这个教程。
- 本系列不会介绍如何配置环境,你可能会很失望,但这是一个非常困难的话题。之后会介绍我使用的环境,或许可以提供一些提示。
环境介绍
- 本人使用bgfx的系统为Windows、代码编辑器为VSCode、C++编译器为MinGW、C++工程辅助构建工具CMake,需要的的C++库包括bgfx和GLFW(用于创建窗口)。
使用这些工具软件纯属个人偏好。
- 基本的头文件。bgfx官方提供的bgfx工程里面的
include/bgfx文件夹、bimg工程里面的include/bimg文件夹、bx工程里面的/include/bx、compat、tinystl三个文件夹。此外GLFW的头文件包括GLFW文件夹。
GLFW相关头文件和库文件可以到官方网站下载合适的预编译版本,里面包含头文件和编译后的库
- 基本的静态库。bgfx编译得到的
libbgfx.a、libbimg.a、libbimg_encode.a、libbimg_decode.a、libbx.a。GLFW的libglfw3dll.a(下载的预编译好像会有两个静态库,一个是libglfw3dll.a,一个是libglfw3.a,我只用了前一个)。如果用上面说的就能正常运行,那就OK,不然还需要libgdi32.a、libpsapi.a,这两个在下载的MinGW里的x86_64-w64-mingw32文件夹下的lib文件夹中(MinGW官方并没有放在根目录下的lib中,所以需要手动导入)。
bgfx的编译可以参考见专栏的另一篇文章Windows中使用CMake+MinGW编译bgfx
- 基本的动态库。只需要GLFW的
glfw3.dll。 - bgfx编译得到的工具。如
shaderc.exe等,用到的时候都会说。
附上我的工程目录结构:
项目根目录/
├── .vscode/
├── build/
├── include/
│ └──bgfx/、bimg/、bx/、compat/、compat/、tinystl/、GLFW/
├── lib/
│ └── libbgfx.a、…、libgdi32.a、libpsapi.a、libglfw3dll.a
├── output/
│ └── glfw3.dll
├── src/
│ └── 1.HelloWindow/、2…
├── tools/
│ └── shaderc.exe、…
└── CMakeLists.txt
最后,本系列更多的是记录,不是完全的教程,还是那一点:为了完成某个渲染目的而尽可能快速简单地完成。(本来写了很多,全删了)
这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!
更多推荐


所有评论(0)