自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 指针 || 引用 || const || 智能指针 || 动态内存

复合类型:引用:基本概念: 绑定对象,不发生拷贝(当普通赋值时,为确保创建新的对象,分配新的地址,对象拷贝操作),相当于对象的别名 初始化:type & name = obj; 只能绑定在对象(左值)上,之后所有操作都在绑定的对象进行 因为一旦绑定了对象,就不能更改,因此定义时必须初始化 引用非对象:没有 地址 / 内存(数据),因此不能定义引用的引用,也没有const 引用 初始化时对象类型必须要与引用的类型一致: 因为类型不一致时,编译器为确保引用绑定相同类型,创建了

2024-07-07 23:19:36 178

原创 OpenGL3.3_C++_Windows(27)

格拉姆-施密特。

2024-07-03 22:57:19 854

原创 OpenGL3.3_C++_Windows(26)

Demo演示有Shadow无Shadow渲染点光源阴影点光源算法和定向阴影映射差不多,但不同的是,不能用平行光使用的单一视角定向阴影映射生成阴影贴图,应计算每个方向的深度贴图 需要从一个点光源的所有方向渲染场景,普通2D深度贴图不能工作;如果我们使用立方体贴图会怎样?整个场景渲染到立方体贴图的每个面上,把它们当作点光源四周的深度值来采样。过程: 立方体贴图: 正常流程: 从光周围渲染场景6次(需要6个不同的视图矩阵,)for(){} 每次启用立方体贴图的

2024-07-01 20:33:33 560

原创 OpenGL3.3_C++_Windows(25)

阴影失真:阴影的不真实感条纹样式:首先理解采样原理:同光的视角下,渲染一张深度图,每个像素,存储同一射线下的深度值(不断更新深度缓冲的结果),即最近片段的深度。 接着,每个片段,T变换到光的视角下,从对应的深度贴图采样,比较自身的深度值,和深度贴图的深度值,、这便是阴影计算的过程 但是,深度贴图受限于分辨率,在距离光源比较远的情况下,多个片段可能从深度贴图的同一个值中去采样, 由于每个像素的深度值,为映射到同一像素范围内片段的中心点,那么映射到同一像素范围内的,某些Fragment.z &g

2024-06-30 14:11:36 1137

原创 OpenGL3.3_C++_Windows(24)

如果使用一个所有光线都平行的定向光,使用正交投影矩阵,否则点光源和聚光灯,使用透视投影矩阵(因为投影矩阵实质,是决定可见的范围,以及范围的形状,光空间的范围,即光线的散射组成的范围,被光覆盖的范围)LookAt()计算光(位置+看的方向)的view矩阵(实质,将物体坐标变换到相机坐标的视角下),

2024-06-30 14:05:40 701

原创 OpenGL3.3_C++_Windows(23)

【代码】OpenGL3.3_C++_Windows(23)

2024-06-28 15:18:44 1179

原创 OpenGL3.3_C++_Windows(22)

(入射光线 + 视线 ) / |(入射光线 + 视线 )|正规化(只关心半程向量方向,不关系长度)只需要dot(半程,法线)……

2024-06-28 10:04:49 505

原创 OpenGL3.3_C++_Windows(21)

遇到模型边缘有锯齿:光栅器将顶点数据转化为片段的方式有关。

2024-06-27 15:36:35 571

原创 OpenGL3.3_C++_Windows(20)

【代码】OpenGL3.3_C++_Windows(20)

2024-06-27 09:10:09 763

原创 OpenGL3.3_C++_Windows(19)

向量是一个抽象的概念,涉及一系列简单 /复杂的 公式定义。

2024-06-25 19:19:32 928

原创 C++ 左值右值 || std::move() || 浅拷贝,深拷贝 || 数据类型

【代码】左值右值 || std::move() || 浅拷贝,深拷贝 || 数据类型。

2024-06-25 19:13:56 716

原创 OpenGL3.3_C++_Windows(18)

