实例化

文章推薦指數: 80 %
投票人數:10人

如果我们能够将数据一次发送给GPU,就会更方便,然后告诉OpenGL使用一个绘制函数,将这些数据绘制为多个物体。

这就是我们将要展开讨论的实例化(Instancing)。

LearnOpenGL-CN 主页 简介 入门 OpenGL 创建窗口 你好,窗口 你好,三角形 着色器 纹理 变换 坐标系统 摄像机 复习 光照 颜色 光照基础 材质 光照贴图 投光物 多光源 复习 加载模型 Assimp 网格 模型 高级OpenGL 深度测试 模板测试 混合 面剔除 帧缓冲 立方体贴图 高级数据 高级GLSL 几何着色器 实例化 实例化 实例化数组 小行星带 抗锯齿 高级光照 高级光照 Gamma校正 阴影 阴影映射 点阴影 CSM 法线贴图 视差贴图 HDR 泛光 延迟着色法 SSAO 实战 调试 文字渲染 2D游戏 Breakout 准备工作 渲染精灵 粒子   LearnOpenGL-CN Docs» 高级OpenGL» 实例化 实例化 原文 Instancing 作者 JoeyDeVries 翻译 Django 校对 Geequlim 假如你有一个有许多模型的场景,而这些模型的顶点数据都一样,只是进行了不同的世界空间的变换。

想象一下,有一个场景中充满了草叶:每根草都是几个三角形组成的。

你可能需要绘制很多的草叶,最终一次渲染循环中就肯能有成千上万个草需要绘制了。

因为每个草叶只是由几个三角形组成,绘制一个几乎是即刻完成,但是数量巨大以后,执行起来就很慢了。

如果我们渲染这样多的物体的时候,也许代码会写成这样: for(GLuinti=0;i



請為這篇文章評分?