自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AKGWSB 's blog

一个菜鸡的博客

  • 博客(438)
  • 收藏
  • 关注

原创 光线追踪渲染实战(五):低差异序列与重要性采样,加速收敛!

1. 低差异序列具有很好的空间填充性质,使用 sobol sequence 作为生成半球采样样本的随机数 2. 使用重要性采样策略对 Disney BRDF 进行采样,大大加速收敛的过程 3. 预计算 hdr 贴图的重要性采样样本,直接采样光源,对 hdr 贴图高亮处分配更多的光线 4. 使用多重重要性采样策略混合 brdf 采样和 hdr 采样,适应粗糙度和不同大小的光源,加速光线追踪的收敛

2021-10-06 16:23:40 116 2

原创 浅谈《原神》中的图形渲染技术

从猜测的角度出发,谈谈《原神》中主要图形特效的渲染技术与优化方法。包括 LOD,PBR,环境光遮蔽,体积光,体积雾,视差,屏幕空间反射等常见的技术。

2021-03-12 01:47:55 5385 30

原创 光线追踪渲染实战:蒙特卡洛路径追踪及其c++实现

光线追踪超越了传统的图形流水线,是一种现代的渲染。光线追踪是一种基于物理的渲染方法,通过模拟光在介质中的真实表现来输出足以逼近现实的图像。光线从光源出发,经过各种反射折射,进入摄像机。通过渲染方程描述一点的颜色,并且通过蒙特卡洛方法求解渲染方程来获取最终的像素颜色。

2021-02-02 11:22:31 4238 29

原创 体积云渲染实战:ray marching,体积云与体积云光照

今天来搞个赛艇的特技 ---- 体积云。通过 ray marching 算法可以进行体积云渲染。ray marching 算法从摄像机开始,向世界空间投射光线,并且逐步行进,记录沿途的信息,最后根据积累的信息进行云朵的绘制。此外,通过偏移采样的方式来判断云朵的光照情况。最后针对渲染的场景问题进行了优化。

2021-01-25 16:52:16 3308 9

原创 光线追踪渲染实战(四):微平面理论与迪士尼 BRDF,严格遵循物理!

基于物理的渲染,迪士尼原则的 BRDF 实现。首先介绍微平面理论,随后引出双向反射分布函数的概念,最后通过代码实现 Disney principle's BRDF,依次实现了:1. 漫反射,次表面散射 2. 微平面分布的镜面反射 3. 各向异性的镜面反射 4. 清漆,织物外观模拟 .

2021-08-26 03:36:09 249

原创 光线追踪渲染实战(三):OpenGL 光线追踪,用 GPU 加速计算!

利用 GPU 高效并行计算光线追踪,使用 OpenGL 的 fragment shader,通过 texture buffer 传递三角形和 BVH 加速遍历结构到 shader,最后执行光线追踪计算,顺带实现了 HDR 环境贴图

2021-08-16 04:16:05 600 9

原创 光线追踪渲染实战(二):BVH 加速遍历结构

BVH 全称 Bounding Volume Hierarchy,即层次包围盒,是一种场景管理的数据结构。BVH 用 AABB 的盒子(碰撞箱)包围一组三角面片。光线要击中盒子中的三角形的必要条件,是光线击中盒子。如果光线没有击中盒子,那么必定不会击中盒子里面的所有三角形。基于这个规律剔除三角形,从而达到减少求交次数的目的,这就是 BVH 这种数据结构的优势

2021-07-12 16:16:21 454 10

原创 计算机网络重要知识点总结(期末复习笔记)

奈式准则,香农定律,奇偶校验,循环冗余校验(CRC),码分多路复用,载波侦听多路访问碰撞检测(CSMA/CD),信道利用率, 路由选择算法,OSPF,IP 地址,流量控制,拥塞控制,域名解析

2021-06-28 19:42:56 753 9

原创 深大计算机网络慕课期末考答案

