![](https://img-blog.csdnimg.cn/38f1bfc4887a48cdaa4f7b646108c0b1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenGL查漏补缺
文章平均质量分 97
OpenGL查漏补缺各个击破
itzyjr
Stay hungry,Stay foolish!
展开
-
◮OpenGL-文本渲染
目录经典文本渲染:位图字体现代文本渲染:FreeType更进一步使用像OpenGL这样的底层库来把文本渲染到屏幕上并不是一件简单的事情。如果你只需要绘制128种不同的字符(Character),那么事情可能会简单一些。但是如果你要绘制的字符有着不同的宽、高和边距,事情马上就复杂了。根据你使用语言的不同,你可能会需要多于128个字符。再者,如果你要绘制音乐符、数学符号这些特殊的符号;或者渲染竖排文本呢?一旦你把文本这些复杂的情况考虑进来,你就不会奇怪为什么OpenGL这样的底层API没有包含文本处理了。由原创 2022-04-17 10:21:02 · 1193 阅读 · 0 评论 -
◮OpenGL-混合
目录混合概述丢弃片段混合渲染半透明纹理不要打乱顺序混合概述OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻璃窗是一个透明的物体,玻璃有它自己的颜色,但它最终的颜色还包含了玻璃之后所有物体的颜色。这也是混合这一名字的出处,我们混合(Blend)(不同物体的)多种颜色为一种颜色。所以透明度能让我们看穿物体。原创 2022-04-17 04:15:15 · 370 阅读 · 0 评论 -
◮OpenGL-抗锯齿
抗锯齿你可以看到,我们只是绘制了一个简单的立方体(上图左),你就能注意到它存在锯齿边缘了。可能不是非常明显,但如果你离近仔细观察立方体的边缘,你就应该能够看到锯齿状的图案。如果放大的话,齿边就非常明显了(上图右)。这很明显不是我们想要在最终程序中所实现的效果。你能够清楚看见形成边缘的像素。这种现象被称之为走样(Aliasing)。有很多种抗锯齿(Anti-aliasing,也被称为反走样)的技术能够帮助我们缓解这种现象,从而产生更平滑的边缘。最开始我们有一种叫做超采样抗锯齿(Super Sample原创 2022-04-16 23:07:12 · 1521 阅读 · 0 评论 -
◮OpenGL-模板测试
模板测试当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,和深度测试一样,它也可能会丢弃片段。接下来,被保留的片段会进入深度测试,它可能会丢弃更多的片段。模板测试是根据又一个缓冲来进行的,它叫做模板缓冲(Stencil Buffer),我们可以在渲染的时候更新它来获得一些很有意思的效果。一个模板缓冲中,(通常)每个模板值(Stencil Value)是8位的。所以每个像素/片段一共能有256种不同的模板值。我们可以将这些模板值设置为我们想要的值,然后当某一个片段有某一个模板原创 2022-04-13 04:35:50 · 975 阅读 · 0 评论 -
◮OpenGL-帧缓冲
帧缓冲到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定片段的模板缓冲。这些缓冲结合起来叫做帧缓冲(Framebuffer),它被储存在内存中。OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。我们目前所做的所有操作都是在默认帧缓冲的渲染缓冲上进行的。默认的帧缓冲是在你创建窗口的时候生成和配置的(GLFW帮我们做了这些)。有了我们自己的帧缓冲,我们就能够有更多方式来渲染了。原创 2022-04-16 23:20:06 · 461 阅读 · 0 评论 -
◮OpenGL-场景漫游(摄像机/键鼠控制)
目录摄像机/观察空间Look At自由移动移动速度视角移动欧拉角鼠标输入OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。本节我们将会讨论如何在OpenGL中配置一个摄像机,并且将会讨论FPS风格的摄像机,让你能够在3D场景中自由移动。我们也会讨论键盘和鼠标输入,最终完成一个自定义的摄像机类。摄像机/观察空间当我们讨论摄像机/观察空间(Camera/View Space)的时候,是在讨论以原创 2022-04-18 19:04:08 · 1557 阅读 · 0 评论