OPenGL
文章平均质量分 92
飞飛飛
比你优秀的人还在努力!
展开
-
OpenGL学习笔记一之实战篇十四 2D游戏(Breakout)之渲染文本
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/10%20Render%20Text/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。本教程中将通过增加生命值系统、获胜条件和渲染文本形式的反馈来对游戏做最后的完善。本教程很大程度上是建立...转载 2019-05-13 13:22:57 · 426 阅读 · 0 评论 -
OpenGL学习笔记一之PBR篇二 光照
转载自https://learnopengl-cn.github.io/07%20PBR/02%20Lighting/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。在上一个教程中,我们讨论了一些PBR渲染的基础知识。 在本章节中,我们将重点放在把以前讨论过的理论转化为实际的渲染器,这个渲染器将使用直接的(或...转载 2019-05-10 13:17:19 · 907 阅读 · 1 评论 -
OpenGL学习笔记一之PBR篇一 理论
转载自https://learnopengl-cn.github.io/07%20PBR/01%20Theory/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。PBR,或者用更通俗一些的称呼是指基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理...转载 2019-05-09 14:38:23 · 1575 阅读 · 0 评论 -
OpenGL学习笔记一之高级光照篇十一 SSAO
转载自https://learnopengl-cn.github.io/05%20Advanced%20Lighting/09%20SSAO/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。我们已经在前面的基础教程中简单介绍到了这部分内容:环境光照(Ambient Lighting)。环境光照是我们加入场景总体光...转载 2019-05-09 13:31:28 · 567 阅读 · 0 评论 -
OpenGL学习笔记一之高级光照篇十 延迟渲着色法
转载自https://learnopengl-cn.github.io/05%20Advanced%20Lighting/08%20Deferred%20Shading/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。我们现在一直使用的光照方式叫做正向渲染(Forward Rendering)或者正向着色法(Fo...转载 2019-05-09 13:28:46 · 701 阅读 · 0 评论 -
OpenGL学习笔记一之高级光照篇九 泛光
转载自https://learnopengl-cn.github.io/05%20Advanced%20Lighting/07%20Bloom/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。明亮的光源和区域经常很难向观察者表达出来,因为监视器的亮度范围是有限的。一种区分明亮光源的方式是使它们在监视器上发出光芒,...转载 2019-05-09 13:23:57 · 365 阅读 · 0 评论 -
OpenGL学习笔记一之高级光照篇八 HDR
转载自https://learnopengl-cn.github.io/05%20Advanced%20Lighting/06%20HDR/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。一般来说,当存储在帧缓冲(Framebuffer)中时,亮度和颜色的值是默认被限制在0.0到1.0之间的。这个看起来无辜的语句...转载 2019-05-09 13:16:19 · 355 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇八 高级GLSL
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/08%20Advanced%20GLSL/这一小节并不会向你展示非常先进非常酷的新特性,也不会对场景的视觉质量有显著的提高。但是,这一节会或多或少涉及GLSL的一些有趣的地方以及一些很棒的技巧,它们可能在今后会帮助到你。简单来说,它们就是在组合使用OpenGL和GLSL创建程...转载 2019-05-08 13:07:13 · 1202 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇七 高级数据
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/07%20Advanced%20Data/我们在OpenGL中大量使用缓冲来储存数据已经有很长时间了。操作缓冲其实还有更有意思的方式,而且使用纹理将大量数据传入着色器也有更有趣的方法。这一节中,我们将讨论一些更有意思的缓冲函数,以及我们该如何使用纹理对象来储存大量的数据(纹理...转载 2019-05-06 11:40:05 · 316 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇六 立方体贴图
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/06%20Cubemaps/我们已经使用2D纹理很长时间了,但除此之外仍有更多的纹理类型等着我们探索。在本节中,我们将讨论的是将多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map)。简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹...转载 2019-05-06 11:38:08 · 2768 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇五 帧缓冲
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/05%20Framebuffers/到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer),它被储存在内存中。OpenGL允许我们定义我们...转载 2019-05-06 11:36:27 · 940 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇四 面剔除
尝试在脑子中想象一个3D立方体,数数你从任意方向最多能同时看到几个面。如果你的想象力不是过于丰富了,你应该能得出最大的面数是3。你可以从任意位置和任意方向看向这个球体,但你永远不能看到3个以上的面。所以我们为什么要浪费时间绘制我们不能看见的那3个面呢?如果我们能够以某种方式丢弃这几个看不见的面,我们能省下超过50%的片段着色器执行数!我说的是超过50%而不是50%,因为从特定角度来看的话只能看...转载 2019-05-06 11:33:08 · 275 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇三 混合
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/03%20Blending/OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻...转载 2019-05-06 11:32:03 · 636 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇二 模板测试
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/02%20Stencil%20testing/当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,和深度测试一样,它也可能会丢弃片段。接下来,被保留的片段会进入深度测试,它可能会丢弃更多的片段。模板测试是根据又一个缓冲来进行的,它叫做模板缓冲(St...转载 2019-05-06 11:28:57 · 500 阅读 · 0 评论 -
OpenGL学习笔记一之PBR篇三 IBL(漫反射辐照)
暂无翻译这篇教程暂时还没有进行翻译,您可以先阅读原文,或经常来刷新看看是否有更新的进展。当然,我们更欢迎您在GitHub上认领翻译这篇文章,帮助我们完善这个教程系列。...转载 2019-05-10 13:19:05 · 654 阅读 · 0 评论 -
OpenGL学习笔记一之PBR篇四 IBL(镜面IBL)
镜面IBL暂无翻译这篇教程暂时还没有进行翻译,您可以先阅读原文,或经常来刷新看看是否有更新的进展。当然,我们更欢迎您在GitHub上认领翻译这篇文章,帮助我们完善这个教程系列。...转载 2019-05-10 13:19:44 · 726 阅读 · 0 评论 -
转 OpenGL学习笔记一之实战篇十三 2D游戏(Breakout)之音效
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/09%20Audio/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。无论我们将游戏音量调到多大,我们都不会听到来自游戏的任何音效。我们已经展示了这么多内容,但没有任何音频,游戏仍显得有些...转载 2019-05-13 13:21:38 · 427 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇十二 2D游戏(Breakout)之道具
本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。Breakout已经接近完成了,但我们可以至少再增加一种游戏机制让它变得更酷。“充电”(译注:Powerups,很多游戏中都会用这个单词指代可以提升能力的道具,本文之后也会用道具一词作为其翻译)怎么样?这个想法的含义是,无论一个砖块何时被摧毁,它都有一定几率产生一个道...转载 2019-05-13 13:16:57 · 291 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇十一 2D游戏(Breakout)之后期处理
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/07%20Postprocessing/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。如果我们可以通过几个后期处理(Postprocess)特效丰富Breakout游戏的视觉效果的话,会...转载 2019-05-13 13:15:49 · 396 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇十 2D游戏(Breakout)之粒子
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/06%20Particles/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。一个微粒,从OpenGL的角度看就是一个总是面向摄像机方向且(通常)包含一个大部分区域是透明的纹理的小四边形....转载 2019-05-13 13:14:25 · 382 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇九 2D游戏(Breakout)之碰撞处理
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/05%20Collisions/03%20Collision%20resolution/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。上个教程的最后,我们得到了一种有效的碰撞检测方案。但...转载 2019-05-13 13:11:28 · 546 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇八 2D游戏(Breakout)之碰撞检测
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/05%20Collisions/02%20Collision%20detection/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。当试图判断两个物体之间是否有碰撞发生时,我们通常不使用...转载 2019-05-13 13:08:57 · 785 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇七 2D游戏(Breakout)之球碰撞
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/05%20Collisions/01%20Ball/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。此时我们已经有了一个包含有很多砖块和玩家的一个挡板的关卡。与经典的Breakout内容相...转载 2019-05-10 13:32:37 · 515 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇六 2D游戏(Breakout)之关卡
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/04%20Levels/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。Breakout不会只是一个单一的绿色笑脸,而是一些由许多彩色砖块组成的完整关卡。我们希望这些关卡有以下特性:他们足...转载 2019-05-10 13:30:33 · 476 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇五 2D游戏(Breakout)之渲染精灵
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/03%20Rendering%20Sprites/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。为了给我们当前这个黑漆漆的游戏世界带来一点生机,我们将会渲染一些精灵(Sprite)来填...转载 2019-05-10 13:28:35 · 1028 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇四 2D游戏(Breakout)之准备工作
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/02%20Setting%20up/本节暂未进行完全的重写,错误可能会很多。如果可能的话,请对照原文进行阅读。如果有报告本节的错误,将会延迟至重写之后进行处理。在开始真正写游戏机制之前,我们首先需要配置一个简单的框架,用来存放这个游戏,这个游戏将会用到几个第三方库...转载 2019-05-10 13:26:53 · 343 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇三 2D游戏(Breakout)之简介
转载自https://learnopengl-cn.github.io/06%20In%20Practice/2D-Game/01%20Breakout/看完前面的教程之后我们已经了解了非常多的OpenGL内部工作原理,并且我们已经能够用这些知识绘制一些复杂的图形。然而,除了之前的几个技术演示之外,我们还没有真正利用OpenGL开发一个实际应用。这篇教程为OpenGL 2D游戏制作系列教程的...转载 2019-05-10 13:25:32 · 2288 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇二 文本渲染
转载自https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/当你在图形计算领域冒险到了一定阶段以后你可能会想使用OpenGL来绘制文本。然而,可能与你想象的并不一样,使用像OpenGL这样的底层库来把文本渲染到屏幕上并不是一件简单的事情。如果你只需要绘制128种不同的字符(Character),那么...转载 2019-05-10 13:22:45 · 734 阅读 · 0 评论 -
OpenGL学习笔记一之实战篇一 调试
转载自https://learnopengl-cn.github.io/06%20In%20Practice/01%20Debugging/图形编程可以带来很多的乐趣,然而如果什么东西渲染错误,或者甚至根本就没有渲染,它同样可以给你带来大量的沮丧感!由于我们大部分时间都在与像素打交道,当出现错误的时候寻找错误的源头可能会非常困难。调试(Debug)这样的视觉错误与往常熟悉的CPU调试不同。我...转载 2019-05-10 13:21:25 · 991 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇一 深度测试
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/01%20Depth%20testing/在坐标系统小节中,我们渲染了一个3D箱子,并且运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。在这一节中,我们将会更加深入地讨论这些储存在深度缓冲(或z缓冲(z-buffer))中的深度值(Depth V...转载 2019-05-06 11:27:04 · 447 阅读 · 2 评论 -
OpenGL学习笔记一之模型加载篇三 模型
转载自https://learnopengl-cn.github.io/03%20Model%20Loading/03%20Model/现在是时候接触Assimp并创建实际的加载和转换代码了。这个教程的目标是创建另一个类来完整地表示一个模型,或者说是包含多个网格,甚至是多个物体的模型。一个包含木制阳台、塔楼、甚至游泳池的房子可能仍会被加载为一个模型。我们会使用Assimp来加载模型,并将它转...转载 2019-05-06 11:23:52 · 661 阅读 · 0 评论 -
OpenGL学习笔记一之模型加载篇二 网格
转载自https://learnopengl-cn.github.io/03%20Model%20Loading/02%20Mesh/通过使用Assimp,我们可以加载不同的模型到程序中,但是载入后它们都被储存为Assimp的数据结构。我们最终仍要将这些数据转换为OpenGL能够理解的格式,这样才能渲染这个物体。我们从上一节中学到,网格(Mesh)代表的是单个的可绘制实体,我们现在先来定义一...转载 2019-05-06 11:15:17 · 217 阅读 · 0 评论 -
OpenGL学习笔记一之高级光照篇一 高级光照
转载自https://learnopengl-cn.github.io/05%20Advanced%20Lighting/01%20Advanced%20Lighting/在光照小节中,我们简单地介绍了冯氏光照模型,它让我们的场景有了一定的真实感。虽然冯氏模型看起来已经很不错了,但是使用它的时候仍然存在一些细节问题,我们将在这一节里讨论它们。Blinn-Phong冯氏光照不仅对真实光...转载 2019-05-08 13:14:34 · 652 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇十一 抗锯齿
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/11%20Anti%20Aliasing/在学习渲染的旅途中,你可能会时不时遇到模型边缘有锯齿的情况。这些锯齿边缘(Jagged Edges)的产生和光栅器将顶点数据转化为片段的方式有关。在下面的例子中,你可以看到,我们只是绘制了一个简单的立方体,你就能注意到它存在锯齿边缘了...转载 2019-05-08 13:12:59 · 1576 阅读 · 1 评论 -
OpenGL学习笔记一之高级OpenGL篇十 实例化
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/10%20Instancing/假设你有一个绘制了很多模型的场景,而大部分的模型包含的是同一组顶点数据,只不过进行的是不同的世界空间变换。想象一个充满草的场景:每根草都是一个包含几个三角形的小模型。你可能会需要绘制很多根草,最终在每帧中你可能会需要渲染上千或者上万根草。因为每...转载 2019-05-08 13:11:32 · 498 阅读 · 0 评论 -
OpenGL学习笔记一之高级OpenGL篇九 几何着色器
转载自https://learnopengl-cn.github.io/04%20Advanced%20OpenGL/09%20Geometry%20Shader/在顶点和片段着色器之间有一个可选的几何着色器(Geometry Shader),几何着色器的输入是一个图元(如点或三角形)的一组顶点。几何着色器可以在顶点发送到下一着色器阶段之前对它们随意变换。然而,几何着色器最有趣的地方在于,它...转载 2019-05-08 13:09:43 · 1323 阅读 · 0 评论 -
OpenGL学习笔记一之模型加载篇一 Assimp
转载自https://learnopengl-cn.github.io/03%20Model%20Loading/01%20Assimp/到目前为止的所有场景中,我们一直都在滥用我们的箱子朋友,但时间久了甚至是我们最好的朋友也会感到无聊。在日常的图形程序中,通常都会使用非常复杂且好玩的模型,它们比静态的箱子要好看多了。然而,和箱子对象不同,我们不太能够对像是房子、汽车或者人形角色这样的复杂形...转载 2019-05-05 10:44:12 · 957 阅读 · 0 评论 -
OpenGL学习笔记一之光照篇七 总结
转载自https://learnopengl-cn.github.io/02%20Lighting/07%20Review/恭喜您已经学习到了这个地方!辛苦啦!不知道你有没有注意到,总的来说我们在学习光照教程的时候关于OpenGL本身并没有什么新东西,除了想访问uniform数组这样细枝末节的知识。目前为止的所有教程都是关于使用一些技巧或者公式来操作着色器,达到真实的光照效果。这再一次想你展...转载 2019-05-05 10:42:47 · 296 阅读 · 0 评论 -
OpenGL学习笔记一之光照篇六 多光源
转载自https://learnopengl-cn.github.io/02%20Lighting/06%20Multiple%20lights/我们在前面的教程中已经学习了许多关于OpenGL中光照的知识,其中包括冯氏着色(Phong Shading)、材质(Material)、光照贴图(Lighting Map)以及不同种类的投光物(Light Caster)。在这一节中,我们将结合之前...转载 2019-05-05 10:35:20 · 707 阅读 · 0 评论 -
OpenGL学习笔记一之光照篇五 投光物
转载自https://learnopengl-cn.github.io/02%20Lighting/05%20Light%20casters/我们目前使用的光照都来自于空间中的一个点。它能给我们不错的效果,但现实世界中,我们有很多种类的光照,每种的表现都不同。将光投射(Cast)到物体的光源叫做投光物(Light Caster)。在这一节中,我们将会讨论几种不同类型的投光物。学会模拟不同种类...转载 2019-05-05 10:33:52 · 391 阅读 · 0 评论