我考的是试卷 1,这份答案一伯分,还有一套不清楚现在慕课看不了答案了,凭着记忆再做一次,不保证答案正确性,请谨慎食用一、单选题 (共 100.00 分)1.我国的第一个也是全球最大的 IPv6 试验网是( A)?A.CERNET2B.CERNETC.6BoneD.RENATER2( 2.00 分 )一个 IPv6 数据报可以有多个扩展首部,但是只有一种扩展首部可以在一个 IPv6 数据报可以有多个扩展首部,这种扩展首部是( C )。A.逐跳选项首部B.路由选择首部C.

2021-06-25 13:53:34 514 2

原创 万字长文爆杀操作系统(期末复习笔记)

操作系统期末复习笔记。包括操作系统四大管理:进程,内存,文件,设备1. 进程管理:调度算法,临界与互斥,死锁2. 内存管理:内存分配算法,虚拟化技术,寻址,换入换出3. 文件管理:文件存储方式,链接,索引法,盘块管理与分配4. 设备管理:缓冲区管理,脱机技术,磁盘寻道算法

2021-06-23 15:08:35 730 9

原创 深大操作系统:xv6 综合实验二:有名管道,内存交换,文件权限,线程

目录前言1. 线程2. 文件权限3. 内存交换4. 有名管道(fifo)总结前言这是本学期最后一个实验,不出意外的话,也是我在深大做的最后一个实验,也是【深大 xxxx 实验】系列的最后一篇博文了。常言道善始善终,希望这个实验能给我的作业生涯一个好的收尾收个寄吧收,你要是看了接下来的代码就会发现,我根本就是在摆烂,代码一点都不严谨,突出一个能动就行诚然我们班的实验非常难,但是坚持下来,我真的感觉学到了东西。当然,来自 mit 的 xv6 功不可没,不得不承认 xv6 是一个优秀的教学操作系统,虽然大

2021-06-12 22:24:30 639 4

原创 深大操作系统实验四:磁盘 Inode 读取,盘块读取,软硬链接,磁盘挂载

1. 创建目录2. 创建文件,查找 inode 号,读取 inode 内容,读入第一个盘块的数据3. 创建软硬链接4. 验证内存的磁盘 cache 的加速效果5. 挂载磁盘,将光驱数据挂载到磁盘目录以访问6. fopen 与 open7. 文件指针与游标的思考

2021-06-02 19:19:57 762 9

原创 深大操作系统:xv6 综合实验一:copy on write,slab,信号量,调度与系统调用

前三个题目 hello world,系统调用,调度,信号量,难度不是很大,抄老师的代码就完事了后面两个题没有示例代码。他们分别是实现 slab,即 byte level 的内存分配。,注意页表的单独映射和页内偏移最后一个题是 copy on write,通过只读页的中断来触发 copy,然后分配物理页帧,映射一下内存就搞定了。此外整个内核自旋锁来互斥地维护页引用计数器变量

2021-05-16 21:17:31 991 13

原创 深大操作系统实验三:crash 与地址转换,内存分配与回收,物理页帧的竞争

1. 利用 crash 展示和解说一个虚地址经过页表逐级转换的过程2. 分配内存,释放内存形成孔洞,记录该进程的虚存空间变化,验证进程空间的内存分配算法3. 测试出你的系统单个进程所能分配到的最大虚拟内存空间为多大4. 每隔4KB间隔将相应地址进行读操作,然后重复上面操作,不过此时为读操作,再观察其变化5. 展示两个进程的物理页帧竞争的动态变化过程6. 验证快表

2021-05-10 14:08:13 1446 3

原创 操作系统理论:处理机调度算法

在复杂的计算机设备中,为了满足用户的需求,往往是有多个执行流在并行的运行,换句话说,有 多个程序 在跑!但是我们只有一个 CPU,根据体系结构常识,一个 CPU 能且仅能同时跑一段程序,怎么办呢?大伙一起用 CPU!这就产生了调度的问题怎么轮流?这么多程序谁先谁后使用 CPU,使用多长时间?这些问题都是处理机调度算法所研究,并且致力于实现的目标。

