#我的思考#
我前一段时间仔细考虑了开题的问题,总结出以下几个大方向:
1. 编写安卓APP拼接720度全景(有开源库),使用VR头盔呈现;
2. 编写C++插件进行720全景拼接(未找到合适算法),使用VR头盔呈现;
3. 编写C++插件进行360全景拼接(使用foreground detection,考虑了这个方向是因为开题的初衷是基于已有的3D动画拼接得到VR全景动画,然而动画的主角是随剧情移动的,为拼接成全景,可以使用这个方式),使用VR头盔呈现;
4. 编写VR APP,结合OpenGL和OpenCV进行拼接和呈现;
由于以上方向都涉及到OpenGL的呈现,所以我最近一直在对OpenGL进行细致的学习。
#我的实践#
*OpenGL代码基本结构
OpenGL代码主要由三个部分构成:initialization,display,main函数。示例代码如下:
**VAO VBO的认识
OpenGL使用VAO保存和渲染顶点缓存对象的相关状态,使用VBO保存对象的数据,借用一位大牛的话,OpenGL实际上是状态机。示例代码如下:
***着色器的使用
以我目前粗浅的认知,着色器是用来渲染着色的。但是我的代码有问题(修改的上面的代码),目前未解决(10.31.2016)。代码如下:
*11.1更新
尝试解决着色器代码的问题。配套《OpenGL编程指南》有作者编写的头文件,涉及到了LoadShaders.h和gl3w.h,开始我直接链接了这两个头文件,但是报错;
后来我发现还有cpp文件,把cpp文件添加到项目中,生成成功,但是编译时,引用LoadShaders()的时候,进入LoadShaders.cpp
GLuintprogram