自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MonoBehaviour 和MonoBehaviour

Unity3D 中可以给每个游戏对象添加脚本,这些脚本必须继承 MonoBehaviour,用户可以根据需要重写 MonoBehaviour 的部分生命周期函数,这些生命周期函数由系统自动调用,且调用顺序与书写顺序无关。MonoBehaviour 的继承关系:MonoBehaviour→Behaviour→Component→Object.OnValidate: 确认事件,脚本被加载、启用、禁用、Inspector 面板值被修改时,都会执行一次。

2023-07-15 10:28:29 289

原创 C#基础笔记

/ 定义一个常量 double r;Console . WriteLine("本程序可以计算圆的面积,请输入一个数字作为圆的半径: ");Console . WriteLine("半径为: {0}, 圆的面积为: {1}" , r , areaCircle);} } }class(类),是面向对象中的概念,是面向对象编程的基础。类是对现实生活中一类具有共同特征的事务的抽象,用来清晰管理你的行为。// 字段 public int Age {get;set;

2023-07-04 16:41:32 988

原创 【TA100】4.2 SSAO算法 屏幕空间环境光遮蔽

全称Ambient Occlusion,是计算机图形学中一种着色和渲染技术,模拟光线达到物体的能力的粗略的全局方法,描述光线到达物体表面的能力。这个场景看起来没有表示颜色的贴图,但是场景的阴影效果和AO效果还是存在的,这让场景的层次细节在即使没有颜色的情况下也可以展现出来,形成了一种特殊的风格。np代表样本位置p的法线,w表示点p切平面正方向的任意向量,V(p,w)是可见函数,如果点p在w方向被遮挡则为1,否则为0.max(np*w,0)就是两个向量的余弦值。

2023-06-27 17:30:35 790 1

原创 【TA100】Bloom算法

● Bloom,也称辉光,是一种常见的屏幕效果● 模拟摄像机的一种图像效果,让画面中较亮的区域“扩散”到周围的区域中,造成一种朦胧的效果● 可以让物体具有真实的明亮效果● 可以实现光晕效果。

2023-06-26 22:28:45 476

原创 【TA100】

Command buffer: 用来。Command buffer保存着渲染命令列表,如(set render target,draw mesh等等),可以。

2023-06-25 11:32:09 62

原创 【TA100】3.6 纹理压缩

○ 为了解决内存、带宽问题,专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术。

2023-06-20 16:52:50 361

原创 【TA100】图形 3.5 Early-z和Z-prepass

● 适用情况:○ Early-Z适用于OverDraw很高的情况● 会失效的情况:○ ①开启Alpha Test 或 clip/discard等手动丢弃片元操作○ ②手动修改GPU插值得到的深度○ ③开启Alpha Blend○ ④关闭深度测试● 如何生效?○ Early-Z属于硬件优化,如果硬件支持会自动开启。

2023-06-19 14:49:51 276

原创 【TA100 】3.3 曲面细分与几何着色器---大规模草渲染

曲面细分着色器。

2023-06-15 14:57:01 647 1

原创 【TA100】3.4 前向/延迟渲染管线介绍

● 主要用来解决大量光照渲染的方案● 延迟渲染的实质是:○ 先不要做迭代三角形做光照计算,而是先找出来你能看到的所有像素,再去迭代光照。○ 直接迭代三角形的话,由于大量三角形是看不到的,会造成极大的浪费。

2023-06-15 14:41:43 714

原创 【TA 100】3.1 模板测试和深度测试

● 下图为从片元着色器到FrameBuffer的流程(逐片元操作)逐片元操作流程:● 可以看到逐片元的流程依次为○ 像素所有权测试→裁剪测试→透明度测试→模板测试→深度测试→透明度混合■ 简单来说就是控制当前屏幕像素的使用权限■ e.g.:游戏引擎仅渲染游戏窗口○ ScissorTest(裁剪测试):■ 在渲染窗口再定义要渲染哪一部分■ 和裁剪空间一起理解,也就是只渲染能看到的部分■ e.g.只渲染窗口的左下角部分○ AlphaTest(透明度测试)