接口块:glsl彼此传输数据,通过in / out,当更多的变量,涉及数组和结构体 接口块(Interface Block)类似struct,in / out +块名{……}实例名Uniform缓冲对象:首先理解uniform Object: 负责向glsl传入变量/ 数组 / 结构体……,类似于const,这个不能在glsl内部被修改 glsl在GPU上运行,uniform在着色器程序内部是全局的const,意味着不必通过顶点着色器作为中介 Uniform Buffer Object

2024-06-23 22:14:51 702

原创 OpenGL3.3_C++_Windows(17)

【代码】OpenGL3.3_C++_Windows(17)

2024-06-23 22:09:42 812

原创 OpenGL3.3_C++_Windows(16)

【代码】OpenGL3.3_C++_Windows(16)

2024-06-22 17:40:33 500

原创 OpenGL3.3_C++_Windows(15)

定义在glad,c中,extern在glad.h中,按照下面的转化,这样我们就可以在代码中才可以用 gl开头 的函数了。typedef本质定义新的类型,否则仅定义函数指针,新类型 + pfun;函数指针定义:返回类型(*函数名pfun)(参数表) ,函数指针指向函数在内存中的首地址。如何调用:*解引用获取实际的函数,为函数传实参,fun(x);typedef 定义别名,pfun类型为void(*)(void)如何赋值:定义普通函数,为pfun赋值,因此指向了函数的地址,、

2024-06-22 17:40:29 1165

原创 c++ virtual || virtual =0

如何获取到类对象的虚函数表地址:(int*)&a,虚函数表第1个函数地址(int*)*(int*)(&a)虚函数表第2个函数地址(int*)*(int*)(&a) + 1。final:如果不希望某个类被继承,或不希望某个虚函数被重写,则可以在类名和虚函数后加上 final 关键字,再被继承或重写,编译器就会报错。vptr(虚指针):每一个类添加一个指针,指向虚表,因为指针存在,又会占用内存,因为继承的原因,子类中虚表还有内存中的数据都会增加,包含基类的虚函数和数据。包含纯虚函数的类称为抽象类,

2024-06-21 23:55:06 643

原创 c++ 多重包含/定义 || 链接性 || 生命周期

全局作用域:定义在(类 / 函数 )外部的变量 || 声明/不先声明直接定义在 (类 / 函数 )外部的函数 || 类,整个程序中都可以访问,不同文件中需要,extern type name,访问。类作用域:在类中定义的 成员变量 || 成员函数声明 || 内联函数,可以通过创建类的对象或引用来访问,作用域:类的私有成员只能在类的内部访问,而公有成员可以在类的外部通过对象访问。函数作用域(局部作用域):函数的参数和在函数内部定义的 变量 / 形参,作用域函数,这能在函数内部访问。

2024-06-21 23:48:54 928

原创 OpenGL3.3_C++_Windows(14)

【代码】OpenGL3.3_C++_Windows(14)

2024-06-20 07:47:00 732

原创 OpenGL3.3_C++_Windows(13)

dataNULL,

2024-06-20 07:39:02 606

原创 OpenGL3.3_C++_Windows(12)

ref。

2024-06-17 21:32:22 675

原创 OpenGL3.3_C++_Windows(11)

【代码】OpenGL3.3_C++_Windows(11)

2024-06-17 21:29:08 1239

原创 OpenGL3.3_C++_Windows(10)

​。

2024-06-15 10:25:00 828

原创 OpenGL3.3_C++_Windows(9)

【代码】OpenGL3.3_C++_Windows(9)

2024-06-15 10:06:50 425

原创 OpenGL3.3_C++_Windows(8)

【代码】OpenGL3.3_C++_Windows(8)

2024-06-13 17:42:38 1030

原创 OpenGL3.3_C++_Windows(7)

缩放是均匀的,法线的方向将保持不变,长度会受影响,但很容易通过单位化修复,

2024-06-13 00:04:22 1062

原创 OpenGL3.3_C++_Windows(6)

【代码】OpenGL3.3_C++_Windows(6)

2024-06-11 21:05:05 551

原创 OpenGL3.3_C++_Windows(5)

【代码】OpenGL3.3_C++_Windows(5)

2024-06-10 18:50:03 746

原创 OpenGL3.3_C++_Windows(4)

st、

2024-06-10 11:31:08 903

原创 OpenGL3.3_C++_Windows(3)