2021-04-19 14:02:46 407 2

原创 深大操作系统实验二:处理机调度

操作系统实验:1. 在一个空闲的单核Linux系统上用nice命令调整两个进程的优先级2. 在一个空闲的双核Linux系统上启动P1/P2/P3/P4四个一直就绪不阻塞进程,用top查看并记录负载均衡现象3. 在一个空闲的单核Linux系统运行两个进程,以相同优先级的RR实时调度的进程,在上述两个进程结束前运行另一个优先级更高的FIFO进程4. 生产者-消费者 进程同步与共享内存问题

2021-04-07 23:27:03 1205

原创 深大计网实验 4:Socket 网络编程

计网实验,包含 4 个内容:1. URL 请求程序2. 系统时间查询3. 网络文件传输4. 网络聊天室附:聊天室 GUI

2021-04-01 01:11:06 832 13

原创 操作系统理论:信号量机制与共享资源的并发访问问题

在操作系统中通常使用信号量来处理多个任务存取共享资源的情况。信号量包含一个整数和任务队列。是一种区别于数据库锁与阻塞的新机制,在等待时不占用 cpu,以提高系统的并发性能。

2021-03-24 17:11:11 443 2

原创 深大操作系统实验一:并发程序设计

操作系统实验一:并发程序设计。包括:1.使用fork()创建子进程2.编写代码实现孤儿进程,编写代码创建僵尸进程3.创建多个线程,在各个线程中打印出堆栈变量的地址,4.创建相同数量的进程和线程比较进程控制块开销的差异、内存vma描述符开销的差异5.尝试自行设计一个C语言小程序,完成最基本的shell角色

2021-03-16 16:17:12 1723 4

原创 OpenGL学习(十一):延迟渲染管线

在这之前的博客,我们都是使用 “前向渲染” 来对生成的像素做处理,比如我们可以为每一个像素添加光照,阴影等效果。但是今天我们要引入一种更加高级的渲染方式 ---- 延迟渲染。延迟渲染是各大计算机游戏引擎常用的一种较为现代的渲染策略,延迟渲染的出现最主要是为了解决了大量光源的光照计算,减少了片元着色器的计算量,使得渲染复杂的场景变得可能!

2021-01-22 19:05:09 576 2

转载 A simple introduction to Batch Normalization

机器学习中的 Batch Normalization 技术的简单介绍。分析遇到的问题,随后提出 Batch Normalization 方法以解决问题。

2021-01-22 14:13:00 110

原创 自动机与形式语言复习:文法,DFA,NFA与正则表达式,CFG化简

目录前言文法DFANFANFA 转换为 DFAε-NFA正则表达式图上作业法泵引理极小化 DFA 算法FA 交集前言自动机与形式语言通过规范化的文法,逻辑地表示某些字符串。此外,通过对串的成分进行分析,同时给出一组状态与对应的状态转移,组成自动机。DFA 和 NFA 是两种自动机,都能够判断某些串是否能够被接收,走到接收状态就算接收。还有三天。。。考完就可以 run 了,好耶!我只考三门,都觉得复习很吃力,但是别人往往考 10 门,还比我先考,还游刃有余。这令我深刻的认识到:我是啥β原本打算摸了

2021-01-15 22:18:52 2138 13

原创 数据库理论:关系代数与 SQL

目录前言关系代数选择语句投影语句连接语句除法(重要⚠)关系代数例题SQL视图模式匹配聚合,分组与HAVING子查询SQL 例题前言关系代数通过符号化的语言,来描述数据库的行为关系,相当于简化版的 SQL。比如并,交,差,笛卡尔积,除法,select 语句等等。SQL 则是结构化查询语句,相比于关系代数,更方便被计算机识别的一种查询语言。其余的复习笔记:数据库理论:函数式依赖,无损拆分,依赖保留拆分与数据库范式数据库理论:ER模型,关系转换,并发控制与冲突可串行化调度关系代数交,并,差,笛卡

