自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yhisken的博客

主要用于自学记录,学习笔记,学习发现,无端感慨......嗯嗯。

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

原创 [自学记录09*]探究降采样顺序对模糊性能优化的影响

这两天接手了几个高度定制化的模糊,包括不限于放射和旋转状的径向模糊,移轴模糊,景深的散景模糊等等,这些效果在游戏中非常常见。其实模糊的原理都差不多,无非就是对UV偏移后重新采样再求平均。这里面最费的自然是对整张屏幕的RT采样。询问了一圈,貌似如果在低端机上采样8次就已经算非常非常高了。那就不得不搬出一个常见的优化手段,那就是降采样。关于降采样还有一点,在径向模糊,景深等效果中,并不是使整个屏幕的画面全部模糊,一般来说会有一段距离/一个区域是保持清晰的。

2024-08-09 19:29:49 893

原创 【Unity】Inspector排版扩展学习初探

https://img-blog.csdnimg.cn/direct/7c0eb0c7dbe54241b1723df9da84e07e.png

2024-06-12 17:49:07 1012 2

原创 [自学记录09*]Unity Shader:在Unity里渲染一个黑洞

记得很久很久以前,在ShaderToy上看过一个黑洞的效果,当时感觉太*8帅了,于是这几天就尝试自己弄了一个。下面是我自己实现的黑洞可以看到还是略逊一筹(感觉略逊百筹)。主要是吸积盘的纹理细节不够丰富,以及Bloom的调整。本文着重介绍原理,工程实现等有空再写一篇文章。

2024-06-06 16:10:27 1359

原创 【GPU原理】1.线程和缓存的关系

对于如上的运算AX+Y,每次运算我们需要从内存读取两个数据,一个是x[i],一个是y[i],最后存回y[i]。这里面有一个FMA的操作(融合乘加(FMA)指令是RISC处理器中的常见指令),把乘法和加法融合在一起。之后进行N次的迭代。这就是在CPU的一段串行,按顺序执行的程序。以Intel Exon 8280芯片为例,内存带宽是113GB/s,内存延时是89ns ,那么每次,也就是89ns里面,我们有11659个byte去执行,当然这只是峰值的算力。

2024-06-01 18:24:42 1316

原创 【计算机组成&体系结构】双端口RAM和多体结构主存储器

DRAM的电容结构决定了DRAM的破坏性读出,因此DRAM需要在存取过程中不断的恢复刷新才能使数据不丢失。由此引发了两个问题,多核CPU的每个核都要访存怎么办?以及如何解决恢复时间长的问题?

2023-12-14 23:42:09 331

原创 【计算机组成&体系结构】只读存储器ROM

运行时操作系统在主存中,但是由于RAM断电后数据会丢失,所以操作系统都存储在辅存中,在开机时由CPU读入主存,而BIOS芯片就是用来存储自举装入程序的,它用于开机时引导把操作系统装入主存。 因此在逻辑上,主存应该为内存条+BIOS芯片,并且RAM和BIOS芯片是统一编址的。

2023-12-14 19:18:09 202

原创 【计算机组成&体系结构】SRAM和DRAM

把128次刷新分摊到2ms内,也就是2ms/128 = 15.6μs,也就是说我们每隔15.6μs刷新就可以了,那么每15.6μs,有15.1μs存取,0.5μs的时间刷新,也就是说有0.5μs的死区,在实际操作中,我们可以在CPU不访问存储器的一段时间内进行刷新,比如译码阶段。在SRAM中,如果给出八位地址0000 0000,则行列地址是同时被输给行列地址译码器的。我们上篇提到了存储器的地址是一个个存储单元的地址,如果有20位的地址,那么就要有2^20,也就是1m的选通线,显然在工程上实现是非常困难的。

2023-12-07 23:58:11 2113 2

原创 【计算机组成&体系结构】主存储器的基本组成

一个存储器逻辑上分为,这三块在时序逻辑电路的控制下相互配合工作。而有多个构成,每个存储单元又由每个构成。一个存储元可以存放一位的二进制的0/1。一个存储元由一个和一个组成。MOS管是一种半导体,当通电压达到某一定阈值时它才会变成导体,否则是绝缘体。上图所示电容下金属板接地为0V,下金属板若和上金属板存在电势差则会存储电荷,以此来决定存储元存储的是1还是0。当接通MOS管时,若导线一端有电荷流出,则可以判断该电容保存的是二进制的1,否则保存的是0。这是二进制的读出。

