首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

OpenGL自制游戏引擎-HelloTriangle

Pipeline: 开始绘制图形之前,我们必须先给OpenGL输入一些顶点数据,OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。所有在所谓的标准化设备坐标(Normalized Device Coordinates)范围内的坐标才会最终呈现在屏幕上. 定义这样的顶点数据以后,我们会把它作为输入发送给图形渲染管线的第一个处理阶段:顶点着色器。它会在GPU上创建内存用于储存我们的顶点数据,还要配置OpenGL如何解释这些内存,并且指定其如何发送给显卡。顶点着色器接着会处理我们在内存中指定数量的顶点。 通过顶点缓冲对象(Vertex Buffer Objects, VBO)管理这个内存,它会在GPU内存(通常被称为显存)中储存大量顶点。使用这些缓冲对象的好处是我们可以一次性的发送一大批数据到显卡上,而不是每个顶点发送一次。从CPU把数据发送到显卡相对较慢,所以只要可能我们都要尝试尽量一次性发送尽可能多的数据。 顶点缓冲对象是我们在[OpenGL]教程中第一个出现的OpenGL对象。就像OpenGL中的其它对象一样,这个缓冲有一个独一无二的ID,所以我们可以使用glGenBuffers函数和一个缓冲ID生成一个VBO对象:

02

76. 三维重建11-立体匹配7,解析合成数据集和工具

随着越来越多的领域引入了深度学习作为解决工具,大量的数据显然也就变得非常关键了。然而在相当长的时间里,立体匹配这个领域都缺乏大量的数据可以使用。我在文章74. 三维重建9-立体匹配5,解析MiddleBurry立体匹配数据集和75. 三维重建10-立体匹配6,解析KITTI立体匹配数据集介绍的两个著名的数据集MiddleBurry和KITTI都不是为了训练神经网络而制作——它们本身仅用于客观的衡量比较算法的质量。所以它们所包含的图像组数量都很有限。比如,MiddleBurry 2014年数据集就只有20组数据可用于训练算法。KITTI 2012, 194组训练图像, KITTI 2015, 200组训练图像。同时,这些数据集的场景都很有限,MiddleBurry的场景是在受控光照下实验场景。KITTI则主要集中在自动驾驶的公路场景,且其Ground Truth深度只占图像的50%左右。很显然,这样的数据集是不足以用于训练深度学习的网络模型的。

01
领券