![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shader
cg代码
WCNB
gameNB
展开
-
Unity-RenderPath和LightMode
简述Unity supports different Rendering Paths. You should choose which one you use depending on your game content and target platform / hardware. Different rendering paths have different performance c...转载 2020-04-15 11:06:18 · 352 阅读 · 0 评论 -
图形渲染管线
什么是渲染流水线在概念上可分为三个阶段:1.应用阶段;2.几何阶段;3.光栅化应用阶段:(开发者主导)场景数据,摄像机、模型、光源等,做一些粗粒度的剔除优化,设置每个物体的渲染状态,但最重要的输出渲染所需的几何信息(点、线、三角面等)即渲染图元,传递到下一阶段几何阶段。渲染起点是CPU,应用阶段可分为三个阶段: 数据加载到显存,渲染的所有数据加载到内存,再把网格、纹理等数据加...原创 2020-04-12 11:37:32 · 178 阅读 · 0 评论 -
unity-基于物理的渲染
Lambert、Phong、Blinn-Phong光照模型都是经验模型,基于物理的渲染技术(Physically Based Shading,PBS)对光和材质之间的行为进行更加真实的建模。反射探针(Reflection Probes):在场景中的特定位置上对整个场景的环境反射进行采样,并把采样结果存储在每个探针上。当物体经这些探针时,将反射结果传递给物体使用的反射纹理,若存在多个探针...原创 2020-04-10 11:43:29 · 325 阅读 · 0 评论 -
shader-表面着色器
表面着色器、光照模型、光照着色器:表面着色器定义了模型表面的反射率、法线和高光等,光照模型则选择使用半兰伯特还是blinn-phong等模型,而光照着色器负责计算光照衰减、阴影等。是顶点和片元着色器之上的一层抽象。顶点/片元着色器需要包含在特定的pass中,而表面着色器的CG直接写在SubShader块中,unity背后会为我们生成多个pass。表面着色器重要部分两个结构体、以及编译指令。P...原创 2020-04-10 10:35:46 · 194 阅读 · 0 评论 -
shader-优化
和PC平台相比,移动平台上有GPU架构有很大的不同。资源处理等条件的限制,移动设备上的GPU架构专注于尽可能使用更小的带宽和功能。尽可能移除那些隐藏的表面,减少overdraw(即一个像素被绘制多次),PowerVR芯片(移动设备)使用基于瓦片的延迟渲染(tiled-based Deferred Rendering,TBDR)架构,把所有渲染图像装入一个个瓦片中,再由硬件找到可见的片元,而只有这些...原创 2020-04-09 10:39:21 · 573 阅读 · 0 评论 -
shader-噪声
消融原理:噪声纹理+透明度测试,使用对噪声纹理采样的结果和某个控制消融程度的阈值比较,小于,clipe函数把对应的像素裁剪掉。Properties { _BurnAmount ("Burn Amount", Range(0.0, 1.0)) = 0.0 _LineWidth("Burn Line Width", Range(0.0, 0.2)) = 0.1 _MainTex ...原创 2020-04-08 10:52:01 · 314 阅读 · 0 评论 -
shader-非真是渲染NPR
卡通风格渲染卡通风格渲染共同特点--物体描边、分明的明暗变化,实现方式:基于色调的着色技术,高光部分往往是一块块分界明显的纯色区域。渲染轮廓线基于观察角度和表面法线的轮廓渲染,使用视角方向和表面法线的点乘结果来得到轮廓线信息。效果差 过程式几何渲染。一个pass渲染背面的面片,是轮廓可见,第二个pass再正常渲染正面的面片,快速有效,适用于绝大多数表面平滑的模型,但不适用于平整的模型...原创 2020-04-08 09:58:14 · 304 阅读 · 1 评论 -
shader-使用深度和法线处理
直接使用颜色信息会使检测到的边缘信息受物体纹理和光照等外部因素的影响,得到很多我们不需要的边缘点,更好的方法在深度纹理和法线上进行边缘检测,这样不会受光照和纹理的影响,仅仅保存了当前渲染物体的模型信息。深度纹理存储的像素值不是颜色值,是高精度的深度值,由于在一张纹理中,深度值范围在[0,1],而且通常为非线性分布。深度值来自顶点变换后得到的归一化的设备坐标标(normalize device ...原创 2020-04-07 11:33:26 · 511 阅读 · 0 评论 -
shader-屏幕后处理
屏幕后处理在渲染完整个场景得到屏幕图像后,再对这个图像进行处理,实现各种特效。在渲染后的屏幕图像,即抓屏,OnRenderImage函数接口可以对该图像进行操作返回最终的图像,利用Graphics.Blit()函数处理图片。默认情况下,OnRenderImage在透明和不透明的pass执行完后被调用。大致的流程:向摄像机添加脚本--》实现OnRenderImage函数--》调用Graphics...原创 2020-04-06 09:26:20 · 271 阅读 · 0 评论 -
shader grapth-- master节点
PBR连接点名称 类型 特殊说明 描述 Position Vector 3 无 默认情况下,此节点的输入是对象空间位置。此栏位应该输入给定顶点的绝对本地位置。某些节点(例如程序形状Procedural Shapes)在顶点着色器中不可行。此类节点与此栏位不兼容。 Albedo Vector 3 无 材质的albedo值,范围是0-1...原创 2020-04-05 20:14:16 · 223 阅读 · 0 评论 -
shader-颜色的计算
1. 加这里要讲讲三原色和三基色:三原色一般指的是红、绿、蓝三种,简称 RGB,这是加色系。就是光源只含有特定的波段,本身就是色光,将不同颜色的光加在一起形成新的颜色。典型的例子是显示屏,关系如下:显然,shader 中颜色的加法运算符合加色系规律。当我们把颜色相加时,会形成新的颜色,并且颜色会往白色靠拢。颜色的混合规律符合三原色规律。2.乘讲完三原色,再讲讲三基色...转载 2020-04-05 19:39:14 · 1336 阅读 · 0 评论 -
shader-高级纹理
立方体纹理立方体纹理是环境映射的实现方式。可以模拟物体周围的环境,使用了环境映射的物体反射周围的环境,一共包含6张(对应空间的上、下、左、右、前、后)图像。天空盒是游戏中模拟背景的一种方法。包含两个信息:模拟天空,且为一个盒子。天空盒是所有不透明物体之后渲染的,其背后使用的网格是一个立方体或一个细分后的球体。创建用于环境映射的立方体纹理的方法有三种:1.特殊布局的纹理创建;2....原创 2020-04-04 10:25:40 · 206 阅读 · 0 评论 -
shader-光照
unity渲染路径渲染路径(Rendering Path)决定光照如何应用到shader中 ----> 在Pass中指明使用的渲染路径。通过设置Pass的 LightMode标签实现;向前渲染路径没进行一次完整的前向渲染,我们需要渲染该对象的渲染图元,并计算两个缓冲区的信息:一个颜色缓冲区,一个深度缓冲区。利用深度缓冲来决定一个片元是否可见,如果可见就更新颜色缓冲区的...原创 2020-04-03 08:57:05 · 383 阅读 · 0 评论 -
shader-纹理处理-mipmap
什么是mipmap三维计算图形的贴图渲染中常用的技术,为了加快渲染速度和减少图像锯齿,图像被处理成由一列被预先计算和优化过的图片组成的文件,但是同时会占用较多的空间,空间换速度。(unity中大概多占33%的内存)。每一个层级的小图都是主图按一定比列缩小细节的复制图。当图片被缩小或远离摄像机时,会切换早适合的mipmap层级。mipmap图片是经过缩小后的图片,读取的像素值远小于原图片,同时已...原创 2020-03-31 14:25:20 · 557 阅读 · 0 评论 -
shader-透明效果
透明 在实时渲染中要实现透明效果,通常在渲染模型时控制它的透明通道(Alpha Channel)。开启透明混合时,当一个物体被渲染到屏幕后时,每个片元除了颜色值和深度值之外,还有另一个属性透明度。透明度为1,完全不透明,为0,完全透明,像素完全不会显示。在unity中实现方法:1.透明度测试(Alpha Test),但是无法实现真正的半透明效果;2.透明度混合(Alpha Blendi...原创 2020-03-29 11:27:20 · 461 阅读 · 0 评论 -
shader-基础纹理
通过图片控制模型外观,使用纹理映射(texture mapping)。通过纹理展开技术把纹理映射(texture mapping coordinates)坐标存储到每个顶点上。纹理映射坐标定义了该顶点在纹理中对应的2D坐标。UV(u,v),u表示横坐标,v表示纵坐标。OpenGL的原点左下角,DirectX的原点在左上角。属性: 功能: Texture Type 使用此属性...原创 2020-03-22 09:57:40 · 405 阅读 · 0 评论 -
渲染和视觉物理现象
a原创 2020-03-14 12:07:23 · 185 阅读 · 0 评论 -
shader-函数
1、uint CreateShader(enum type) : 创建空的shader object;type: VERTEX_SHADER,2、void ShaderSource(uint shader, sizeicount, const **string, const int *length):加载shader源码进shader object;可能多个字符串3、void C...转载 2020-03-12 21:55:17 · 908 阅读 · 1 评论 -
shader-空间的转换
模型空间---》世界空间---》观察空间---》裁剪空间---》屏幕空间矩阵变换:CG语言使用的是行优先的方法。unity脚本中Matrix使用的是列优先方法;WPOS cg中对屏幕坐标的定义;VPOS是HLSL中对屏幕坐标的语义。// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityO...原创 2020-03-11 22:38:57 · 173 阅读 · 0 评论 -
shader-语法基础
standard surface shader: 标准光照模型的表面着色器;unlit shader:不含光照(但含雾效)的基本顶点/片元着色器;image effect shader:实现屏幕后处理效果的一个模板;compute shader:利用GPU的并行性进行一些与常规渲染流水线无关的计算。shaderLab 渲染状态设置指令:Cull: Cull Back|F...原创 2020-03-09 22:33:40 · 689 阅读 · 0 评论 -
Shader Graph 节点
Shader Graph 节点 官方文档:shader graph Fresnel Effect :菲涅尔效应;视线垂直于表面时,反射较弱,而当视线非垂直表面时,夹角越小,反射越明显。如果你看向一个圆球,那圆球中心的反射较弱,靠近边缘较强。不过这种过度关系被折射率影响。防护罩、外发光等power: 系数强度。 Tiling and offset:控制uv...原创 2020-02-01 14:30:23 · 2054 阅读 · 0 评论