2021-01-13 23:29:44 817 4

原创 计组复习(四):cache,虚拟内存,页表与TLB

目录前言cache高速缓存直接映射全相连映射组相连映射指令缓存与数据缓存虚拟内存(重要⚠)页表缺页替换TLB例题(重要⚠)FastMath前言来到存储器章节的复(yu)习。首先引入 cache 高速缓存,来缓解高速的 cpu 和低速的内存之间的拖带关系。然后是虚拟内存机制,虚拟内存能够很好的帮助程序员避免麻烦的内存管理与冲突等问题,并且将内存作为模块化独立出来。上一篇博客回顾:计组复习(三):流水化的数据通路,流水线冒险检测与处理在去年的计系 2 课程也讲到了 cache,本篇博客只是简单提一下

2021-01-12 22:36:04 1336 3

原创 计组复习(三):流水化的数据通路,流水线冒险检测与处理

目录前言流水线思想前言昨天复(yu)习了单周期的 mips 流水线数据通路,知晓了硬件结构如何通过一系列的控制信号,完成不同指令的区别处理。然而单周期的数据通路是一种理想化的情况,因为整个指令执行的过程,占用了全部的硬件。事实上,为了效率,流水化的硬件结构在同一时刻最多被 5 个指令分享(对应 mips 的 5 个阶段),这就带来了数据一致性的问题。流水化的数据通路通过中间缓存的方式,避免了数据冲突,并且巧妙地将 5 个阶段的硬件使用,按照逻辑分隔,真正实现了流水化执行指令。墙裂推荐先阅读:

2021-01-12 01:05:26 1088

原创 计组复习(二):单周期数据通路与控制信号

目录前言单周期数据通路算数逻辑指令(R 型指令)取指令阶段译码阶段执行阶段内存访问阶段写回阶段下一条指令内存访问指令分支跳转指令总结(重要⚠)前言昨天复(yu)习了:计组复习(一):乘法器,除法器与浮点加法器,巩固了硬件事如何实现运算操作的。今天复习 cpu 数据通路,也是很复杂的图。一步一步来吧。唔。。。。现在是凌晨 1:42,人快芜了,所以博客内容可能会出现一些纰漏 dbq 我爬 Orz才不是打了一天 lol 导致没时间复习。还有,有没有懂哥知道男刀这版本怎么玩?出暗爪还是幕刃还是渴血?征

2021-01-11 01:44:25 1057 3

原创 计组复习(一):乘法器,除法器与浮点加法器

目录前言乘法器优化乘法器除法器优化除法器浮点加法器(重要⚠)对阶阶段加法阶段规格化阶段舍入阶段浮点加法小结前言zsbd Orz乘法器普通乘法器模拟竖式乘法的计算过程。每一行竖式都有如下操作:取 乘数(multiplier) 最低位,和 被乘数(multiplicand) 相乘。不断将被乘数左移,乘数右移,每一行的的竖式乘法结果进行累加:注:其思想是二进制拆分,比如计算:6∗5=30 6*5=30 6∗5=30那么 6 可以被二进制分解为 4 + 2,即30=4∗5+2∗5=22

2021-01-10 00:56:00 982 10

原创 图形学:用十五分钟带您推导模型,视图和投影变换矩阵

目录前言模型矩阵缩放旋转平移视图矩阵相机坐标系基底标架旋转标架平移投影矩阵正交投影透视投影前言明天考图形学了,推一下矩阵,顺便练下 Latex数学公式警告⚠模型矩阵模型矩阵负责将物体进行三个变换:平移,选择和缩放。此外,我们认为原坐标为 x,变换后则得到 x’ 坐标(接下来的变换都用该形式表示),即:x→x′x \rightarrow x'x→x′话不多说,开冲!缩放缩放矩阵非常简单,各个坐标直接乘以对应的缩放因子即可:S(sx,sy,sz)=[sx0000sy0000sz0