2023-12-05 22:55:52 296

原创 【计算机组成&体系结构】存储系统基本概念

CPU无法直接与辅存传输数据,因为CPU的处理速度大于辅存的读写速度,如果直接交互会拖累CPU的速度。所以需要先把辅存中的数据写入主存再与CPU进行数据传输。Cache,高速缓存在主存和CPU之间。存在Cache的原因是主存的读写速度仍然不及CPU的处理速度,所以用Cache来备份存储在主存中经常用到的 数据,这样就可以增加整个主机的处理速度。主存—辅存:实现了虚拟存储系统,解决了主存容量不足的问题。Cache—主存:解决了主存与CPU速度不匹配的问题。

2023-11-20 19:28:56 122

原创 [自学记录08*]LDR、HDR与ToneMapping

为什么那么多文章都不说人话呢?

2023-11-04 23:34:25 629

原创 [自学记录07|*Animation]四元数、死锁与方位插值

本文从比较High Level的层面上总结了一下各种表达方位的方式,涉及介绍较多,公式推导较少,关于一些详细的公式推导可以参考其它文章,有很多大佬写了很多非常好的推导过程可以参考,有兴趣的朋友可以自行学习。三维旋转:欧拉角、四元数、旋转矩阵、轴角之间的转换 - 知乎 (zhihu.com)【Unity编程】欧拉角与万向节死锁(图文版)-CSDN博客。

2023-10-15 21:12:13 258

原创 【计算机组成&体系结构】电路基本原理与加法器设计

那么2个1的情况有两种,我们需要进行或运算,一种情况是两个本位Ai和Bi都为1,或者Ai,Bi其中一个为1,然后进位是1。这里以上图的与门为例,若输入端A为高电压5V,表示1,输入端B电压为1V,表示0。我们可以把多个一位全加器串联起来,组成串行进位的并行加法器,这样就可以同时输入n位的数,同时低位的进位会作为高位全加器的一个输入信号。的进位信号是逐级形成的,只有来自低位的进位信号决定了,我们才能决定本位和和更高位的进位信号。异或操作我们说是一种符合逻辑运算,因此我们可以用基本的逻辑运算实现,如上图所示。

2023-10-14 23:08:47 1471

原创 【计算机组成&体系结构】移码 | 定点小数的表示和运算

上篇我们提到了原码,反码和补码的表示形式和如何转换。这篇我们会提到一个新的概念—。移码也很简单,其实即可。值得注意的是,移码只能表示整数。而原码,反码和补码既可以表示整数又可以表示小数。其次,移码和补码一样,对于真值0只有一种表示形式。因此,对于8bit移码,表示范围为-128~+127。

2023-10-14 21:05:49 2603 1

原创 【发烧期间随笔】第一次游戏开发经历的总结与反思

以上就是关于我第一次游戏开发经历的总结与反思。还有一点,对于我们这种第一次开发游戏的人来说,个人认为这些是很容易遇到的问题,对于成熟的独立游戏开发者,工作室,公司等,它们应该有一套完整的工业流水线和体系,能够完美的避免这些问题,同时由于我们的项目很简单,所以有许多问题可能是没到一定体量是不会遇到的,因此本篇写的也只是冰山一角,想要流畅的做出一款游戏,还是需要很多碰壁和磨练的。

2023-10-13 14:52:14 215

原创 【计算机组成&体系结构】整数的表示和运算 | 原码、反码和补码

决定了计算机能处理多少位的运算以及能存储的位数。例如8位机器字长的计算机只能处理8位的运算,以及通用寄存器只能存储8位。(现代PC的机器字长一般为32位/64位)

2023-10-08 17:07:30 850

原创 【计算机组成&体系结构】HW1:指令系统举例&教学计算机汇编语言程序设计

和执行同样处理功能的程序所占用时间更简短,机器的运行性能可能比机器高2~5倍xx表示执行一个程序所用时间,表示该程序中包含的机器指令总条数,表示执行1个机器指令所需要的机器周期数,表示每个机器周期的时间长度特点—指令格式规范且种类少,寻址方式简单,指令条数少,指令完成的操作功能简单。特点—是拥有大量的指令,这些指令可以执行复杂的高级语言操作,如循环、条件分支等。TEC-XP-II。

