计算机图形学
文章平均质量分 89
系统地学习计算机图形学的知识:包括OpenGL ES理论知识以及实战演练,扩展学习Filament等渲染引擎等知识点
字节卷动
字节卷动 | CSDN博客专家
博客知识包括:Android、ASM、OpenGL、C++、Java、Python、Shell、Jenkins、Gitlab、Git、SVN等相关进阶知识。
展开
-
【我的OpenGL学习进阶之旅】收集到的关于如何在OpenGL ES上使用MSAA(Multisample Anti-aliasing)实现抗锯齿效果的资料和源码
在OpenGL ES平台上使用MSAA实现抗锯齿效果原创 2023-03-03 17:47:46 · 890 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】解决使用Assimp和OpenGL进行在屏渲染和离屏渲染FBO时绘制3D模型出现各种诡异的模型渲染画面问题,都是血和泪的教训啊!!!
分析opengl进行在屏渲染和离屏渲染时,渲染3D模型出现的诡异现象,然后解决之原创 2023-02-19 18:27:19 · 522 阅读 · 0 评论 -
【我的渲染技术进阶之旅】解决显示3D模型时因为使用stb_image库或者opencv库加载纹理时未翻转y轴导致模型纹理映射出错的问题
解决3D模型映射的纹理Y坐标是翻转的,从而导致显示异常的问题原创 2023-02-07 17:39:21 · 513 阅读 · 0 评论 -
【我的渲染技术进阶之旅】Games104游戏引擎思维导图2.0上线!
登录GAMES104官网即可获取【思维导图2.0】这份思维导图凝结了1500+个知识点。成为了许多同学成长路上的“导览”我们的思维导图2.0正式上线。经过了一个月的重新打磨。GAMES104官网。你可以在电脑上这样看。原创 2023-02-03 16:07:52 · 580 阅读 · 0 评论 -
【我的渲染技术进阶之旅】解决Cinema 4D制作的3D模型无法导入Blender的问题
在我的博客【我的OpenGL学习进阶之旅】关于3D模型知识之:什么是obj文件和mtl文件1newmtl xxx表示定义一个名为xxx的材质;如我们代码使用了这个材质Ns表示材质的反射指数,反射指数越高则高光越密集,取值范围在一般为 [0,1000];Ni表示材质的折射值(折射率),定义当前材料中的光密度(也称为折射率)。值的范围可以从0.001 到 10。值1.0表示光在穿过对象时不会弯曲。玻璃的折射率为 1.5;d表示指定溶解因子(dissolve),即这种材料溶解到背景中的程度。原创 2023-01-11 18:20:51 · 4614 阅读 · 0 评论 -
【我的渲染技术进阶之旅】关于C++轻量级界面开发框架Dear ImGui介绍
imgui是目前最流行的ui库,它长这样。你能在各种开源引擎、工具、软件看见它,它的风格比较特别,让你一眼就知道,这个软件的界面是imgui做的。Dear ImGui 是一个 用于C ++的无膨胀图形用户界面库. 它输出优化的顶点缓冲区,您可以随时在启用3D管线的应用程序中进行渲染。它快速,可移植,与渲染器无关并且是独立的(无外部依赖性)。原创 2023-01-10 17:30:45 · 6837 阅读 · 3 评论 -
【我的渲染技术进阶之旅】关于OpenGL纹理压缩的相关资料
1. 什么是压缩纹理2. 如何自定义压缩纹理和使用自定义压缩纹理3. 常见的压缩纹理格式原创 2023-01-04 21:02:23 · 1530 阅读 · 0 评论 -
【我的渲染技术进阶之旅】glfw库简单介绍
您可以通过单击访问任何 GLFW 功能的参考文档,每个功能的参考链接到相关功能和指南部分。原创 2023-01-04 17:36:31 · 3472 阅读 · 1 评论 -
【我的渲染技术进阶之旅】你可能永远猜不到为什么Filament项目命名为TNT?
英文的缩写真的不是一般恶心,完全无法让人猜到什么意思这些开源项目的命名真的随意。原创 2022-12-20 10:17:50 · 1313 阅读 · 0 评论 -
【我的渲染技术进阶之旅】OpenGL ES 使用表面剔除和深度测试解决渲染3D模型的时候,出现背面黑点的问题
在绘制图形过程中,对于观察者而言,有些部分是可见的,有些是不可见的。如果都进行渲染的话,不可见部分会会影响整体的渲染效果,无法满足预期的效果。对于不可见的部分,我们就没有渲染的必要了,要及早丢弃掉他们。例子:一间草屋,我们站在门前的时候,草屋的背后我们是看不到的,那么就不要渲染它了。否则就会出现下图中的场景(我们绘制一个立体图形后 对其进行旋转操作查看时,背面我们本应是看不到的面也被看到了。那么针对这类问题的解决,就叫做“隐藏面消除(Hidden surface elimination)”。原创 2022-12-19 18:12:56 · 1570 阅读 · 0 评论 -
【我的渲染技术进阶之旅】【AR研究】第一集—AR的基本原理科普
首先摄像头和传感器采集真实场景的视频或者图像,传入后台的处理单元对其进行分析和重构,并结合头部跟踪设备的数据来分析虚拟场景和真实场景的相对位置,实现坐标系的对齐并进行虚拟场景的融合计算;比如如果虚拟物体的位置能够随设备而移动,做到随身随行,则是MR的实现,如果不能移动,定位在三维世界中,你离开了,虚拟物体还是摆放在刚刚的位置,则是AR。AR,即增强现实技术,它的出现意味着能将计算机技术带到现实当中来,能使科技更“贴近”人们的现实世界的生活,被誉为可能是代替智能手机的,未来的下一个平台。转载 2022-12-02 18:10:41 · 1842 阅读 · 0 评论 -
【我的渲染技术进阶之旅】关于ARCore的标准人脸3D模型canonical_face_mesh.fbx和2D面部网格参考纹理canonical_face_mesh.psd文件
要实现增强面孔,您需要自定义纹理和模型 叠加在已识别的面网格上。这些资产由艺术家创建 提前使用3D建模和动画软件,并导出为FBX 文件。不要导出包含的模型。此网格仅供参考。ARCore 将在运行时创建一个单独的面部网格。在创建自定义面部网格纹理时使用 UV 作为参考。.facemesh将自定义网格放置为.asset节点的子项支持使用命名空间。该资产包含四个骨骼和区域组成。不要更改这些骨骼的名称。转载 2022-11-30 14:56:10 · 1204 阅读 · 0 评论 -
【我的渲染技术进阶之旅】你知道数字图像处理的标准图上的女孩子是谁吗?背后的故事你了解吗?为啥这张名为Lenna的图会成为数字图像处理的标准图呢?
【我的渲染技术进阶之旅】你知道数字图像处理的标准图上的女孩子是谁吗?背后的故事你了解吗?为啥这张名为Lenna的图会成为数字图像处理的标准图呢?原创 2022-11-27 13:21:07 · 4616 阅读 · 2 评论 -
【我的渲染技术进阶之旅】推荐一个游戏引擎开发的开源电子书《游戏引擎 浅入浅出》
手把手教你如何开发游戏引擎第 1 章介绍游戏引擎框架,以Unity为例,介绍游戏引擎组成。第 2 章介绍OpenGL开发环境搭建,创建一个OpenGL空窗口来入坑。第 3 章介绍使用OpenGL绘制三角形、正方形、立方体,来熟悉游戏渲染的最基础元素。第 4 章介绍Shader的概念,编译链接,以及Shader格式、关键字。第 5 章介绍贴图格式,从直接读取PNG、JPG渲染,然后介绍GPU所使用的的压缩纹理。第 6 章介绍索引与缓冲区对象,索引就是多个顶点的下标,使用索引可以复用顶点渲转载 2022-11-23 20:20:02 · 541 阅读 · 0 评论 -
【我的渲染技术进阶之旅】基于Filament渲染引擎绘制一个不停旋转的彩色矩形
使用Filament渲染引擎绘制一个不停旋转的矩形原创 2022-11-16 16:03:23 · 1265 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】如何在Android中使用ARCore结合OpenGL ES来实现增强人脸Augmented Faces?
在我上一篇博客介绍了如何使用ARCore+Sceneform来实现的效果。本篇博客将介绍如何使用ARCore结合OpenGL ES来实现的效果。原创 2022-11-09 15:26:36 · 1405 阅读 · 0 评论 -
【我的渲染技术进阶之旅】收集到的关于KTX(Khronos Texture)的一些资料:用于OpenGL、Vulkan和其他GPU API的纹理轻量级容器
KTX是一种高效的轻量级容器文件格式,用于可靠地将GPU纹理分发到不同的平台和应用程序。它的特点是从文件内容实例化纹理对象所需的加载器的简单性。KTX 文件的内容范围可以从简单的基本2D 纹理到带有 mipmap 的立方体贴图阵列纹理。KTX 文件包含将纹理高效加载到OpenGL®和Vulkan®等3D API所需的所有参数。原创 2022-10-20 20:30:00 · 1064 阅读 · 0 评论 -
【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:Android版本的Filament第一个示例:sample-hello-triangle
介绍如何使用Filament绘制一个不停旋转的彩色三角形原创 2022-10-15 18:01:19 · 1372 阅读 · 0 评论 -
【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用filamesh命令将.obj或者.fbx文件转换为.filamesh文件?
可以使用filament命令将.obj或者.fbx文件转换为.filamesh文件可以去查看filament程序源代码android中,只是将手动执行filament命令封装了一下,在编译的时候自动执行filament命令。原创 2022-10-15 14:27:15 · 494 阅读 · 1 评论 -
【我的渲染技术进阶之旅】收集到的关于基于图像光照(Image based lighting)IBL 的一些资料
收集到的关于基于图像光照(Image based lighting)IBL 的一些资料原创 2022-10-14 20:00:00 · 595 阅读 · 0 评论 -
【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用cmgen命令自动将.hdr文件转换为.ktx文件或者.rgb32文件等?
可以使用cmgen命令将.hdr文件转换为.ktx文件或者.rgb32f文件或者其他支持的格式可以去查看cmgen程序源代码android中,只是将手动执行cmgen命令封装了一下,在编译的时候自动执行cmgen命令。原创 2022-10-14 12:17:10 · 921 阅读 · 0 评论 -
【我的渲染技术进阶之旅】GLM使用手册 GLM 0.9.9 Manual
是基于OpenGL着色语言 (GLSL) 规范的图形软件的仅头文件C++数学库。在我之前的博客有介绍如何引入GLM库。但是有时候得查一下GLM库的用法,就得去查看。因为一些众所周知的原因,有时候这些网站打开比较慢,因此将这篇【GLM的Manual文档】摘抄下来,方便后续查看。下面是转载的内容。转载 2022-10-14 14:00:00 · 1419 阅读 · 0 评论 -
【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用matc命令自动将输入材质定义.mat文件转换为输出材质包.filamat文件?
matc工具就是材质编译器。在中,有一段代码,指定了matc工具最终的输入目录和输出目录然后我们跟进去,查看代码,在文件中,有下面的task定义,即Matc的task定义。if(!我们可以看到,实际上,就是将手动执行的matc命令在插件中调用了可以使用matc命令将.mat文件转换为.filament文件可以去查看matc程序源代码android中,只是将手动执行matc命令封装了一下,在编译的时候自动执行matc命令。原创 2022-10-13 17:43:07 · 880 阅读 · 0 评论 -
【我的渲染技术进阶之旅】如何在Windows系统编译Filament的android版本程序?
Google Filament引擎编译记录,避免其他人踩坑原创 2022-10-10 17:58:43 · 929 阅读 · 5 评论 -
【我的渲染技术进阶之旅】什么是AABB?
阅读完上面的几篇链接,我们大致可以了解AABB的概念了。这里大致整理一下,更深的AABB知识欢迎读者自行查阅!首先AABB是的缩写,意思是轴对齐边界框。是矩形的3D版本。AABB(Axis Aligned Bounding Box)是一个 3D 框。它的宽度/高度/深度不必相等,但宽度始终与 X 轴对齐,高度与 Y 轴对齐,深度与 Z 轴对齐。也就是说这个盒子是不能旋转的。AABB 是空间划分的关键,它们让我们将 3D 空间的一部分切割成更小的 3D 空间部分。原创 2022-10-08 12:01:40 · 620 阅读 · 0 评论 -
【我的渲染技术进阶之旅】让我们一起来了解一下什么是glTF?为什么glTF是3D世界的JPEG?
是一种3D文件格式,它以JSON格式存储3D模型信息。JSON的使用最大限度地减少了3D资产的大小以及解压和使用这些资产所需的运行时处理。它被应用程序用于3D场景和模型的高效传输和加载。glTF由3D 格式工作组开发,也被其创建者描述为3D JPEG。GLTF文件格式为3D内容工具和服务定义了一种可扩展的通用发布格式,可简化创作工作流程并实现跨行业内容的互操作使用。创建glTF文件格式的目的是为3D内容工具和服务定义一种可扩展的通用发布格式,以简化创作工作流程并实现跨行业内容的互操作使用。原创 2022-09-30 14:36:07 · 768 阅读 · 0 评论 -
【我的渲染技术进阶之旅】如何编译Filament的windows版本程序?
Filament是一个基于物理的实时渲染引擎,适用于和WebGL2。它被设计为在Android上尽可能小且尽可能高效。原创 2022-09-29 17:50:29 · 1498 阅读 · 2 评论 -
【我的OpenGL学习进阶之旅】Assimp库支持哪些3D模型格式?
那么Assimp除了支持.obj格式,还支持什么其他的3D模型格式呢?Asset-Importer-Lib(简称 assimp)是一个库,用于加载和处理来自各种3D数据格式的几何场景。通过支持节点层次结构、静态或蒙皮网格、材质、骨骼动画和潜在纹理数据,它主要针对典型的游戏场景进行定制。但也支持一些3D打印和CAD格式。该库不是为速度而设计的,它主要用于从各种来源导入资产一次并将其存储为特定于引擎的格式,以便每天轻松快速地加载。assimp 还能够对导入的数据应用各种后处理步骤。原创 2022-09-14 10:03:03 · 2093 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】关于3D模型知识之:什么是obj文件和mtl文件
OBJ 格式 和 MTL 格式 展示以及格式说明原创 2022-09-09 16:14:57 · 1527 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】收集的3D渲染技术之UVMap和Mesh相关资料
UVMap介绍的相关资料原创 2022-09-06 18:03:32 · 1076 阅读 · 0 评论 -
【我的Android进阶之旅】在Android中使用MediaPipe库在实时视频源上实现人脸网格Face Mesh的绘制
1. 介绍下MediaPipe2. 介绍下MediaPipe的FaceMesh3. 介绍下如何移植到Android Studio中,使项目可改可运行原创 2022-09-06 14:54:37 · 2448 阅读 · 2 评论 -
【我的OpenGL学习进阶之旅】当你运行OpenGL程序的时候,程序并不绘制任何内容,并且白屏和黑屏的时候怎么排查?
学习OpenGL一段时间了,在平常写OpenGL程序的时候,经常出现一些运行程序当时并不绘制任何你想要的效果,甚至有时候直接白屏或者黑屏的现象。幸好每一次我都将OpenGL程序中的问题排查出来,最终渲染出我想要的效果。但是在排查过程中也是很痛苦的,有时候改代码一上午才能确定出最终的问题所在。因此我想总结一下这段时间调试的经验。原创 2022-09-04 11:58:19 · 1034 阅读 · 0 评论 -
【我的Android进阶之旅】如何在Android中使用ARCore来增强人脸Augmented Faces?
如何使用ArCore来实现增强人脸Augments Faces的效果原创 2022-09-02 16:33:04 · 1321 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】着色器GLSL运行时报错: ERROR: 0:40: ‘gl_FragColor‘ : undeclared identifier
【我的OpenGL学习进阶之旅】解决着色器GLSL运行时报错: ERROR: 0:40: 'gl_FragColor' : undeclared identifier原创 2022-08-24 20:30:00 · 1531 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】着色器GLSL运行时报错 GLSL compile error: Premature end of line
没有在着色器文件中标明使用版本的时候默认使用GLSL 2.0版本。在上面的着色器文件中添加即表明使用GLSL 3.0版本,如果不添加则使用默认GLSL 2.0版本注意此行必须放在第一行,如果不这样会报错,参考博客:【我的OpenGL学习进阶之旅】解决着色器编译错误:#version directive must occur on the first line of the shader同时注意使用3.0的api的时候必须添加此行。原创 2022-08-19 21:00:00 · 627 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】解决OpenGL在使用glUniform系列api时出现了 GL_INVALID_OPERATION 1282错误
介绍OpenGL调用glUniform的参数介绍以及注意事项,以及如何排查出现的GL_INVALID_OPERATION 和 GL_INVALID_VALUE 错误原创 2022-08-11 20:45:00 · 4016 阅读 · 2 评论 -
【我的OpenGL学习进阶之旅】 C++ 长行字符串多行书写的方法以及如何书写正确的OpenGL Shader着色器代码
1. 如何在C++中书写多行字符串2. OpenGL该在哪里书写正确的shader着色器代码原创 2022-07-29 20:30:00 · 698 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】向量点乘和叉乘的几何意义
简单介绍下向量的点乘和叉乘的区别和几何意义原创 2022-07-26 21:30:00 · 563 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】计算机视觉 (CV) 、 计算机图形学 (CG) 以及图像处理(DIP)
PS本文摘自互联网几篇文章整合的内容。在[xyzxyzxyz…xyz]->图片图片->dogorcat?图片->[xyzxyzxyz…xyz]图片->ps后的图片1.,现今的三维游戏为了增加表现力都会叠加全屏的后期特效,原理就是DIP,只是将计算量放在了显卡端。通常的做法是绘制一个全屏的矩形,在PixelShader中进行图像处理。2.来打杂活,比如对需要识别的照片进行预处理,增强对比度、去除噪点。3.最后还要提到今年的热点——。中是这样描述的和。...原创 2022-07-14 20:52:49 · 3034 阅读 · 0 评论 -
【我的OpenGL学习进阶之旅】关于OpenGL实现相机/图片滤镜的功能项目
关于Android 和 iOS 使用OpenGL实现滤镜的一些参考项目原创 2022-07-11 15:51:21 · 1293 阅读 · 0 评论