2023-06-12 15:56:30 776

原创 【TA100 】 LDR与HDR

● Dynamic Range(动态范围)=最高亮度/最低亮度● ToneMapping:将超高的动态范围(HDR)转换到我们日常显示的屏幕上的低动态范围(LDR)的过程● 一些小芝士:○ 因为不同的厂家生产的屏幕亮度(物理)实际上是不统一的,那么我们在说LDR时,它是一个0到1范围的值,对应到不同的屏幕上就是匹配当前屏幕的最低亮度(0)和最高亮度(1)○ 自然界中的亮度差异是非常大的。例如,蜡烛的光强度大约为15,而太阳光的强度大约为10w。

2023-06-08 17:21:48 951

原创 【TA100】图形 2.6伽马(Gamma)校正

● 一些颜色空间的举例,(具体参考2.1节内容)● 图中可以看到,sRGB和Rec.709的色域是差不多的,三原色的位置是相同的,那么它们之间的区别就是:传递函数不同。

2023-06-08 15:36:06 1753

原创 【TA100】图形 2.4 传统经验光照模型详解

● 一种模拟自然光照过程的计算机模型● 本次课程可以这样理解:光线与物体表面的作用● 分类○ 基于物理的光照模型(PBR)(有可依据的公式)○ 经验模型(进行了一些近似、模拟,所以会不准)光照模型发展历史。

2023-06-07 16:13:44 798

原创 【TA 100】2.3 HLSL常用函数介绍

○ 返回较大的○ 返回较小的○ 两向量相乘,常用于矩阵运算● abs(a)○ 返回a的绝对值● round(x)○ 返回与x最近的整数● sqrt(x)○ 返回x的平方根● rsqrt(x)○ 返回x的平方根的倒数○ 将弧度转化为角度○ 将角度转化为弧度○ 噪声函数○ 将uv的坐标作为x传入,随机的返回一个[0,1]的值,就会得到一张噪声图。

2023-06-07 11:28:09 702

原创 【TA100】图形 2.2 模型与材质基础

1.可编程渲染管线● 蓝色背景的:可编程管线● 顶点着色器:模型的顶点进行计算● 片元着色器:将光栅化阶段插值的信息进行计算。

2023-06-06 14:36:26 359

原创 【TA100 】图形 2.1 色彩空间介绍

定义一个色彩空间至少满足三项重要指标①色域三基色的坐标(可以形成三角形)②Gamma(向着白点对三角形内部进行了几次切分)方便计算。● 详解:○ GAMMA并不是色彩空间,而是定义如何对色彩进行采样的一种方式○ GAMMA = 1,指均匀切分(线性)○ GAMMA ≠ 1,就是非均匀切分○ 人眼对暗部的观察比较多,对亮部观察比较少(人眼对暗部更敏感)○ 早期计算机的硬件问题○ //涉及到的知识点,具体可以参考GAMMA校正那一节课③白点色域三角形的中间点,白->最亮的点。

2023-06-06 13:55:55 384

原创 Unity中影响性能的因素

原文链接:https://blog.csdn.net/Mq110m/article/details/130435557。

2023-06-02 17:10:37 627

原创 【TA 100】Flow Map实现水体流动效果

1 什么是Flow map?flowmap的实质:一张记录了2D向量信息的纹理Flow map上的颜色(通常为RG通道) 记录该处向量场的方向,让模型上某一点表现出定量流动的特征。通过在shader中偏移uv再对纹理进行采样,来模拟流动效果2 纹理映射,左边是UV坐标值,右边是采样结果UV使用flow map偏移出现不同效果为什么要使用flowmap?类似UV动画,而非顶点动画。换言之,无需对模型顶点进行操作,易实现运算开销小。不仅仅是水面,任何和流动相关的效果都可以采用flowmap.

