![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OpenGL
文章平均质量分 66
OpenGL
江河地笑
不要让时代的悲哀成为你的悲哀。
展开
-
OpenGL_Learn20(帧缓冲)
,然后与缓冲区进行绑定。纹理一般是在片段着色器中的,意味着这个纹理可以进行修改(反向、高亮)。要保证所有的渲染操作在主窗口中有视觉效果,我们需要再次激活默认帧缓冲,将它绑定到。对这个四边形进行填充信息,俗称附件。可以看见这个缓冲增加了纹理就变得生动了。这个帧缓冲应该可以看作的类似VAO的,他是要绑定纹理的,纹理就是【之后所有的渲染操作将会渲染到当前绑定帧缓冲的附件中。因此这个纹理贴在缓冲区上则可以生动的渲染出来。帧缓冲案例,最终就是绘制一个四边形。原创 2024-04-08 14:35:35 · 156 阅读 · 0 评论 -
OpenGL_Learn19(混合)
OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻璃窗是一个透明的物体,玻璃有它自己的颜色,但它最终的颜色还包含了玻璃之后所有物体的颜色。这也是混合这一名字的出处,我们混合(Blend)(不同物体的)多种颜色为一种颜色。所以透明度能让我们看穿物体。比如草,一般都是纹理贴到正方形纸片上,会导致如下的效果。原创 2024-04-06 11:13:15 · 149 阅读 · 0 评论 -
OpenGL_Learn18(加载外部模型)
【代码】OpenGL_Learn18(加载外部模型)原创 2024-04-04 22:27:36 · 183 阅读 · 0 评论 -
OpenGL_Learn17(模板测试)
你可以看到这两个箱子的边框重合了,这通常都是我们想要的结果(想想策略游戏中,我们希望选择10个单位,合并边框通常是我们想需要的结果)。如果你想让每个物体都有一个完整的边框,你需要对每个物体都清空模板缓冲,并有创意地利用深度缓冲。模板缓冲首先会被清除为0,之后在模板缓冲中使用1填充了一个空心矩形。场景中的片段将会只在片段的模板值为1的时候会被渲染(其它的都被丢弃了)。模板缓冲操作允许我们在渲染片段时将模板缓冲设定为一个特定的值。通过在渲染时修改模板缓冲的内容,我们。这些值,来决定丢弃还是保留某个片段。原创 2024-04-02 18:03:19 · 306 阅读 · 0 评论 -
OpenGL_Learn16(深度测试)
即使之前绘制的片段本就应该渲染在最前面。因为我们是最后渲染地板的,它会覆盖所有的箱子片段:它将会丢弃深度值大于等于当前深度缓冲值的所有片段。原创 2024-04-01 17:39:50 · 381 阅读 · 0 评论 -
opengl草稿复习,承上启下(二)
草稿原创 2024-03-29 15:30:59 · 251 阅读 · 0 评论 -
opengl草稿复习,承上启下(一)
草稿,未完待续原创 2024-03-27 17:07:23 · 213 阅读 · 0 评论 -
OpenGL_Learn15(投光物)
main.cpp。原创 2023-11-21 22:43:00 · 261 阅读 · 0 评论 -
OpenGL_Learn14(光照贴图)
在光照场景中,它通常叫做一个漫反射贴图(Diffuse Map)(3D艺术家通常都这么叫它),它是一个表现了物体所有的漫反射颜色的纹理图像。我们会将纹理储存为sampler2D。我们将之前定义的vec3漫反射颜色向量替换为漫反射贴图。注意sampler2D是所谓的不透明类型(Opaque Type),也就是说我们不能将它实例化,只能通过uniform来定义它。如果我们使用除uniform以外的方法(比如函数的参数)实例化这个结构体,GLSL会抛出一些奇怪的错误。原创 2023-11-21 21:53:43 · 435 阅读 · 0 评论 -
OpenGL_Learn13(材质)
cube.vscube.fsmain.cpp原创 2023-11-18 20:29:22 · 267 阅读 · 0 评论 -
OpenGL_Learn12(光照)
续。原创 2023-11-15 23:39:26 · 94 阅读 · 0 评论 -
OpenGL_Learn11(光照)
而是来自于我们周围分散的很多光源,即使它们可能并不是那么显而易见。光的一个属性是,它可以向很多方向发散并反弹,从而能够到达不是非常直接临近的点。所有光照的计算都是在片段着色器里进行,这里光照是作用于被照射的物体,也就是。(Normal Vector)的东西,它是垂直于片段表面的一个向量(下面两个着色器就是光源点,无需进行其他操作。为了测量光线和片段的角度,我们使用一个叫做。我们将会先使用一个简化的全局照明模型,即。把环境光照添加到场景里非常简单。计算实际的颜色需要(原创 2023-11-15 00:02:56 · 249 阅读 · 0 评论 -
OpenGL_Learn10(颜色)
我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。换句话说,那些不能被物体所吸收(Absorb)的颜色(被拒绝的颜色)就是我们能够感知到的物体的颜色。例如,太阳光能被看见的白光其实是由许多不同的颜色组合而成的(如下图所示)。下图显示的是一个珊瑚红的玩具,它以不同强度反射了多个颜色。我们可以看到玩具的颜色了白色光源中很大一部分的颜色,但它根据自身的颜色值对红、绿、蓝三个分量都做出了一定的反射。这也表现了现实中颜色的工作原理。原创 2023-11-13 22:54:58 · 226 阅读 · 0 评论 -
OpenGL_Learn09(摄像机)
texture两个文件以及shader就是之前的版本。原创 2023-11-12 19:35:21 · 103 阅读 · 0 评论 -
OpenGL_Learn07(变换)
向量有一个方向和一个大小。如果一个向量有2个维度,它表示一个平面的方向(想象一下2D的图像),当它有3个维度的时候它可以表达一个3D世界的方向。可以把这些2D向量当做z坐标为0的3D向量。原创 2023-11-06 22:26:30 · 105 阅读 · 0 评论 -
OpenGL_Learn08(坐标系统与3D空间)
OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的坐标都应该在到之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐标。然后将这些标准化设备坐标传入光栅器(Rasterizer),将它们变换为屏幕上的二维坐标或像素。原创 2023-11-08 23:19:15 · 1002 阅读 · 0 评论 -
OpenGL_Learn06(纹理)
接着之前的。原创 2023-11-05 13:36:02 · 241 阅读 · 0 评论 -
OpenGL_Learn05(纹理)
纹理过滤分为:邻近和线性,这跟opencv图像处理一样。多级渐远纹理四种采样方式:代码实现:图片main.cpp如果load image报错等,记得增加宏:STB_IMAGE_IMPLEMENTATION。原创 2023-11-04 21:08:50 · 284 阅读 · 0 评论 -
OpenGL库安装
安装osg库,里面也有GL第三方库的下载方法,见我其他博客。原创 2023-11-04 12:14:59 · 218 阅读 · 0 评论 -
OpenGL_Learn04
我这边并不是教程,只是学习记录,方便后面回顾,代码均是100%可以运行成功的。原创 2023-11-03 00:09:14 · 260 阅读 · 0 评论 -
OpenGL_Learn03(三角形)
4. 不同的VAO和VBO绘制三角形。5、 两个不同颜色的三角形。3. 两个相连的三角形。原创 2023-11-01 10:14:24 · 77 阅读 · 0 评论 -
OpenGL_Learn02(窗口监听)
【代码】OpenGL_Learn02。原创 2023-10-31 00:06:46 · 122 阅读 · 0 评论 -
openGL_Learn01
glfw3.lib 演练了如果删除默认的lib,报错应该怎么改。原创 2023-10-30 21:44:08 · 59 阅读 · 0 评论