下载premake-5.0.0-beta2-windows.zip,必须也拷贝LICENSE.txt许可证才行 premake:编写简单的Lua脚本来描述项目的配置和构建等选项。Premake.exe Tokens:根据不同的平台和配置自动调整自身,和vs中的属性配置差不多,是一个意思。wks工作区,prj项目,cfg项目配置,比如%{cfg.buildcfg}(当前的构建名称(debug||release……)..返回上级目录,"cfg.buildtarget" (dll)or "cfg.linkta

2024-06-09 17:21:47 846

原创 OpenGL3.3_C++_Windows(2)

VAO顶点数组(顶点数据和属性配置:当绘制物体绑定相应的VAO,绘制完成解绑):glGenVertexArrays 创建VAO,glBindVertexArray(VAO):到glBindVertexArray(0);索引缓冲EBO:glGenBuffers :glBindBuffer,glBufferData矩形只有4个而不是6个顶点,为了减少开销,存储绘制哪些顶点的索引,和vao一样也在draw前取出glBindBuffer。对于绘制不同的图元,关键是,绑定什么shader,VAO,drawAPI。

2024-06-08 15:42:46 991

原创 OpenGL3.3_C++_Windows(1)

OpenGL本身由Khronos维护的规范(Specification),而OpenGL库作为图形API,开发者自行实现(Implement)固定渲染管线(转为2d图形的过程):立即渲染,开发者无法控制OpenGL如何进行计算。3.3后核心模式:提供了更多的灵活性,更高的效率对扩展(Extension)的支持。本质状态机(State Machine),根据OpenGL上下文(Context)状态去执行相应的渲染。

2024-06-07 15:53:06 607

原创 unity 实习记录——包含众多天坑bug(随便写写无排版)

Screen.width,Screen.height - 指的是使用该值的窗口的宽高,比如:在Scene窗口使用指的就是Scene窗口的宽高,在Game窗口使用,即运行编辑器时使用,指的就是Game窗口的宽高,在自定义的Window使用指的就是自定义的Window的宽高。OnPointerEnter触发,或者事件触发,必须在第一层,考虑(画布overlay和ui的顺序(在前面放,越先绘制,越在后面)),前面的才能被检测,这。画布中的anchors描点:物体对齐的位置,分辨率下物体以哪里为基准。

2024-03-25 23:39:54 772

原创 计算机操作系统

提供:文件管理,存储管理,处理器管理 ,设备管理,封装底层,gui图形用户。控制管理整个硬件软件,提供给用户方便的接口环境,最基本的系统软件。任务管理器:可以看硬件软件的控制。

2024-03-14 21:01:22 129

原创 c++ ->vscode && unity->vscode

一·配置:MIVC—》vscode下载vs:vs下载项 命令行——编译——运行: MIVC(vs下载)—》vscode-》cl 编译命令 ;MinGW (MINGW下载)-》GNU编译器 -》g++编译命令 ; MIVC环境变量配置分为3部分 编译:cl /EHsc demo.cpp。如果生成 .exe则成功 编译错误:可以将这些添加到cpp根目录中 运行:demo.exe vscode——编译——运行 使用dcp输入code(配置了path)打开vscode 配置插

2024-02-26 23:48:51 322

原创 计算机网络——中科大第一章

第一章1.1因特网。

2024-01-05 22:14:52 310

原创 C++:LeetCode && 牛客--剑指offer(涉及知识点)

2.2.1c++

2023-12-18 23:47:39 371

原创 lua基础学习笔记--持更

支持面向过程/对象,和函数式编程(可以赋值,作为参数,作为返回值)通用表,

2023-10-17 15:28:10 55

原创 深入理解计算机系统C

1.1。

2023-08-29 17:30:41 40 1

原创 linux--基础命令

2更改网卡名为etho,添加​net.ifnames=0​ 代表的是:设置 CentOS7.4 默认网卡名称使用eth0。2要在cd /lib/kbd/consolefonts中的。1ficonfig--查找IP。一·安装VMware,添加虚拟机。进入文件mv/vi/cd后ls。二·添加Secure链接。i写入:wq退出:q退出。

2023-07-20 22:12:32 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除