2023-06-02 16:36:00 910

原创 法线贴图的类型

这是当今最常见的法线贴图,也是我们在本系列中讨论的法线贴图。它根据模型顶点的法线方向修改模型的法线方向(因此我们必须控制lowpoly的顶点法线)。请记住,切线法线贴图是使用顶点指示的方向进行计算的。这意味着视觉上;如果在烘焙时旋转UV岛,法线贴图可能看起来是反转的;然而,它应该是完美的。并非每个程序都以相同的方式来计算顶点法线的平均值。这可能会导致法线贴图在不同引擎中的外观不同,因此我们应该使用渲染程序将使用的相同方法烘焙法线贴图(这称为“使用同步工作流”)。

2023-05-29 11:34:04 788

原创 Unity内置渲染管线、SRP、URP、HDRP的关系

— 高清管线流程( 消耗资源和money多 ),专注于高端图形渲染,针对高端硬件配置,像PC、XBox 和Playstation,其面向高逼真度的游戏、图形demo和建筑渲染、超写实效果,以及所需的最佳图形效果。—— 通用渲染管线(以前称为轻量级渲染管线),unity提供的渲染管线,专注于性能,支持Unity面向的所有平台。—— 内置渲染管线是Unity默认的渲染管线,兼容Unity面向的所有平台,但渲染次序是固定的,效果不突出。,从而根据目标平台在粒度级别上定义和调整渲染过程,为。

2023-05-11 23:18:18 600

原创 【TA100】6 PC手机图形API介绍

即我们自己的程序端,相对于opengl es,我们属于应用端:要渲染的几何物体,或者形状。比如要渲染一个正方形的图片,就是一个图元,要渲染两)直线,这两条直线也是图元:通俗点,可以理解为一张图片,在opengles中纹理就是图片的另外一种叫法纹素:纹理的基础单元,也就是像素.:顶点指的是组成图元的各个顶点的坐标数据(在3D笛卡尔坐标中即x,y,z坐标),这些坐标数可以一起存到一个内存数组中,这个数组就叫做顶点数组.: 在显存中专门分配一块显存来存储这个顶点数组,这.个显存就称为顶点缓冲区。

2023-05-11 11:16:53 423

原创 【TA100】5 纹理的秘密

纹理投影 展开UV到UV坐标系模型坐标> uv坐标 > 乘分辨率(256 256) > 颜色采样。

2023-05-11 00:09:48 520

原创 光栅化过程 (顶点片元着色)

5 三角形只要定义顶点的属性就可以计算三角形内部点的渐变关系(三角形的内部插值)。3 计算两个像素之间线性方程,带入bresenham算法得到两像素之间像素格。划线插值填充颜色,y代表高度,x1,x2代表画的线段。线性扫描算法,读取x下坐标,读取y下坐标。3 空间内任何三个点的连线一定是平面;2 任何多边形都可以拆分成三角形;4 三角形有清晰的内部和外部定义;2 在屏幕坐标绘制三个不同颜色的点。4 根据像素位置按照比例插值颜色。1 三角形是最基本的多边形;

2023-05-10 15:21:30 540

原创 【TA100】4 MVP矩阵变换

将模型空间坐标变换到世界空间坐标步骤:缩放 > 旋转 >平移 因为矩阵的计算不满足交换律不能更改顺序从右往左依次为:缩放,旋转,平移 矩阵。

2023-05-10 14:41:42 67

原创 【TA100】3 矩阵运算

矩阵a与向量x相乘得到向量在houdini中矩阵的点在houdini中矩阵的点。

2023-05-10 13:27:41 72

原创 【TA100】向量基础

1 向量定义2 计算

2023-05-08 23:47:31 50

原创 【TA100】渲染管线

粗粒度剔除:根据物体之间的遮挡关系,剔除遮挡的物体。多顶点分配到GPU不同单元执行,提升速度。

