标签 3D软件 下的文章

Golang OpenGL 跨平台图形程序开发(1)技术选型和windows环境搭建

  • 可能你要做一个三维软件,但是不想使用现成的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环境为例说一下基础环境建立。