2023-09-19 21:14:21 469

原创 【GAMES202】专栏完结感想总结

嗯......一时间确实不知道该说什么,从大二上学期第一次学完GAMES101,现在已经大三开学两周了,很高兴在这个周六把我第二篇专栏完成了把也算是。其实我一直在想最开始写博客是为了什么,很简单,为了当笔记使用,防止学完的东西忘掉,而别人给你讲你很难听懂,但是当你自己弄懂了之后即使忘了,看到自己曾经写下的思考过程也可以想起来,这是我最开始的目的,而现在我想我变了,我变得想帮助更多的人,每次回想起毛星云前辈的故事就久久不能平静,我其实时常也在想,自己真的有资格和能力去写一些东西帮助别人吗?

2023-09-16 18:07:54 307

原创 【GAMES202】A Glimpse of Industrial Solution—实时渲染中常用的工业界技术

Spatiotemporal Variance-Guided Filtering简称SVGF,可以看到Spatiotemporal意为时空的,而非单独时间上的或者单独空间上的。SVGF和我们上篇提到的滤波差不多,但又有一些区别。从上图看1spp/使用SVGF/Ground Truth的对比图可以看出,SVGF的效果还是相当不错的。SVGF通样考虑3个因素来控制滤波,首先是Depth也就是深度,如上图所示。该公式我们可以明显的看到并不是高斯,我们上篇说过滤波核不一定非要用高斯,只要它是一个衰减就可以。

2023-09-16 17:39:42 267

原创 【GAMES202】Real-Time Ray Tracing 2—实时光线追踪2

上一篇我们着重介绍了实时光线追踪的具体思路,我们提到关键点是如何用滤波去进行降噪,所以本篇我们将着重介绍实时光线追踪中所使用到的滤波的细节,包括上篇我们提到的本帧使用的空间上的滤波等等。

2023-09-12 15:44:30 248

原创 【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1

介绍了实时光线追踪的基本思路,以及如何利用temporal进行降噪,temporal的缺点和解决办法

2023-09-10 23:28:52 707 2

原创 【GAMES202】Real-Time Physically-Based Materials (surface models)2—实时基于物理的材质(表面模型)2

主要介绍了LTC方法计算Shading以及迪士尼原则,简单介绍了一下非真实感渲染

2023-09-09 20:22:16 211

原创 【GAMES202】Real-Time Physically-Based Materials (surface models)1—实时基于物理的材质(表面模型)1

这篇和下一篇我们会介绍实时渲染下基于物理的材质,也就是Real-Time Physically-Based Materials,这里有一些歧义,我们通常会把基于物理的材质叫做PBR,而PBR是Physically-Based Rendering的简称也就是基于物理的渲染,那么基于物理的渲染自然包括以及。所以实际上是不准确的,但是通常人们约定俗成的就把基于物理的材质叫做PBR,这里我们也这么规定,以下提到PBR说的就是基于物理的材质,另一种情况我会特别标注出来。

2023-09-06 22:07:02 228

原创 【GAMES202】Real-Time Global Illumination(screen space)2—实时全局光照(屏幕空间)2

主要介绍了两种屏幕空间全局光照的做法,SSDO和SSR

2023-09-03 23:25:18 311

原创 【GAMES202】Real-Time Global Illumination(screen space)1—实时全局光照(屏幕空间)1

简单介绍了实时全局光照的两种做法LPV和VXGI,以及两种屏幕空间实时全局属性的做法,SSAO

2023-09-02 23:43:50 350

原创 【GAMES202】Real-Time Global Illumination(in 3D)—实时全局光照(3D空间)

主要介绍了Glossy的BRDF如何用SH近似,以及小波基函数,最后介绍了一下如何用RSM来实现实时全局光照

2023-08-31 15:09:06 691

原创 【GAMES202】Real-Time Environment Mapping2—实时环境光照2

