- 可能你要做一个三维软件,但是不想使用现成的3D引擎(Unity3D、Unreal之类);
- 可能你想要做一个跨平台的三维编辑软件,涉及到很多基本图元操作;
- 可能你厌烦了C++代码的内存管理,想要换用一下更新的程序语言写UI。
那这系列文章就是为这部分需求的技术选型打造的。
目前阶段来看,opengl还是跨平台最好的3D API。opengl和各个语言都有绑定,也都会有一些跨平台的特性。
比方说C++调用opengl比较直接方便,如果选用GLFW而不是MFC等框架是可以支持跨平台的,或者选用QT的解决方案,QT4、QT5都有单独封装好的opengl widget组件,也可以直接使用QT丰富的组件库。
java有LWJGL,一个一揽子的图形图像音频库集合,MineCraft使用了这个库。
但是,QT依赖比较重,C++写起来开发效率不太高,Java在内存和cpu利用率上不如非虚拟机语言。
本系列文章的技术选型是 golang、OpenGL、GLFW、Nuklear
- Golang编译为机器码,运行效率可以得到保障,同时相对优雅开发效率较高。
- OpenGL自不必说,核心就是它。
- GLFW提供了简单但是跨平台的窗口交互。
- Nuclear是个C语言开发的UI控件库,有golang的绑定,可以帮我们处理简单的界面显示问题。
由于本机环境为windows10,同时这套解决方案搭建最麻烦的是windows环境,本文以windows环境为例说一下基础环境建立。