2023-05-08 23:19:15 459

原创 模型展UV的原则和快速展UV软件Rizom

为了改进Unfold3D与工作室管道或内部工作流程的集成,可以通过脚本文件监视功能,自定义Lua脚本,Unfold3D直观、快速、可扩展,它用最小的行动给予高质量UV,许多3A级游戏工作室和自由职业者目前正在使用Unfold3D 让工作更加有效率。RizomUV凭借其爆破性快速UV展开功能而闻名,这个新名称也标志着一个新版本,包括一个大修的界面,查看和编辑纹理密度的功能,根据模型的属性进行选择的能力,几种自动模式,找到接缝展开和包装,高级包装算法,UDIM支持等等。(1)贴图不能拉伸,尽量保持横平竖直。

2023-05-06 15:43:40 1009

原创 次世代烘焙 法线贴图 相关知识

一般将低模 + 高模的法线贴图实现大量细节模型画面的游戏称为次时代游戏。

2023-05-06 15:30:01 195

原创 PBR流程常用的几种贴图类型

基于物理的渲染(PBR)是一种着色和渲染的方式,能更精准的体现光线和介质表面的交互方式。因此称作基于物理的渲染(PBR)或者基于物理的着色(PBS)。从正在讨论的工作流程角度而言,PBS通常针对着色概念,PBR针对渲染和光线的概念。但是,PBS和PBR都是从物理上精确的角度描述呈现物体的过程。基于物理纹理的渲染(PBR)是一种方法而不是硬标准,有具体的基本准则和使用指南,但没有真正具体的规则。也就是PBR的使用方法多种多样,使用的贴图类型和工作流程也不一样。通常使用GCX BRDF,但是术语也会有变化。

2023-05-06 13:27:43 2138

原创 Unity Shader学习记录(19) ——屏幕后处理效果

屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行系列操作,实现各种屏幕特效。使用这种技术,可以为游戏画面添加更多的艺术效果,例如景深(DepthofField)、运动模糊(Motion Blur)等。

2023-04-25 20:37:42 865

原创 Unity Shader学习记录(18) —— Shader动画

纹理动画在游戏中的应用非常广泛。尤其在各种资源都比较局限的移动平台上,我们往往会使用纹理动画来代替复杂的粒子系统等模拟各种动画效果。

2023-04-20 14:04:28 397

原创 Unity Shader学习记录(17) —— 高级纹理

在图形学中,立方体纹理(Cubemap)是(Environment Mapping)的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层一样反射出周围的环境。和之前见到的纹理不同,立方体纹理一共包含了 6 张图像,这些图像对应了一个立方体的个面,立方体纹理的名称也由此而来。立方体的每个面表示沿着世界空间下的轴向(上、下、左右、前、后)观察所得的图像。使用立方体纹理的好处在于,它的实现简单快速,而且得到的效果也比较好。但它也有一些缺点,

2023-04-17 17:28:49 173

原创 Unity Shader学习记录(16) —— Unity的阴影计算和标准光照模型

在前面的例子中,我们使用内置的VertexLit 中提供的ShadowCaster 来投射阴影。Unity Shader 的前向染路径中计算光照衰减-在Base Pass 中,平行光的衰减因子总是等于 1,而在Additional Pass 中,我们需要判断该 Pass处里的光源类型,再使用内置变量和宏计算衰减因子。的 Pass,如果没有,它就会在 Fallback 指定的 Unity Shader 中继续寻找,如果仍然没有找到,该物体就无法向其他物体投射阴影(但它仍然可以接收来自其他物体的阴影)。

2023-04-11 20:41:43 816

原创 Unity Shader学习记录(16) —— Unity的光照衰减

