- 博客(22)
- 收藏
- 关注
原创 图形 3.5 Early-z和Z-prepass
之所以gpu会选择关闭early-z是因为上述那些操作可能会在片元阶段与late-z阶段之间修改深度缓存中的深度值,导致提前的early-z的结果并不正确。还是以上图为例子,若物体1在shader中被手动discard了,物体1不会被渲染,但是其深度还在,Early-Z阶段会认为物体1仍然挡住了后续的物体,导致后续的物体2不能被正确的渲染出来。此外,如果通过CPU将不透明物体从近至远排序,在场景十分复杂的情况下,将会带来额外的性能损耗,且可能导致合批操作无法正常进行。手动修改GPU插值得到的深度;
2025-01-03 17:59:03
1087
原创 图形 3.4 延迟渲染管线介绍
G-Buffer,全称Geometric Buffer ,译作几何缓冲区,它主要用于存储每个像素对应的位置(Position),法线(Normal),漫反射颜色(Diffuse Color)以及其他有用材质参数。这里的问题是,每个光源,即使它们的影响范围在屏幕空间上有重叠,因为每个光源是在不同的绘制中进行,所以会重复读取G-buffer中相同位置的数据,计算后以相加混合方式写入颜色缓冲。例如,物体受n个光源影响,那么在每一个片元执行着色器代码时,都必须把这n个光源都传递进着色器中执行光照计算。
2024-12-22 12:03:39
792
原创 图形 3.3 曲面细分与几何着色器_大规模草渲染
曲面细分阶段(tessellation stages)是利用镶嵌化处理技术对网格中三角形进行细分(subdivide),以此来增加物体表面上的三角形数量。再将这些新的三角形偏移到适当的位置,使网格表现出更加细腻的细节。实现**细节层次(level-of-detail, LOD)**机制;在内存中仅维护**低模(low-poly)**网格,再根据需求为它动态地增添额外的三角形,以此节省内存资源;
2024-12-19 11:55:27
1077
原创 图形 3.1 深度与模板测试
从渲染管线出发在片元着色器之后的逐片元操作;:控制对当前屏幕像素的一个使用权限。例如打开Unity引擎时,会发现场景只会显示到Game视图,是因为在这个测试中,用户只对Game视图那一部分屏幕上的像素有使用权限;:对目标渲染区域再定义需要渲染在哪一部分,默认情况下全部渲染。例如在渲染一张图片时,可以自己定义渲染整张图,还是仅渲染图片的左上角;Alpha Test:设置一个透明度阈值(范围[0, 1]),若当前片元的透明度大于该阈值,则通过测试;若小于该阈值,则剔除当前片元;:模板测试;
2024-11-26 09:55:56
1007
原创 图形 2.8 flowmap的实现
Valve 2010年的GDCFlowmap是Valve在2010年的GDC中介绍的在《求生之路2》和《传送门2》中用到的用来实现水面流动效果的技术。这种方式因为其原理简单、容易实现,且运算量较少,到现在都还在被广泛使用。如下图,他们使用了右边的Flowmap贴图,用它来控制场景中水面的流向。Flowmap本质上就是一张记录了2D向量信息的纹理。现假设有一个2D的平面,在平面上的每一个点都带有一个向量,这个向量指向该点接下来要运动的方向,通过颜色的色值(R、G通道)去记录二维向量的信息。
2024-11-18 14:03:50
1363
原创 图形 2.5 BUMP图改进
一般的切线(t)是和纹理(uv)坐标系一致的切线(也就是上图右边的网格的水平线)。然后这些细节又足够大,让观察者能看出几个像素以上的表面曲率变化,例如人脸上的皱纹、肌肉组织的细节、衣服的褶皱或是砖头之间的缝隙等,都是属于中观尺度的特征。在这种情况下,法线向量(n)的长度也是1,因此它也是一个单位向量。是副切线向量(b)的分量,由于切线向量(t)和副切线向量(b)都是单位向量,它们的分量平方和必须小于或等于 1。实际上法线存储在任意空间坐标系都是可行的,但是在常见的光照计算中,所需要的不仅仅是法线本身。
2024-11-15 10:40:44
781
原创 美术 2.1 DCC工具链与引擎工具链
所谓DCC,就是的缩写,即数字内容创作。DCC的范围包括二维/三维、音频/视频编辑合成、动态/互动内容创作、图像编辑等。
2024-11-13 15:39:32
777
原创 图形 2.7 LDR与HDR
例如蜡烛光的动态范围[10, 15](非真实值)、太阳光的动态范围[100000, 150000](非真实值),将这些动态范围转换到屏幕上可以看到的低动态范围,这个过程就叫做。**并且有效的防止画面过曝,超过亮度值1的色彩也能很好的表现,像素光亮度变得正常,视觉传达更加真实;以LDR来说,LDR范围为[0, 1],对应到不同屏幕上时,由于显示屏的亮度、强度不一致,就需要进行对应的。HDR才有超过1的数值,才有光晕(bloom)的效果,高质量的bloom能体现画面的渲染品质;的范围,这一步骤由各自厂家完成。
2024-11-13 14:02:00
1525
原创 图形 2.6 伽马校正
所有需要人眼参与被创作出来的纹理,都应是sRGB(如美术画出来的图)。所有通过计算机计算出来的纹理(如噪声,Mask,Light Map)都应是Linear。
2024-11-12 15:50:20
1497
原创 美术 1.1.4 场景设计精要
这种场景在感觉狭窄和狭窄的过程中起作用,迫使我们向下通过,这也是在两个区域之间建立联系的极好方法,为即将到来的事物造成悬念。动态性的环形,让人感觉不太稳定,会稍微自然一些,它们像隧道一样的外观通常擅长创造独特的道路感觉和行进距离,以及将焦点吸引到场景的中间。尽管内容一样,但从构图上来说,以下的两张图是不一样的,同样的元素内容,不一样的打光氛围和情绪,表达的意思是不一样的。黑,白,灰,是中性色)确定初步剪影后,接下来要对剪影进行内切,把剪影内部的初步结构通过内切,整理清晰,挑出线稿的框架去练习。
2024-11-12 10:12:04
1317
原创 美术 1.1.3 角色设计概要
是由分析用户需求到生成概念产品一系列有序的、可组织的、有目的的设计活动它表现为一个由粗到精、由模糊到清晰、由具体到抽象的不断深化的过程。,所以感受的改变也就很明显朝着基础形象的方向去靠近,就是说角色在三角图上的坐标也就会往这一个基础图形轴的方向靠近,设计平衡是由10%的疯狂和90%的日常经验、有基础的设计、真实世界的参考等组成。上图是“二郎神”角色设计的迭代过程,该角色的关键词是“通天神目”。上图有四个角色,它们唯一的区别就是其身上点的位置、数量不同。角色的灵魂,角色的所有组成部分都服务于这些关键词。
2024-11-11 13:44:48
1360
原创 图形 2.4 传统经验光照模型详解
当光线从光源照射到模型表面时,光线均匀地被反射到各个方向,这种现象就是漫反射。在漫反射的过程中,光线发生了吸收和散射,而因此改变颜色和方向。当光线到达物体表面并发生了反射,观察视线在反射光线的附近时,便能够观察到了高光反射。高光反射描述了光线与物体表面发生的反射(光强不变,方向改变)高光反射的反射率是根据一种菲涅尔效应的物理现象决定。通常使用对应的高光贴图描述物体表面的反射率,并且使用光泽度(粗糙度、反光度)描述高光范围的大小。
2024-11-07 18:25:30
1074
原创 图形 2.3 常用函数介绍
在光栅化的时刻,GPUs会在同一时刻并行运行很多Fragment Shader,但是并不是一个pixel一个pixel去执行的,而是将其组织在2x2的一组pixels分块中,去并行执行。而偏导数就正好是计算的这一块像素中的变化率。GPU在片元处理(PixelShader)阶段是在屏幕空间XY坐标系中对每一个像素去对应的纹理中查找对应的纹素来确定像素的颜色。三维纹理:3D纹理资源(又称体积纹理)、三维数组,类似MipMap。其中的x,y代表的是屏幕坐标。二维纹理:一张图片、二维数组。ddx是右减左的差值。
2024-11-06 16:04:41
917
2
原创 图形 2.2 模型与材质基础
首先,没有真正的光滑面,所有面都是三角形。光滑组的定义就是根据面与面之间的关系,通过各种方式使得该两面在视觉上达到平滑的效果。光滑组:通过处理面之间的光照信息来达到光滑效果,是用来设置边缘线的光滑显示的。网格平滑和涡轮平滑:通过增加面,把面分的更细腻来表达曲度。
2024-11-06 16:01:11
773
原创 图形 1.3 纹理
B站视频:https://www.bilibili.com/video/BV1sA411N7z3建议结合Games101的Lecture 09进行学习https://www.bilibili.com/video/BV1X7411F744
2024-11-06 15:38:25
1235
原创 图形 1.2.2 矩阵
矩阵文章目录矩阵线性方程线性空间非线性空间矩阵的历史矩阵的定义特殊矩阵方阵单位矩阵零矩阵矩阵的加减法同型矩阵加法减法矩阵的数乘矩阵的乘法几何意义复合变换运算规律常见的矩阵旋转矩阵推导位移矩阵三维空间的坐标变换矩阵的转置性质逆矩阵运算规律线性方程可加性:f(x1+x2)=f(x1)+f(x2)2x+3y=1(线性方程)f(x_1 + x_2) = f(x_1) + f(x_2)\\2x + 3y = 1(线性方程) f(x1+x2)=f(x1)+f(x2)2x+3y=1(线性方程)比
2024-11-06 15:17:34
1050
原创 图形 1.2.1 向量
向量是只有大小和方向的有向线段,没有方向,即无论在坐标系的哪一个位置,只要方向和大小相等,可认为是同一向量。向量描述的位移能被认为是与轴平行的位移序列。例如:从(0, 0)指向(1, 2)的向量,可看成沿着x轴位移1个单位、沿y轴位移2个单位的位移序列。
2024-11-06 14:45:54
993
原创 图形 1.1 渲染流水线
得到被三角形覆盖的所有像素后,会使用三角形的三个顶点,对每一个被覆盖的像素进行线性差值,得到当前三角形在像素对应片元的数据。② 在D3D中,如果x、y超过[-1, 1]的范围,z超过[0, 1]范围,就会被裁剪。进行一些系列测试:透明度测试、模板测试、深度测试,只有通过这些测试的片元才能留下。进行一些系列测试:透明度测试、模板测试、深度测试,只有通过这些测试的片元才能留下。(img-Qhb3bY2A-1730873973894)]① 在OpenGL中,如果x、y、z超过[-1, 1]的范围,就会被裁剪;
2024-11-06 14:22:21
779
原创 Unity Shader Tag注意事项
着色器的tag内容,如RenderType和Queue,一定要写在SubShader下面,否则在材质中对应的队列只会取默认的2000; 着色器的tag内容,如LightMode,若在SubShader下定义了LightMode,则该SubShader在渲染时会优先去选择带有相同LightMode的Pass,其次选择无设置LightMode的Pass,其余的不选择; (后续工作再补充)...
2022-03-31 16:45:44
3835
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