Loading

摘要: 成功在 MacOS 的 Docker 中运行 OpenGL 程序并显示这里记录一下: 我用的是 https://hub.docker.com/r/thewtex/opengl 这个镜像非常好,大部分工作都做好了,这里用的是基于 CPU 的渲染,也就是软件渲染,没有利用到显卡, 假设我们已经安装好了 阅读全文
posted @ 2022-11-26 12:35 芒果和小猫 阅读(1372) 评论(0) 推荐(0) 编辑
摘要: 在第 5 篇文章中,我们成功加载了 fbx 模型,并且做了 MVP 变换,将立方体按照透视投影渲染了出来。但是当时只是随机给顶点颜色,并且默认 fbx 文件里只有一个 mesh,这次我们来加载一个柴犬模型,并且给模型贴图,模型可以从 sketchfab 下载。 本文没有涉及到理论解释,更多的是代码实 阅读全文
posted @ 2022-10-07 01:25 芒果和小猫 阅读(497) 评论(2) 推荐(0) 编辑
摘要: 在 4 中成功绘制了三角形以后,下面我们来加载一个 fbx 文件,然后构建 MVP 变换(model-view-projection)。简单介绍一下: 从我们拿到模型(主要是网格信息)文件开始,模型网格(Mesh)里记录模型的顶点位置信息,比方说 (-1,1,1) 点,那么这个点是相对于这个模型的( 阅读全文
posted @ 2022-10-05 19:42 芒果和小猫 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 在做了 1~3 的基础工作后,我们的开发环境基本 OK 了,我们可以开始尝试利用 pyopengl 来进行绘制了。 本文主要有三个部分 利用 glfw 封装窗口类,并打开窗口; 封装 shader 类,进行编译、链接、使用; 封装 VAO、VBO、EBO 完成主函数进行绘制 完整的代码在仓库 (ta 阅读全文
posted @ 2022-10-03 01:02 芒果和小猫 阅读(481) 评论(0) 推荐(0) 编辑
摘要: assimp 是一个开源的模型加载库,支持非常多的格式,还有许多语言的 binding,这里我们选用 assimp 的 python 的 binding 来加载模型文件。不过社区主要是在维护 assimp 的 C++ 代码,对于这些 binding 可能更新的不够及时,比如 python 版本的就存 阅读全文
posted @ 2022-10-01 22:45 芒果和小猫 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 1. 跨平台窗口管理 为了将 OpenGL 渲染的内容在操作系统的窗口中显示出来,我们不可避免的需要调用操作系统的 API 创建窗口、渲染上下文等等,每个操作系统的 API 都不一样,为了减少繁琐工作以及为了程序的可以移植性,有一些工具库帮助我们完成了这些事情,使得我们不需要和 native API 阅读全文
posted @ 2022-09-27 14:10 芒果和小猫 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 因为只是为了验证原理和想法,实在不愿意折腾 C++ 去编译、链接找库......,并且为了配合今后一系列关于 CG 的文章,决定用 python 的 opengl wrapper 来进行实践,所以第一步就是安装 pyopengl 了。 pip install PyOpenGL PyOpenGL-ac 阅读全文
posted @ 2022-09-27 01:07 芒果和小猫 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1. GOPATH 和 GOROOT(环境变量) 1. GOROOT go 编译器、标准库等安装的地方,所有我们写的代码其实都是文本文件而已,需要编译器等工具将其加工成可执行文件或者库文件才能使用,每种语言都有自己的这样一套“工具”。GOROOT 就是 go 语言的这类“工具”的安装目录。 2. G 阅读全文
posted @ 2022-09-19 00:21 芒果和小猫 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 什么是顶点动画? 简单来说,通过改变网格顶点的位置,使网格变形从而做成的动画。顶点动画的灵活度要远远高于骨骼动画。骨骼动画是靠骨骼(一堆有层级结构的节点,数量应该是远远小于网格顶点的数量的)的变化来驱动网格的形变,从自由度上来说,顶点动画每个网格的顶点都可以发生变化,因此自由度要远高于骨骼动画,可以 阅读全文
posted @ 2022-09-08 00:44 芒果和小猫 阅读(2199) 评论(0) 推荐(0) 编辑
摘要: 最近需要在 go 中去调用 .so 库去完成一些事情,go 方面,利用 cgo 可以顺利的调用 .so 中的方法,但是有个问题是 go 没法捕获 .so 那边出现的异常。如果 .so 那边异常了,那么会带崩 go 程序,这不是我们想看到的。例如在 服务器应用中,某个异常的请求可能会把服务器进程给弄挂 阅读全文
posted @ 2022-08-27 16:13 芒果和小猫 阅读(1574) 评论(0) 推荐(0) 编辑