刘敬_
码龄4年
关注
提问 私信
  • 博客:29,272
    29,272
    总访问量
  • 34
    原创
  • 1,133,588
    排名
  • 14
    粉丝
  • 0
    铁粉

个人简介:时光不待人

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:吉林省
  • 加入CSDN时间: 2021-01-22
博客简介:

qq_54831038的博客

查看详细资料
个人成就
  • 获得15次点赞
  • 内容获得11次评论
  • 获得41次收藏
创作历程
  • 33篇
    2022年
  • 1篇
    2021年
成就勋章
TA的专栏
  • Linux
    1篇
  • 知识拓展
    2篇
  • C++
    9篇
  • 计算机图形学OpenGL
    9篇
  • 每日Debug日记
    5篇
  • Games104
    1篇
  • 笔记
    3篇
  • 每日一题
    3篇
兴趣领域 设置
  • 编程语言
    pythonc++c#
  • 数据结构与算法
    数据结构动态规划b树
  • 人工智能
    计算机视觉图像处理
  • 游戏
    游戏引擎着色器图形渲染虚幻ue5
  • 软件工程
    源代码管理bug
  • 数学
    矩阵几何学
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ALinux3 与CentOS系统

1.由于买阿里服务器的时候,买的是ALinux,而且ALinux完全兼容Cento7.6所以在命令使用上并无差别。但vim配置时,适配于Cento操作系统的一键配置版无法在ALinux系统完成安装。对于用于时间练习的学生来说,基本功能的操作系统就可满足需求,所以对于各服务器的性能体验不做要求,所以选择CentOS7.6是比较好的方案。Linux通常指内核版本,而Cento,Alinux,RedHat指的是基于Linux内核版本开发的多款操作系统。即使功能上可兼容,但是在配置上还是有明显的界限。
原创
发布博客 2022.09.26 ·
2222 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

红黑树 图文详解与代码实现

红黑树被应用于数据结构map/set的封装的底层,也应用于Linux的数据内核,在进程调度CFS,虚拟内存管理,共享内存slab等场景都有广泛应用。数据结构的角度看,(1)用于存储。无论数据是否平衡都可以在O(logN)的复杂度下完成 搜索、插入、删除操作。(2)用于排序。找到最小值和最大值红黑树黑色和红色 也可看成两种状态,红黑区分的状态中,可以根据实际需求添加业务逻辑。......
原创
发布博客 2022.09.01 ·
1522 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

OpenGL 光源分类 行为理论及实现

上篇博客中,实现的镜面反射光,漫反射光探讨的都是简单点光源(不包括衰减),但是并没有考虑到点光源的衰减,接下来将光分为三类,并根据物理抽象出数学模型进行较为真实的光照计算。共性对于每一种光源都有漫射光和平行光的两种成分,漫射光是指在光源中能够被漫反射的光的颜色成分(白色则包括所有颜色),一般分为两种,平行光和点光源。环境光不是光线,但是需要存储,最简单的方法,就是为每个光源设置一个环境等级,然后把它们都放到一个单一项中。平行光是指光源中所有能够被镜面反射的光的颜色成分。设计光照系统其中。..........
原创
发布博客 2022.08.06 ·
361 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++ 搜索二叉树(BST)模拟实现与应用

比如我们要找到2,我们就可以从根(5)开始,向左移动,意味着我们立刻消除了4个可能的节点。然后在1的右面我们找到了节点,只通过了3步实现了的节点。这个例子就很极端,当树不是最优或不平衡时候,BST的搜索性变差,O(n)可能成为最坏的情况。key-value模型,要求设置唯一键,对其余属性数据进行查找,增删,排序等操作。谈起二分查找,在排序中算是很优秀的搜索算法,但是二分查找的条件要求存储数据必须是。带来的代价也就大了起来,随之程序的效率就会大大下降。选取合适的根节点,调整存储顺序是很重要的因素。......
原创
发布博客 2022.07.26 ·
439 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Debug No5基础光照

所以这里存在的问题一定是,我设置的读取了过多的属性信息,而在rend()环节没有解析着色器中对应变量。或者是我读取的着色器中缺少了属性信息,却解析了一些着色器中不存在的变量。但是无论那种,我都没有看到有报错,除非关于着色器的错误是打开着色器文件的错误或着色器及其明显的语法错误。经再检验发现,因为包装的组件名,与类的成员函数同名,而是此处调用的不是用于编译两个立方体shader的组件方法,而是只调用了一个编译立方体shader的成员方法。解决删除了着色器中的纹理等多余变量,在rend()环节没有绑定纹理。..
原创
发布博客 2022.07.23 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug No4 利用RenderDoc排查bug