上篇我们说了给定Environment,如何计算一个着色点的Shading,但没说Shadow。而事实上,实时渲染中很难做到环境光的Shadow。原因也很容易想到,一种观点我们把环境光当成多光源问题,如果这样,我们就要为每一个虚拟光源都生成一张阴影图,那自然不可能实现。其次是采样观点,但显然我们要采样整个半球,也就是说积分线非常长,而且显然环境光不一定是Smooth的,也就是说我们无法把环境光的Visibility从渲染方程里用之前的split sum方法拆分出来。

2023-08-29 11:50:36 280

原创 【GAMES202】Real-Time Environment Mapping1—实时环境光照1

补充了利用有向距离场SDF生成软阴影的方法,同时介绍了预计算环境光着色的计算方法IBL,涉及Prefiltering和Split Sum

2023-08-26 22:45:19 383

原创 2023CCF图形学启明星计划夏令营感想记录

这篇就是纯日记了,想记录一下参加这个夏令营的感想,中间的一些过程,毕竟这对我来说算是一段难忘的经历。

2023-08-25 18:50:25 550 1

原创 【GAMES202】Real-Time Shadows2—实时阴影2

主要介绍了VSSM和MSM

2023-08-21 16:24:27 303

原创 [自学记录06|*百人计划]Gamma矫正与线性工作流

简单介绍了一下Gamma矫正和线性工作流

2023-08-16 22:55:44 433

原创 [自学记录05|百人计划]Early-Z和Z-Prepass

主要介绍了Early-Z和Z-Prepass(封面是在公司实习的时候写的SSR跟文章内容没关系,实在没图了就用这张图了......)

2023-08-02 14:21:18 287

原创 [自学记录04|百人计划]前向渲染和延迟渲染

主要介绍了前向渲染和延迟渲染的优劣势区别,然后简单介绍了一下其他的渲染路径

2023-07-31 10:09:08 434

原创 【GAMES202】Real-Time Shadows1—实时阴影1

主要介绍了阴影图产生的问题:自遮挡,阴影走样,以及解决方法,以及实现软阴影的方法PCSS

2023-07-17 00:43:49 781

原创 【这是一篇记录】准大三学生的记录

其中,我写到了上半年的计划。转眼间五月过去了,上半年也已经结束了,2023年也已经过了一大半,那么我的目标完成的怎么样了呢?开个玩笑。总的来说,完成了,也没完成,咱们从头来看吧~

2023-07-15 20:54:10 199

原创 证明最小化负对数似然函数的学习策略等价于最小化 KL 散度的学习策略

现在,让我们证明最小化负对数似然函数的学习策略等价于最小化 KL 散度的学习策略。因此,我们证明了在大样本极限下,最小化负对数似然函数的学习策略等价于最小化 KL 散度的学习策略。的常数项,因为它仅与真实数据分布有关。使用负对数似然函数和 KL 散度作为度量,我们可以分别定义这两个目标。我们知道无法直接获取真实数据的概率分布。:从真实数据分布中抽取的数据集。我们的目标是找到一组参数。我们注意到第一项是关于。确定的模型的概率分布。并且,在大样本极限下(:真实数据的概率分布。

2023-07-02 16:36:01 403

原创 [计算机网络]期末复习思维导图(仅从物理层到应用层)

因为纯是为了应试过的,所以有很多省略部分。

2023-07-01 16:49:32 129

原创 [自学记录03|百人计划]移动端GPU的TB(D)R架构基础

我们知道桌面端GPU和移动端GPU的功耗性能以及带宽的差距是天差地别的,那么在移动端上如何优化性能就成了一个更值得研究的问题,本文介绍了TBDR架构和传统的IMR也就是立即渲染架构的不同之处以及减少Overdraw的一些方法。

2023-06-04 11:54:16 1023

原创 [自学记录02|百人计划]纹理压缩

1.画质比较2.压缩比DXT16:1DXT2/34:1DXT4/54:1ATI14:1ATI24:1BC66:1BC73:1PVRTC6:1ASTC。

2023-06-03 00:24:52 799

原创 0-1规划在编程问题中的应用(UnityC#脚本/折返约瑟夫/OpenGL机器人摆臂循环)

0-1规划问题在编程问题中的应用

2023-05-10 17:07:40 731 1

原创 [计算机图形学入门]专栏完结感想总结

2023-05-03 22:15:00 846

空空如也

空空如也

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

TA关注的人

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