构建OpenGL范例
最終更新: 2021年12月9日
本页说明在Windows环境下在Visual Studio中编译Live2D Cubism SDK for Native中包含的OpenGL范例项目的步骤。
* 文章内容使用Cubism 4 SDK for Native R1。
方法和步骤可能因Cubism SDK的版本而异。
必要的项目
这是SDK本体。从“官方下载页”下载。
这是本次使用的开发环境。该语言使用C++。
另外,请使用Visual Studio 2013或更高版本。
用于生成项目文件。
·GLFW
它是OpenGL的辅助工具库,具有输入和视窗管理功能。
您可以从Cubism SDK范例中包含的批处理文件中下载。
·GLEW
OpenGL的扩展工具库使调用OpenGL扩展功能变得更容易。
您可以从Cubism SDK范例中包含的批处理文件中下载。
本文中GLFW和GLEW是从Cubism SDK范例中包含的批处理文件中下载的,因此无需提前下载。
此外,对于CMake、GLFW和GLEW等工具和工具库,请参考范例SDK的ZIP内
“[根]Samples/OpenGL”中“README.md”中描述的步骤和版本。
安装作业
Visual Studio
安装集成开发环境。
请进行设置以便可以编译C++。
CMake
安装CMake。
由于CMake作业是从批处理文件中使用的,因此请设置CMake路径,以便用户可以参考它。
* 图片可能与实际画面不同。
GLFW和GLEW的部署
关于GLFW和GLEW的部署,请查看“Samples/OpenGL”中的“README.md”中描述的步骤。
在Windows上,请执行“Samples/OpenGL/thirdParty”中的“setup.bat”,下载GLFW和GLEW。
批量提取完成后,文件夹结构如下。
* 如果您手动下载了GLFW和GLEW,则需要将它们解压到“Samples/OpenGL/thirdParty”文件夹中。
执行CMake
CMake也可以从GUI中使用,但这次我们将使用范例中包含的批处理文件。
在Windows上,“Samples/OpenGL/Demo/proj.win.cmake/scripts”中有一个批处理文件。
Windows用批处理文件从多个设置的组合中选择。
·NMake、还是Project?
NMake从命令提示符构建并生成可执行文件。请使用以nmake_开头的批处理文件。
如果要从Visual Studio编辑代码等,请使用以proj_开头的批处理文件。
·Visual Studio版本
请选择已安装的Visual Studio版本。
在本例中,由于选择包含Visual Studio 2015解决方案文件的项目,因此执行“proj_msvc2015.bat”。
执行时会显示如下图所示的选项,请输入对应的半角数字。
·架构选择
选择x86(Win32)或x64(Win64)。
请根据您的使用环境酌情选择。
·Cubism Core模块选择
选择要使用的Cubism Core运行时工具库。
关于MD、MT等的含义,请查看Microsoft官方文档。
·项目内容的选择
选择要生成的项目的内容。
如果您选择Full Demo:将生成一个使用Cubism SDK for Native所有功能的范例项目。
如果您选择Minimum Demo:生成一个最小项目,显示重复单个动态的模型。该项目中使用了以下功能:
- 导入和显示Cubism模型
- 循环播放一个动态的功能
- 拖动鼠标跟踪视线
- 物理模拟
- 呼吸
- 姿势
如果输入正常,将开始通过CMake生成。
* 如果开始生成后出现错误,请检查CMake的版本和指定的Visual Studio版本。
构建
通过CMake生成完成后,从生成的文件中打开解决方案文件。
在这个例子中,执行
·proj_msvc2015.bat
,于选项中选择
·x64(Win64)
·use the multithread-specific and DLL-specific version of the run-time library (MD)
·Full Demo
输出的
“[根]/Samples/OpenGL/Demo/proj.win.cmake/build/proj_msvc2015_x64_md”中的“Demo.sln”通过Visual Studio打开,并执行构建。
执行
如果构建成功,请在调试中执行它。
如果能在大画面和命令提示符下看到记录输出,即为成功。
* 在最小范例中,不显示背景和模型切换的齿轮图标等UI。
如果要调整视窗大小,请变更“/Sample/OpenGL/Demo/proj.win.cmake/src/LAppDelegate.cpp”的
LAppDelegate::Initialize()中使用的glfwCreateWindow()的第1参数、第2参数的值。
_window = glfwCreateWindow(RenderTargetWidth, RenderTargetHeight, "SAMPLE", NULL, NULL);
* RenderTargetWidth、RenderTargetHeight在“/Sample/OpenGL/Demo/proj.win.cmake/src/LAppDefine.cpp”中定义实际的值。
执行文件的输出目的地
此次从CMake创建的项目与通常项目不同,
文件的输出目的地将与项目文件夹在相同层次结构中。
具体来说,当项目文件夹为“[根]/Samples/OpenGL/Demo/proj.win.cmake/build/proj_msvc2015_x64_md”时,
执行文件输出到与项目文件夹相同的位置。
在构建时生成“[根]/Samples/OpenGL/Demo/proj.win.cmake/build/proj_msvc2015_x64_md/Release”等,但是请注意这里没有输出文件。