错误原因,多个纹理单元,每次需要重新绑定。要写让Shader理解的程序,如果你前文不交代谁是_texture,还是_texture2,那么shader无法解析。也就是说,循环内每个都是独立程序,所以都需要重新绑定纹理。(而教程中,没有指定纹理单元,是因为是单张纹理单元默认是0.不需额外指定)一种是Shader打错了,另一种是。RenderDoc和VS相比多了报错。可以帮你定位问题所在的地方,大大节省了时间。1.没有绘制出任何轮廓,说明顶点数据传输有问题,Shader无法解读数据。VS2019运行结果。...
原创
发布博客 2022.07.18 ·
257 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

OpenGL 摄像机 及阶段性复习

本文将从OpenGL生产流程角度,整理learnOpenGL的应用纹理程序和摄像机的步骤。也对OpenGL近期所学做了一下整理。OpenGL加工流程可分为三部分Asset区。组件生产线。组件装配。Asset组件封装组件装配组件生成模型轮廓。............
原创
发布博客 2022.07.18 ·
585 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Debug No3 多张纹理叠加

解决查dos.gl查文档,研究了下函数的参数。分析图片读入问题,打断点调试,读取成功。解决两张图片不能连续读取,需要在绑定第一张后再读取第二张。原因因为两张图片用的是一个指针,存在调用顺序问题。3.bug状态两张纹理在片段着色器和在主函数调用时,名字不统一,另外一个二元坐标和一个思源坐标输出也不匹配。(1)将获取ID的方法,封装成Shader类的成员方法(2)通过Shader类,获得成员变量ID。在实现了单项纹理应用后,想实践,多项纹理叠加组合。4.bug状态只显示一张纹理,非叠加效果。.........
原创
发布博客 2022.07.17 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug No3 多张纹理叠加

解决查dos.gl查文档,研究了下函数的参数。分析图片读入问题,打断点调试,读取成功。解决两张图片不能连续读取,需要在绑定第一张后再读取第二张。原因因为两张图片用的是一个指针,存在调用顺序问题。3.bug状态两张纹理在片段着色器和在主函数调用时,名字不统一,另外一个二元坐标和一个思源坐标输出也不匹配。(1)将获取ID的方法,封装成Shader类的成员方法(2)通过Shader类,获得成员变量ID。在实现了单项纹理应用后,想实践,多项纹理叠加组合。4.bug状态只显示一张纹理,非叠加效果。.........
原创
发布博客 2022.07.17 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug No2 按流程检查错误

这些方法封装了各个渲染需要的组件的的调用,而具体方法的复杂实现在其对应的类中(如shader类中的编译shader方法,ffImage类中的读取纹理图片等等)。这个过程可以假想成PS内的绘图功能,选定图层,选择画笔样式,设置绘制轮廓(指定数据),设置绘制方式。(1)Asset区,主要包含全局变量的声明,shaderProgram,VAO,VBO等,以及一些外部导入的资源_texture.推测黑色部分信息缺失。3.Bug状态,显示出一张采样信息错误的图片,没有纹理信息。,而不是RGBA,导致没有深度信息。..
原创
发布博客 2022.07.15 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug No1 总结出现bug的常见解决方案

2022年7月14日 早(debug1.5h+博客0.5h)1.在学习利用VBO和VAO绘制一个三角形时,出现了Bug,提示是:“std::ios_base::failure”报错位置在于Shader文件读入失败。解决:检查了读入代码,无误。又检查了Shader文件的存放位置。应在工程文件夹下的,与主函数文件统一文件夹下。在VS里,存放在资源文件目录下。语法应用场景要明确。2.之后Shader文件中发现"一处拼写错误"。打代码时要专注仔细。3.然后运行之后又出现"返回值异常:-1073741510"解决:刚
原创
发布博客 2022.07.14 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Debug No1 总结出现bug的常见解决方案

