Shader
此处有码
这个作者很懒,什么都没留下…
展开
-
光照烘培系统-1
光照贴图(Lightmap)将静态物体所受光影效果,提前计算渲染到一张贴图中,引擎运行时,取贴图计算物体所受光影效果,在保障画面的同时,减少实时光影计算,提高渲染效率,采用的是全局光照技术。Global Illumination 全局光照(GI)全局光照 = 直接光照(Direct Light) + 间接光照(Indirect Light)直接光照 = 光源发出的光线照射到物体上...原创 2020-02-01 21:35:00 · 716 阅读 · 0 评论 -
Chapter15_使用噪声
消融(dissolve)效果:原理:噪声纹理+透明度测试1.使用噪声纹理的采样结果和某个阈值比较,小于阈值,使用clip函数把它对应的像素裁剪掉,这对应了图中的烧毁区域。 2.烧焦效果则是将两种颜色混合,再用pow函数处理后,与原纹理颜色混合后的结果。// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld...原创 2019-06-20 23:10:29 · 176 阅读 · 0 评论 -
Chapter14_非真实感渲染
非真实感渲染(Non Photorealistic Rendering,NPR),用于卡通,水彩风格渲染。卡通风格渲染(黑色描边,分明的明暗变化)基于色调的着色技术(tone-based shading),使用蓝色来模拟冷色调,使用黄色来模拟黄色调,来实现从冷到暖的色调变化,为了更加真实的模拟,还可以模型本身的漫反射颜色进行混合来得到最终的冷暖色调。实现中一般使用漫反射系数对一张一维纹...原创 2019-06-10 00:17:08 · 333 阅读 · 0 评论 -
Chapter13_使用深度和法线纹理
深度纹理深度纹理实际就是一张渲染纹理,只不过它里边存储的是像素值不是颜色值,而是一个高精度的深度值。顶点坐标转化到NDC(归一化的设备坐标)下的坐标的z分量就是顶点的深度值。NDC中,z分量范围在[-1,1],为了让z分量可以存到一张纹理中,需要使用公式将z分量映射: ...原创 2019-05-29 09:36:32 · 313 阅读 · 0 评论 -
Chapter11_纹理动画
序列帧动画Shader "Chan/SqueueAction"{ Properties { _Color("Main Color",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white"{} _HorizontalAmount("Horizontal Amount",Float) = 8 _VerticalAmount("...原创 2019-04-28 17:30:16 · 287 阅读 · 0 评论 -
Shader6-基础光照
光学概念简单介绍1.辐射照度量化光的单位(W/m²)2.光线与物体相交,要么被散射要么被吸收1.散射:(改变光线方向,不改变光线密度和颜色) 散射到物体内部,称为折射或透射。折射到物体内部的光线,有些还会重新发射出物体表面。 另一种散射到物体外部,称为反射。2.吸收:(改变光线密度和颜色,不改变光线方向)光照模型1.标准光照模型(Blinn Phon...原创 2019-03-11 23:24:50 · 255 阅读 · 0 评论 -
Shader5-简单的Shader & Unity内置文件和变量 & CG语义
最简单的Shader:Shader "Chan/Shader_5_All" {Properties{//面板定义属性_Color("Color Tint",Color) = (1,1,1,1)}SubShader{Pass{CGPROGRAM...原创 2019-03-03 23:51:31 · 312 阅读 · 0 评论 -
Shader7-基础纹理
1.纹理映射(texture mapping)将纹理空间中的纹理元素映射到屏幕空间中的像素的过程。(表象就是把图像映射到模型三角形表面)ex:左边是两个三角面,右边是一个贴图,把一张图片映射到2个三角形上。在纹理映射过程中,我们使用纹理坐标的方式(或称u、v坐标),把纹理进行划分。UV(纹理映射坐标)它定义了图片上每个点的位置的信息,将图像上每一个点精确对应到模型表面。无论模型贴图...原创 2019-03-20 22:38:18 · 539 阅读 · 0 评论 -
Shader8-透明效果
Z缓冲区(Z-Buffer)算法当要渲染一个片元时候,需要把它的深度值和已经存在于z缓冲器中的深度值进行比较(如果开启了深度测试),如果该片元值较小,该片元的z值应该覆盖掉对应单元颜色缓冲区中的颜色值。并将该片元深度值写入z缓冲器中。如果该片元深度值和z缓冲器中对应单元已有的值比较,值较大。表明有物体遮住了它,该片元不被渲染。参考:https://www.cnblogs....原创 2019-04-04 23:28:17 · 369 阅读 · 0 评论 -
Chapter9_光照
渲染路径(Rendering Path)渲染路径决定了光照如何应用到Shader中,决定了把光源信息和处理后的光照信息放到那些数据中。全局渲染路径设置(Edit->ProjectSetting->Graphics)单个摄像机设置渲染路径四种渲染路径设置:Deferred(延迟渲染) Forward(前向渲染) Legacy Vertex Lit(遗留顶点照明渲染) ...原创 2019-04-09 22:32:56 · 325 阅读 · 0 评论 -
Chapter10_高级纹理
1.立方体纹理用于实现环境映射。模拟物体映射周围的环境。立方体纹理包含六张贴图(前后左右上下)。局限:场景发生变化(物体,光源增减,物体位置变化),立方体纹理就得重新生产。1.1 立方体纹理创建方式直接使用带特殊布局的纹理。然后设置TextureTpye = Cubemap即可。Unity官方推荐使用 创建一个Cubemap,然后提供前后左右上下六张贴图。 调用Camera.R...原创 2019-04-21 21:19:53 · 370 阅读 · 0 评论 -
图形学中的基本概念
目录UV纹素(Texel)Material Tiling 和 OffsetUV1.为什么需要UV坐标?使用纹理映射(texture mapping)技术,即把2D图像映射到3D模型三角形表面。ex:左边是两个三角面,右边是一个贴图,把一张图片映射到2个三角形上。2.什么是UV坐标?在纹理映射过程中,我们使用纹理坐标的方式(或称u、v坐标),把纹理进...原创 2019-04-24 23:01:26 · 2593 阅读 · 1 评论 -
Chapter12_屏幕后处理效果
1.定义:屏幕后处理通常指在渲染完整个场景得到屏幕图像后,再对这个图像进行各种操作,实现各种屏幕特效。使用屏幕后处理技术,可以实现景深(Depth of Field),运动模糊(Motion Blur)等。2.实现步骤2.1 先抓取屏幕图像,调用方法如下: monoBehaviour.OnRenderImage(RenderTexture sr...原创 2019-05-20 19:49:19 · 271 阅读 · 0 评论 -
Shader3-Unity中的基本着色器
Unity中的Shader模板Standard Surface Shader 包含了标准光照模型的表面着色器 Unlit Shader 不包含光照(包含雾效)的基本顶点/片元着色器 Image Effect Shader 屏幕后处理特效模板 Compute Shader 利用GPU并行性,处理与常规渲染无关计算 Shader Variant Collection 减少Shader变体,...原创 2019-03-03 15:47:26 · 272 阅读 · 0 评论