2021-01-07 23:09:14 346 4

原创 OpenGL学习(十)天空盒

目录写在前面天空盒简介创建立方体贴图渲染一个立方体立方体贴图着色器开始绘制天空盒完整代码着色器c++写在前面上一篇博客回顾:OpenGL学习(九)阴影映射(shadowMapping)在昨天我们实现了非常简单的阴影映射特效,今天来更新立方体贴图的内容。这部分的内容相当简单,前提是要对 OpenGL 及其绘制过程有一个基本的理解。相信我,仅 10 分钟足够你完成一个立方体贴图,并且用于天空盒的渲染。天空盒简介注意到我们之前的代码都是利用:glClearColor(1.0, 1.0, 1.0, 1

2021-01-03 19:16:38 495

原创 OpenGL学习(九)阴影映射(shadowMapping)

目录写在前面阴影映射原理简介写在前面今天是 2021 年的第一天,不管 2020 怎么说,都翻篇了,需要看向一个前方。新年快乐!书接上文:OpenGL学习(八)phong光照模型上次我们讲到通过 phong 光照模型进行简单光照特效的绘制。今天我们使用阴影映射技术,来进一步绘制阴影,使得场景的光照效果更加逼真。事实上,这是我第 n 次写这个内容了。。。第一次是:从零开始编写minecraft光影包(1)基础阴影绘制第二次是:深大计算机图形学大作业之虚拟场景建模第 3 到 n-1 次是帮别人

2021-01-02 21:50:09 421 4

原创 数据库理论:ER模型,关系转换,并发控制与冲突可串行化调度

目录前言ER模型实体属性原子属性复合属性关系参与?完全参与?关系的度(degree)一对一与一对多并发控制并发控制概述封锁三协议第一封锁协议第二封锁协议第三封锁协议活死锁死锁预防一次封锁(完全封锁)顺序封锁死锁诊超时法等待图法死锁解除并发调度的可串行性可串行化调度冲突可串行化调度两段锁封锁粒度显示锁与隐式锁意向锁锁的强度前言今天小测,赶快抱佛脚 Orz 。。。。ER模型ER 模型,又名 “实体关系模型”,洋文叫 Entity - Relationship Model,是数据库结构设计的第一步,也是至

2020-12-30 17:12:31 867 2

原创 计组实验5:cache大小测量与 cache line 大小测量

前言今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。⚠我没有在 Linux 下试过课本上面的代码。。。我是在 win10 下测试的。。。所以 。。。我并不确定我的代码是否正确。

2020-12-28 20:24:37 2472 6

原创 深大计算机图形学大作业之虚拟场景建模

目录前言要求前言这次大作业算是做的比较认真的了,记录一下。全文几乎完全参考 Learn OpenGL 的教程,感谢大佬 Orz要求学生可以通过层级建模( 实验补充1和2)的方式建立多个虚拟物体,由多个虚拟物体组成一个虚拟场景,要求在程序中显示该虚拟场景,场景可以是室内或者室外场景;场景应包含地面。场景设计和显示添加纹理添加光照、材质、阴影效果用户交互实现视角切换完成对场景的任意角度浏览通过交互控制物体...

2020-12-23 14:23:38 4153 21

原创 OpenGL学习(八)phong光照模型

目录前言Model 类的小小改动phong 光照模型phong 光照简介环境光漫反射高光在着色器中实现 phong 光照完整代码c++着色器前言上一篇回顾:OpenGL学习(七)通过assimp库读取多种格式的模型在上一篇博客中,我们实现了最简单的网格对象 Mesh,并且从 assimp 库接收我们需要的信息,同时进行绘制。这意味着我们逐渐步入现代。今天我们要利用 phong 光照模型,实现对物体的光照效果的模拟,让场景更加真实。注:本篇博客代码基于上一篇博客:OpenGL学习(七)通过ass

2020-12-20 17:07:51 553 4

原创 OpenGL学习(七)通过assimp库读取多种格式的模型

目录前言obj 模型读取问题assimp 库简介封装我们的网格对象网格对象的最小需求draw 的实现bindData 的实现封装模型对象load 函数的实现加载模型!完整代码c++着色器前言上一篇回顾:OpenGL学习(六)纹理与obj格式模型的读取好久没更新 OpenGL 系列了。这个月忙着搞图形学的大作业,发现需要用到读模型,而读取 obj 模型就很麻烦了,我是个终极懒狗,怎么可能会自己动手写模型解析器?于是直接下载别人写好的轮子来用了。顺便提一句题外话,最近搞图形学大作业踩了个坑。关于法线的

2020-12-20 00:59:44 1035 7

原创 计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论前言上一篇博客:计组实验3 mips冒险之流水线冒险摸了半个月了。。。咕咕咕 今天来写计组实验 4这个实验非常简单,就是有点难。这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。注:请务必阅

2020-12-19 14:47:10 729 4

原创 OpenGL学习(六)纹理与obj格式模型的读取

目录前言纹理映射纹理坐标映射到简单正方形读取图像生成正方形数据生成纹理着色器贴纹理前言上一篇博客回顾:OpenGL学习(五)相机变换,透视投影与FPS相机在上一篇博客中,我们利用相机变换矩阵,对场景进行透视投影,同时我们实现了可以自由飞翔的 FPS 相机。迄今为止我们的渲染都是非常单调并且过时的,今天我们来引入一些现代化的东西,来丰富我们的场景。首先我们会利用一张图片生成纹理,随后我们将这张图片贴在我们的物体上。这就像现代计算机游戏中,我们可以让艺术家们人为的制定一些图片,而不是由程序员大费周章的

2020-12-09 14:53:28 3302 16

原创 深大数据库实验3之销售管理系统 -- php与mysql之后台编写与接口

⚠ 完整代码在这里 ⚠https://github.com/AKGWSB/SZU-DBSC-LAB3目录前言要求项目结构规划数据库创建与数据准备编写 show_xxxx 过程以全表打印编写 report_monthly_sale 函数以打印报表编写 add_purchase 函数以实现添加一笔购买记录为 purchases 表的 insert 操作注册触发器以实现业务逻辑注册触发器以记录 logs为增删改操作编写 sql 接口编写数据管理模块编写下单模块编写报表模块主页快速部署前言唔 销售管理系统

2020-12-07 23:15:58 3877 27

原创 数据库理论:函数式依赖,无损拆分,依赖保留拆分与数据库范式(复习笔记)

目录前言各种键函数式依赖无损拆分无损拆分定义判定方法直观判断法ab迭代法依赖保留拆分前言下周小测,很无聊的内容,但是还是要复习一下各种键在开始之前我们先要认识一下数据库中的几种键,这里只介绍和接下来的理论有关的 key:super key(超级键)可以用其唯一地表示出任何一条记录candidate key(候选键)不可拆分的 super key,拆分掉任何一个属性,都不具备 super key 的特性这个不难理解,就简略带过一下函数式依赖函数很简单:f(x) = y,可是函数的性质并不

2020-11-30 16:09:51 1411 4

原创 vcpkg安装SOIL2库报错及其解决方案

今天因为要读图片,安装一下 OpenGL 的 SOIL2 库。但是 vcpkg 给出的表现不尽人意,于是记录一下自己的解决方案。首先是无法下载,因为源网站已经迁移到 Github 上面了,源站点现在空空如也,就只有一个 readme:我们需要手动到 SOIL2 的 GitHub 上面下载,下面是下载地址:https://github.com/SpartanJ/SOIL2/releases根据我们 vcpkg install 命令执行时,显示的目标版本来进行下载。我这里是 1.11 版本:下载 t

2020-11-28 19:06:44 336

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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