2022年7月14日 早(debug1.5h+博客0.5h)1.在学习利用VBO和VAO绘制一个三角形时,出现了Bug,提示是:“std::ios_base::failure”报错位置在于Shader文件读入失败。解决:检查了读入代码,无误。又检查了Shader文件的存放位置。应在工程文件夹下的,与主函数文件统一文件夹下。在VS里,存放在资源文件目录下。语法应用场景要明确。2.之后Shader文件中发现"一处拼写错误"。打代码时要专注仔细。3.然后运行之后又出现"返回值异常:-1073741510"解决:刚
原创
发布博客 2022.07.14 ·
384 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

VAO详解

(一)VAO详解顶点数组对象是一种OpenGL对象,它存储提供顶点数据所需的所有状态。VAO仅引用缓冲区。作为OpenGL对象,VAO具有通常的创建,销毁和绑定功能:glVertexArrays,glDeleteVertexArrays和glBindVertexArray(VAO只有一个目标)。...
原创
发布博客 2022.07.08 ·
2867 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

OpenGL处理错误的方式

这一节主要讲 glGetError,它几乎在每一个 OpenGL 的版本中都有,所以在OpenGL的错误处理上比较常用。
原创
发布博客 2022.07.07 ·
2075 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

(T-1) C++知识点补充 ifstream + enum

参考博客: ifstream 的使用方法介绍 一_龙贝尔莱利的博客-CSDN博客_ifstreamofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;代码框架:源码ENUM 参考博客:函数返回值类型为枚举类型 - 管言 - 博客园C++ enum枚举类型_一叶执念的博客-CSDN博客_c++ emun 枚举是个好东西,它和结构体一样,都可以定义一种数据类型,但是枚举有一个更优点,就是它可以默认指定定义的初始值。  有一个项目,涉及到CPU
原创
发布博客 2022.07.02 ·
130 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

顶点缓冲区与着色器 (The Cherno + LeranOpenGL)笔记

1.图形渲染管线主要被划分成两个主要部分,第一部分是把物体的3D坐标转换成为2D坐标,第二部分是把2D坐标转变为有实际颜色的像素。一般步骤为:顶点着色器->图元装配->几何着色器->光栅化->片段着色器->Alpha测试与混合。2.图形渲染管线高度专门化,所以大多数显卡可以并行执行,而在GPU上为每一个渲染管线阶段运行各自的小程序,这些小程序的名字就叫做着色器。而且着色器还可以用自己写的着色器(GLSL)代替默认的。 1.顶点缓冲区的概念与辨析 :基本就是去掉vertex,它只是一个内存缓冲区,一个内存字节
原创
发布博客 2022.07.02 ·
1259 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

OpenGL新建一个窗口

新建窗口 判断:glfw是否初始化初始化提示(对openGL使用进行说明)初始化窗口 判断:是否生成了窗口渲染循环 主要完成 清除当前缓冲,渲染绘制,交换前后缓冲区,处理回调事件...
原创
发布博客 2022.06.29 ·
159 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

A2-1 利用stb_image.h来进行图片的绘制与显示

目录(一)读取图片(二)绘制图片TIP1:Debug:(三)stb_image.h库下载与使用使用教程:TIP2:gittee源代码 如有问题请就指出,谢谢!stb_image 是一个简单易用的图像解码库。这里我们采用图形库stb_image.h来读取图片。思路:(1)从计算机通过stb_image库函数读入一张图片,并将信息封装在Image类中。(2)将读入的图片绘制在画布...
原创
发布博客 2022.04.23 ·
2037 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

A-2 绘制直线Brensenham算法证明与实现

简介:Bresenhan算法将坐标系分割成棋盘形状,每个像素占有一个棋格,当我们进行采样时(直线斜率小于1),如下图所示,假设给定绘图的起始点为(10,11),那么绘制下一个采样点的坐标必然是从(11,11)和(11,12)中选择一个。如果把这种情况一般化,对于绘制直线的起始点是(Xk,Yk),那么其下一个采样点必然是(Xk+1,Yk)或者(Xk+1,Yk+1)中的一个。作用:消灭浮点数。因为浮点数是不准确的。不多解释,算法并不复杂。证明:(1)思路几个关键点:这是一些定..
原创
发布博客 2022.04.12 ·
370 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++ 多态原理剖析A-6

多态的两个条件:虚函数重写,基类用引用或者指针来调用虚函数虚函数 定义 格式 类型重写的定义:基类 重写子类重写调用函数 处理虚表虚表的定义虚函数
原创
发布博客 2022.04.10 ·
526 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多