- 博客(18)
- 收藏
- 关注
原创 OpenGL shader开发实战学习笔记:第十一章 立方体贴图和天空盒
立方体贴图(Cube Map)是一种纹理,它由六个纹理图像组成,每个纹理图像对应一个方向。这些方向通常是立方体的六个面,分别是“前面”,“后面”,“右面”,“左面”,“上面”,“下面”。
2025-04-17 23:11:01
539
原创 OpenGL shader开发实战学习笔记:第十章 法线贴图
我们如果想要在盾牌上实现凹凸感,应该如何做?一种方法是添加更多的顶点来建模更多的细节,但是网格的顶点越多,渲染网格所需的顶点着色器计算就越多,网格占用的内存就越多。大多数游戏不能仅仅因为凹凸和刮痕而为每个物体添加数千个顶点。因此,我们用法线贴图来解决这个问题。法线贴图是使用一张纹理来存储法线信息,然后通过纹理采样来得到法线信息,最后将法线信息应用到物体上。法线贴图是在每一个像素中存储归一化的向量而不是颜色的纹理。由于不存在负颜色,因此纹理无法表示小于0的值。为了解决这个问题,我们需要将法线从−11。
2025-04-16 22:25:28
838
原创 OpenGL shader开发实战学习笔记:第九章 第一个光照模型
镜面光照(Specular Lighting)是计算机图形学中用于模拟物体表面反射高光的一种光照模型。当光线照射到光滑表面时,会以特定角度反射出去。如果观察者恰好处于反射光的路径上,就会看到明亮的高光区域,这就是镜面光照所模拟的效果。镜面光照的计算通常依赖于多个因素,包括光源的方向、观察者的方向、物体表面的法线方向以及物体表面的光泽度。光泽度越高,高光区域就越小且越亮;反之,光泽度越低,高光区域就越大且越暗淡。在实际应用中,镜面光照常与环境光、漫反射光照结合使用,以创建更真实的光照效果。
2025-04-14 21:49:12
874
原创 OpenGL shader开发实战学习笔记:第八章 漫反射光照
法线是垂直于表面并向外的向量,它决定了表面如何反射光线。圆环网格的法线—蓝色线段显示了每个顶点的法线方向。目前我们已经知道网格中存储了网格中每个顶点的位置、颜色和纹理坐标信息。在openFrameworks中,是在location=2中存储法线向量。:不同的引擎和框架可能会以不同的方式存储法线。
2025-04-12 16:17:39
1089
原创 OpenGL shader开发实战学习笔记:第七章 第一个3D项目
ofMesh类是一个三维网格类,用于存储顶点和面信息。ofMesh类提供了load方法来加载ply文件。load方法的参数是ply文件的路径。透视投影是一种常见的投影方式,它可以将3D场景映射到2D屏幕上。透视投影可以将远处的物体缩小,而近处的物体放大,从而产生近大远小的效果。实际项目中,我们通常会使用3D建模软件(如Blender)来创建3D模型,然后导出成3D模型文件。ply格式是一种文本格式,用于存储几何数据。ply文件由三部分组成:文件头、顶点数据和面数据。本书以ply格式的网格文件为例进行讲解。
2025-04-07 21:42:32
583
原创 OpenGL shader开发实战学习笔记:第六章 摄像机和坐标系
视图矩阵(View Matrix)是一个用于将世界坐标系中的物体转换到摄像机视角的矩阵。它定义了摄像机的位置、方向和朝向,从而决定了场景中物体在摄像机视角下的显示方式。
2025-04-06 22:46:27
728
原创 OpenGL shader开发实战学习笔记:第四章 半透明与深度(二)绘制云朵、太阳及小人动起来
要从精灵表中选择单个帧,首先要将四边形的UV坐标乘以二维向量,以便将它们缩放到精灵表纹理中单个动画帧的大小。src 和 dst 是需要进行混合的两个片元的颜色值的名称。dst 是混合发生时后置缓冲的当前值,src 是需要混合的片元的颜色值。1、对于不透明的物体,我们需要开启深度测试,确保正确的深度排序。2、对于半透明的物体,我们需要开启Alpha混合,以支持半透明效果。片元写入后置缓冲的顺序很重要,需要把不透明的片元先写入后置缓冲,再把透明的片元写入后置缓冲。2、半透明的物体,如云。
2025-03-29 22:42:31
458
原创 OpenGL shader开发实战学习笔记:第四章 半透明与深度(一)绘制森林和小绿人
颜色通常由红(Red)、绿(Green)、蓝(Blue)三个通道组成,也就是 RGB 颜色模型。而 Alpha 通道则是在此基础上添加的第四个通道,形成了 RGBA 颜色模型。
2025-03-29 11:44:38
513
原创 OpenGLshader开发实战学习笔记:第三章 使用纹理
纹理本质上是一个图像,它可以是二维的(2D纹理)、三维的(3D纹理),甚至是立方体映射(Cube Map)。在渲染时,纹理会被“贴”到物体表面,从而让物体呈现出各种外观,比如木头、石头、金属等材质的质感。在三维网格上使用的纹理通常看起来不像它们最终要使用的对象。
2025-03-27 22:22:14
1224
原创 matplotlib.pyplot动态更新显示区域及保存为视频
在深度学习训练过程中,我们经常需要观察模型在训练过程中loss或模型的输出变化情况,那么如何实现动态更新显示区域及保存为视频呢?本文将给出采用matplotlib.pyplot的例子来实现动态更新显示区域及保存为视频。
2025-03-16 08:30:00
183
原创 1.采用imagemagick批量转换图片为webp格式
webp格式是谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有jpeg的2/3,并能节省大量的服务器宽带资源和数据空间。webp格式具有无损和有损的压缩模式、Alpha透明以及动画的特性,在JPEG和PNG格式上有着更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量。
2025-03-15 19:30:45
213
原创 Docker 安装filebrowser ,搭建私有网盘NAS,方便易用
filebrowser 是一个开源的网盘,可以搭建私有网盘,可以用来存放一些文件,比如图片,视频,文档等。详细功能介绍见 https://filebrowser.org/features简易登陆界面通过时尚的界面管理您的文件用户及权限管理在线编辑文件。
2025-03-15 14:06:05
508
原创 利用EasyImage2.0 搭建私有图床并采用 PicGo 进行上传
EasyImage2.0 简单图床始于2018年7月,支持多文件上传,简单无数据库,返回图片url,markdown,bbscode,html的一款图床程序 演示地址:https://png.cm/ 之前一直用的图床程序是:PHP多图长传程序2.4.3 由于版本过老并且使用falsh上传,在当前html5流行大势所趋下,遂利用基础知识新写了一个以html5为默认上传并且支持flash,向下兼容至IE9。本程序环境要求极低,适用于单一场景(游客上传)和个人使用,不适于多用户复杂场景。
2025-03-15 09:02:39
490
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人