需要注意的是,如果我们对该光源使用了 cookie,那么衰减查找纹理是 LightTextureB,但这里不讨论这种情况。我们通常只关心 LightTexture0对角线上的纹理颜色值这些值表明了在光源空间中不同位置的点的衰减值。例如,(0,0)点表明了与光源位置重合的点的衰减值,而(1,1)点表明了在光源空间中所关心的距离最远的点的衰减。但使用纹理查找来计算衰减也有一些弊端。Unity开放的参数较少,所以使用时结果往往不如逾期,计算距离后根据顶点与光源距离计算衰减,不包含光源开合角度等信息。

2023-04-10 20:59:34 207

原创 Unity Shader学习记录(15) —— Unity的光源类型

点光源是有位置属性的,它是由点光源的 Transform组件中的 Position 属性定义的。它的几何属性只有方向,我们可以调整平行光的 Transform组件中的 Rotation 属性来改变它的光源方向,而且平行光到场景中所有点的方向都是一样的,这也是平行光名字的由来。2 AdditionPass用来计算在基础光照之外叠加的其他光源光照,#pragma multi_compile_fwdadd 定义后,判断光源的类型,平行光依然按照上述方法计算,根据不同的光源类型做不同的计算,光源的方向和衰减。

2023-04-10 20:42:25 477

原创 Unity Shader学习记录(14) —— Unity的光照渲染路径,(前向,顶点,延迟)

在前面的学习中,我们的场景中都仅有一个光源且光源类型是平行光(如果你的场景不是这样的话,可能会得到错误的结果)。但在实际的游戏开发过程中,我们往往需要处理数目更多、类型更复杂的光源。更重要的是,我们想要得到阴影。在本章我们就会学习如何在 Unity 中实现上面的功能。在学习这些之前,我们有必要知道 Unity 到底是如何处理这些光源的。也就是说,当我们在场景里放置了各种类型的光源后,Unity 的底层染引擎是如何让我们在 Shader 中访问到它们的因此9.1节首先介绍了Unity 的染路径。

2023-04-10 19:19:18 360

原创 Unity Shader学习记录(13) —— 透明度混合的实现和 & 混合命令 & 双面渲染

透明度混合的实现要比透明度测试复杂一些,这是因为我们在处理透明度测试时,实际上跟对待普通的不透明物体几乎是一样的,只是在片元着色器中增加了对透明度判断并裁剪片元的代码。而想要实现透明度混合就没有这么简单了。透明度混合:这种方法可以得到真正的半透明效果。它会使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲中的颜色值进行混合,得到新的颜色。但是,透明度混合需要关闭深度写入,这使得我们要非常小心物体的渲染顺序。

2023-03-31 17:40:47 851 3

原创 Unity Shader学习记录(12) —— 透明度测试实现

透明度测试得到的透明效果很“极端”一-要么完全透明,要么完全不透明,它的效果往往像在一个不透明物体上挖了一个空洞。而且,得到的透明效果在边缘处往往参差不齐,有锯齿,这是因为在边界处纹理的透明度的变化精度问题。函数: void clip(float4 x): void clip(float3 x): void clip(float2 x): void clip(float1 x);被舍弃的片元将不会再进行任何处理,也不会对颜色缓冲产生任何影响:否则,就会按照普通的不透明物体的处理方式来处理它。

2023-03-28 17:27:50 100

原创 Unity Shader学习记录(10) ——遮罩纹理的实现

遮罩纹理(mask texture)在很多商业游戏中都可以见到它的身影。遮罩允许我们可以保护某些区域,使它们免于某些修改。例如,在之前的实现中,我们都是把高光反射应用到模型表面的所有地方,即所有的像素都使用同样大小的高光强度和高光指数。但有时,我们希望模型表面某些区域的反光强烈一些,而某些区域弱一些。为了得到更加细腻的效果,我们就可以使用一张遮罩纹理来控制光照。另一种常见的应用是在制作地形材质时需要混合多张图片,例如表现草地的纹理、表现石子的纹理、表现裸露土地的纹理等,使用遮置纹理可以控制如何混合这些纹理。

2023-03-28 14:31:44 389

空空如也

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

TA关注的人

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