- 博客(138)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 OpenGL_Learn20(帧缓冲)
,然后与缓冲区进行绑定。纹理一般是在片段着色器中的,意味着这个纹理可以进行修改(反向、高亮)。要保证所有的渲染操作在主窗口中有视觉效果,我们需要再次激活默认帧缓冲,将它绑定到。对这个四边形进行填充信息,俗称附件。可以看见这个缓冲增加了纹理就变得生动了。这个帧缓冲应该可以看作的类似VAO的,他是要绑定纹理的,纹理就是【之后所有的渲染操作将会渲染到当前绑定帧缓冲的附件中。因此这个纹理贴在缓冲区上则可以生动的渲染出来。帧缓冲案例,最终就是绘制一个四边形。
2024-04-08 14:35:35 139
原创 OpenGL_Learn19(混合)
OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻璃窗是一个透明的物体,玻璃有它自己的颜色,但它最终的颜色还包含了玻璃之后所有物体的颜色。这也是混合这一名字的出处,我们混合(Blend)(不同物体的)多种颜色为一种颜色。所以透明度能让我们看穿物体。比如草,一般都是纹理贴到正方形纸片上,会导致如下的效果。
2024-04-06 11:13:15 141
原创 OpenGL_Learn17(模板测试)
你可以看到这两个箱子的边框重合了,这通常都是我们想要的结果(想想策略游戏中,我们希望选择10个单位,合并边框通常是我们想需要的结果)。如果你想让每个物体都有一个完整的边框,你需要对每个物体都清空模板缓冲,并有创意地利用深度缓冲。模板缓冲首先会被清除为0,之后在模板缓冲中使用1填充了一个空心矩形。场景中的片段将会只在片段的模板值为1的时候会被渲染(其它的都被丢弃了)。模板缓冲操作允许我们在渲染片段时将模板缓冲设定为一个特定的值。通过在渲染时修改模板缓冲的内容,我们。这些值,来决定丢弃还是保留某个片段。
2024-04-02 18:03:19 301
原创 OpenGL_Learn16(深度测试)
即使之前绘制的片段本就应该渲染在最前面。因为我们是最后渲染地板的,它会覆盖所有的箱子片段:它将会丢弃深度值大于等于当前深度缓冲值的所有片段。
2024-04-01 17:39:50 372
原创 PCL安装以及CGAL构建三维凸包
用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。我对bat进行了修改,寻找lib文件,排除d.lib。旨在寻找release的lib。安装pcl,我的是window10,vs2019。照着上述博客进行配置,再结合这个设置环境变量。
2024-02-04 18:04:07 495
原创 QT自用,勿点
自己有接近2年的前端经验(html,js,jq,vue之类的),但是一直对QT不是很熟悉,之前零散的学了一些,但是平时不怎么做界面,这几天系统的学一下。
2024-02-03 18:46:12 3170 3
原创 CGAL5.4.1 边塌陷算法
实现一个自定义的边缘坍塌策略,在边缘坍塌的同时更新相关顶点的纹理坐标。这可能涉及计算坍塌操作中涉及的顶点的新纹理坐标。
2024-01-30 23:36:09 812
原创 CGAL内置的边塌陷算法代码解析
这个algorithm.run()就是实际的边塌陷算法具体实现run()实现函数,重点关注collect()和loop()
2024-01-25 13:56:20 1206
原创 CGAL-5.4.1三角剖分和点云分割简单案例
这段代码实现了点云数据的分类。它首先读取点云数据,然后计算了一系列的特征,并对数据应用了分类。最后,它使用标签为每个点着色,并将结果保存为PLY格式的文件。左边是分割前,右边是分割后。
2024-01-23 10:24:02 491
原创 CGAL::Plane_3<K>平面结构
是 CGAL(Computational Geometry Algorithms Library)中的一个类,代表三维空间中的一个平面。在这个类中,K是一个内核类型参数,通常代表了一组几何对象的类型和操作,比如点、向量、平面等。K决定了这些对象的内部表示和提供的算法。在 CGAL 中,一个平面通常由方程表示,其中abc和d是平面方程的系数。这些系数定义了平面的方向(法向量)和它与原点的相对位置。
2024-01-22 16:42:32 503
原创 CGAL最小生成树、可视化
Prim算法是一种用于在带权无向图中找到最小生成树的算法。最小生成树是原图的一个子图,它连接了图中的所有顶点,且边的权重之和最小,且不形成任何循环。好的,我将重点解释Prim算法的使用以及在代码中如何通过映射来存储Prim算法的结果。
2024-01-18 11:27:34 439 2
原创 Docker
【docker pull 环境】默认是下载latest最新的版本,也可以用【docker pull 环境:版本号】下载指定版本,例如【docker pull mysql:5.7】–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;-p: 指定端口映射,格式为:主机(宿主)端口:容器端口。-i: 以交互模式运行容器,通常与 -t 同时使用;
2024-01-17 15:40:11 902
原创 Surface mesh结构学习
的实现,可用来表示多面体表面。它是半边数据结构(Halfedge Data Structures)和三维多面体表面(3D Polyhedral Surface)这两个 CGAL 软件包的替代品。其主要区别在于它是基于索引的,而不是基于指针的。此外,向顶点、半边、边和面添加信息的机制要简单得多,而且是在运行时而不是编译时完成的。由于数据结构使用整数索引作为顶点、半边、边和面的描述符,因此它的内存占用比基于指针的 64 位版本更少。由于索引是连续的,因此可用作存储属性的向量索引。
2024-01-13 00:00:00 574
原创 git将本地的项目上传到git
两种方案一个是http 一个是ssh ,我试过http不行,ssh可以。.gitignore 如何忽略 .vs 文件夹 和test文件夹。2、在本地项目根文件夹下关联git仓库。将本地的项目上传到git。4、上传本地文件到远程。1、先在git创建仓库。
2024-01-09 11:05:02 196
原创 OpenGL_Learn14(光照贴图)
在光照场景中,它通常叫做一个漫反射贴图(Diffuse Map)(3D艺术家通常都这么叫它),它是一个表现了物体所有的漫反射颜色的纹理图像。我们会将纹理储存为sampler2D。我们将之前定义的vec3漫反射颜色向量替换为漫反射贴图。注意sampler2D是所谓的不透明类型(Opaque Type),也就是说我们不能将它实例化,只能通过uniform来定义它。如果我们使用除uniform以外的方法(比如函数的参数)实例化这个结构体,GLSL会抛出一些奇怪的错误。
2023-11-21 21:53:43 432
原创 OpenGL_Learn11(光照)
而是来自于我们周围分散的很多光源,即使它们可能并不是那么显而易见。光的一个属性是,它可以向很多方向发散并反弹,从而能够到达不是非常直接临近的点。所有光照的计算都是在片段着色器里进行,这里光照是作用于被照射的物体,也就是。(Normal Vector)的东西,它是垂直于片段表面的一个向量(下面两个着色器就是光源点,无需进行其他操作。为了测量光线和片段的角度,我们使用一个叫做。我们将会先使用一个简化的全局照明模型,即。把环境光照添加到场景里非常简单。计算实际的颜色需要(
2023-11-15 00:02:56 246
原创 OpenGL_Learn10(颜色)
我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色。换句话说,那些不能被物体所吸收(Absorb)的颜色(被拒绝的颜色)就是我们能够感知到的物体的颜色。例如,太阳光能被看见的白光其实是由许多不同的颜色组合而成的(如下图所示)。下图显示的是一个珊瑚红的玩具,它以不同强度反射了多个颜色。我们可以看到玩具的颜色了白色光源中很大一部分的颜色,但它根据自身的颜色值对红、绿、蓝三个分量都做出了一定的反射。这也表现了现实中颜色的工作原理。
2023-11-13 22:54:58 225
原创 OpenGL_Learn08(坐标系统与3D空间)
OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的坐标都应该在到之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐标。然后将这些标准化设备坐标传入光栅器(Rasterizer),将它们变换为屏幕上的二维坐标或像素。
2023-11-08 23:19:15 992
原创 OpenGL_Learn07(变换)
向量有一个方向和一个大小。如果一个向量有2个维度,它表示一个平面的方向(想象一下2D的图像),当它有3个维度的时候它可以表达一个3D世界的方向。可以把这些2D向量当做z坐标为0的3D向量。
2023-11-06 22:26:30 103
原创 平面扫描(Plane-sweeping)深度体会
注意Dm上一个M'点,这个点不在物体上,这个点很有可能投影到每个可见摄像机上,并不是同样的颜色(图中的两个黑点)。注意平面Dm,这是其中一个平面,平面上有一个M点,这个点也再物体上。所以会被摄像机看到,而且是一个颜色。
2023-11-05 22:47:18 375
原创 OpenGL_Learn05(纹理)
纹理过滤分为:邻近和线性,这跟opencv图像处理一样。多级渐远纹理四种采样方式:代码实现:图片main.cpp如果load image报错等,记得增加宏:STB_IMAGE_IMPLEMENTATION。
2023-11-04 21:08:50 283
cesium-native 编译好的东西哇
2024-04-22
nuxt build 页面收录
2022-02-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人