自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图片格式及空间的介绍

图片格式及空间的介绍

2020-12-10 11:39:32 215

原创 shader入门精要读书笔记47 基于物理的渲染 理论和数学基础

111

2020-04-17 11:36:26 393

原创 shader入门精要读书笔记46 表面着色器

111

2020-04-15 16:23:19 204

原创 shader入门精要读书笔记45 Untiy中的 渲染优化技术(二)

一、减少需要处理片元数目这部分的优化策略是减少overdraw,overdraw就是一个像素被绘制多次。控制绘制顺序由于深度测试的存在,如果我们可以保证物体都是从前往后绘制,那么就可以很大程度上减少overdraw,这是因为后面绘制的物体没办法通过深度测试,因此就不会进行后面的渲染处理。渲染队列小于2500(Background、Geometry、AlphaTest)的对象都被认为是不透明...

2020-04-13 15:34:21 154

原创 shader入门精要读书笔记44 Untiy中的 渲染优化技术(一)

一、渲染优化技术几个方面CPU方面:使用批处理技术减少draw call数目GPU方面:(1)减少需要处理的顶点数目:—优化结合体—使用模型的LOD技术—使用遮挡剔除技术(2)减少需要处理的片元数目—控制绘制顺序—警惕透明物体—减少实时光照(3)减少计算复杂度—使用Shader的LOD技术—代码方面的优化节省内存带宽(1)减少纹理大小(2)利用分辨率缩放二、...

2020-04-12 18:04:54 117

原创 shader入门精要读书笔记43 使用噪声纹理的非均匀雾效

一、思路仍然需要屏幕后处理效果,和之前的雾效果实现基本一样(全局雾效计算),就是多算了一个噪声值混合雾效果的浓度 用来插值原始颜色和雾颜色。二、具体实现代码:摄像机脚本代码:using UnityEngine;using System.Collections;public class FogWithNoise : PostEffectsBase { public Shader ...

2020-04-10 12:13:00 217

原创 shader入门精要读书笔记42 水波效果

一、实现思想模拟水面的时候也是需要使用到噪声纹理的。我们使用噪声纹理作为一个高度图,用来不断修改水面的法线方向。为了模拟水不断流动的效果,我们使用和时间相关的变量来对噪声纹理进行采样,得到法线信息后,再进行正常的反射+折射计算,最后得到水面波动效果。...

2020-04-08 13:56:05 282

原创 shader入门精要读书笔记41 消融效果(使用噪声)

一、前言消融效果常见于角色死亡、地图烧毁等等。消融效果就是指在不同的区域开始,并且看似随机扩张,最后整个物体都消失不见。二、实现代码(具体见注释):Shader "Unity Shaders Book/Chapter 15/Dissolve" { Properties { _BurnAmount ("Burn Amount", Range(0.0, 1.0)) = 0.0 //控...

2020-04-05 01:11:55 190

原创 shader入门精要读书笔记40 素描风格的渲染

总结下头文件:HLSLSupport.cginc - (自动包含) 为跨平台的着色器编译宏和定义提供帮助。UnityShaderVariables.cginc - (自动包含)常用的全局变量。UnityCG.cginc - 常用的辅助函数AutoLight.cginc - 照明&阴影功能,如表面着色器在内部使用这个文件Light.cginc - 标准表面着色器照明模式,当你写su...

2020-04-03 14:59:25 231 1

原创 shader入门精要读书笔记39 卡通风格的渲染

11

2020-04-03 11:20:24 211

原创 shader入门精要读书笔记38 边缘检测(使用深度、法线纹理)

一、前言因为之前使用的边缘检测,通过屏幕后处理效果使用Sobel算子进行边缘检测的,这种很有可能会导致我们不需要的一些东西(比如阴影、纹理等等)所以我们尽可能使用在深度纹理和法线纹理上进行边缘检测,这些纹理检测不会受光照和纹理影响,仅仅保存了当前物体的模型信息,这样边缘检测就更加可靠。二、实现...

2020-03-31 22:42:36 265

原创 shader入门精要读书笔记37 全局雾效(重建世界坐标另一个方法)

一、前言Untiy内置的雾效可以产生基于距离的线性或指数雾效。而如果我们要在自己的Shader中实现雾效,我们可能会使用到 #pragma multi_compile_fog ,UNITY_FOG_COORDS,UNITY_TRANSFER_FOG,UNITY_APPLY_FOG等等 内置宏。基于屏幕后处理的全局雾效的实现:这种方法我们不需要更改场景内渲染物体的Shader代码,仅仅使用一...

2020-03-31 15:00:24 603 3

原创 shader入门精要读书笔记36 关于平台差异一些总结

P115页的渲染平台差异要注意,仔细考虑使用条件(抗锯齿、并且使用了渲染到纹理技术得到了纹理后续处理使用)。看结果是否颠倒情况满足考虑平台差异的使用。#if UNITY_UV_STARTS_AT_TOP //处理平台差异化,用来判断是否在DX平台,如果在dx平台开启了抗锯齿,y值会为负值, if (_MainTex_TexelSize.y < 0) o.uv_depth...

2020-03-30 13:28:02 200

原创 shader入门精要读书笔记35 使用深度纹理获取像素速度来控制运动模糊

一、运动模糊之前说的两种方式:运动模糊实现一种是累积缓存,来混和多张连续的图像,消耗性能。还有一种是采用速度缓存,这个缓存存储了各个像素当前的运动速度,然后使用该值决定模糊的方向和大小。速度缓存就是通过深度纹理逆运算得出NDC坐标再乘以逆矩阵从而还原出世界空间中的坐标,再使用上一帧的变换矩阵乘以坐标来得到上一帧的NDC坐标,然后根据两个NDC坐标计算像素速度,从而使用速度对主纹理进行相邻像...

2020-03-30 13:19:59 265

原创 shader入门精要读书笔记34 使用深度纹理和法线纹理

一、前言之前学习的实现的屏幕后处理效果都是在在屏幕图像上实现的各种操作,有时候我们也需要获取深度纹理和法线信息等等,例如在边缘检测时,我们检测的边缘信息受物体纹理和光照等外部信息影响,会得到很多我们不需要的边缘点,一种更好的方法是,我们得到深度和法线纹理在他们上进行边缘检测,这些图像不会受到纹理和光照的影响,而是仅仅保存了渲染物体的模型信息,这样的边缘检测更加可靠。...

2020-03-29 19:53:53 225

原创 shader入门精要读书笔记33 运动模糊

一、运动模糊运动模糊是一种真实世界的效果,摄像机曝光时场景发生变化,就会产生模糊的效果。这个效果可以使物体运动看起来更平滑,,在一些赛车等等的快速运动的游戏中,这个效果的添加很常见。运动模糊实现方法有很多种:一种是使用累积缓存,来混和多张连续的图像,我们取得他们的平均值作为最后的运动模糊图像。但这种会很消耗性能,取得多张图像意味着我们需要在同一帧里渲染很多次场景。另外一种是采用速度缓存,...

2020-03-25 23:07:10 359

原创 shader入门精要读书笔记32 Bloom效果

一、Bloom这是一种常见的屏幕效果,模拟真实摄像机的图像效果,使画面中较亮的区域扩散到周围的区域中,造成一种朦胧的效果。实现原理:先根据阙值提取图像中明亮区域,存储在一张纹理中,然后利用高斯模糊对这张纹理进行模糊处理,模拟光线扩散的效果,最后再与原图像进行混合,得到最终效果。二、代码摄像机脚本:using UnityEngine;using System.Collections;...

2020-03-25 00:14:03 182

原创 shader入门精要读书笔记31 高斯模糊

一、前言高斯模糊是卷积的另一个应用,模糊有很多实现方法:均值模糊、中值模糊等等,均值模糊就是卷积核中每个元素都相同,且相加为一,取的是卷积核面积大小的像素平均值。高斯模糊,使用的是高斯核,高斯核中每个元素都是用高斯方程计算出来的。(P253)因为高斯方程可以很好的模拟出每个像素对当前像素的影响程度,上面的这个变换,效果是一样的,但可以节省很多次的采样次数。我们使用两个Pass对横纵...

2020-03-24 15:15:39 252

原创 shader入门精要读书笔记30 边缘检测

一、边缘检测理论边缘检测是一种描边效果实现的方法,原理是通过检测算子对图像进行卷积。卷积核就是一个正方形的网格结构。在对某个像素进行卷积时,我们会把卷积核的中心放在该像素上,依次计算核中的每个元素值和每个像素的像素值的乘积,再把所有的相加,得到的结果就是该位置的新像素值。这样的过程可以实现很多效果,例如图像模糊、边缘检测等。常见的边缘检测算子(卷积核):以上别熬是的是两个方向的卷积核。...

2020-03-23 14:22:33 237

原创 shader入门精要读书笔记29 屏幕后处理 亮度、饱和度、对比度

一、使用屏幕后处理效果 进行更改 亮度、饱和度、对比度声明一个摄像机上的脚本BrightnessSaturationAndContrast,继承上一节的基类用来调用相关函数。思想大概就是:先创建一个函数,用来继承基类,那么我们就可以使用相关函数进行材质创建,调用函数。然后我们创建一个Shader赋值给上面脚本(脚本内使用Shader创建材质),用来进行特效处理。脚本代码:using U...

2020-03-22 23:00:35 201

原创 shader入门精要读书笔记28 屏幕后处理效果

一、前言屏幕后处理效果是游戏中实现屏幕特效的常见方法,使用渲染纹理来进行实现的。屏幕后处理就是在渲染完整个场景后,再对这个图像进行操作,实现特效,例如景深(Depth of Field),运动模糊(Motion Blur)等。二、建立一个屏幕后处理脚本函数:抓取屏幕图像:MonoBehaviour.OnRenderImage(RenderTexture src,RenderTextur...

2020-03-22 16:06:57 184

原创 shader入门精要读书笔记27 顶点动画的阴影效果

一、定点动画的一些注意事项上节说的取消批处理"DisableBatching"="True",是因为我们需要操作模型空间的信息,如果进行批处理,那么会合并模型以至于我们丢失模型的模型空间。所以之后如果要在顶点着色器中操作相关模型空间时,需要记得考虑是否需要关闭批处理。取消批处理会增加Draw Call,带来一定的性能下降,所以我们需要尽可能地避免使用模型空间下的一些绝对位置来进行计算。广告牌...

2020-03-20 15:37:01 261

原创 shader入门精要读书笔记26 顶点动画

一、流动河流Shader "Unity Shaders Book/Chapter 11/Water" { Properties { _MainTex ("Main Tex", 2D) = "white" {} //主纹理 _Color ("Color Tint", Color) = (1, 1, 1, 1) //整体颜色 _Magnitude ("Distortion Magn...

2020-03-20 01:34:06 101

原创 shader入门精要读书笔记25 纹理动画

一、前言Unity Shader中的一些内置时间变量二、纹理动画大概分为两种形式:序列帧动画、背景循环滚动动画。我们使用的图像需要勾选Alpha Is Transparency,因为是透明纹理。1.序列帧动画Shader "Unity Shaders Book/Chapter 11/Image Sequence Animation" { Properties { _Color ...

2020-03-18 01:01:21 192

原创 shader入门精要读书笔记24 高级纹理-程序纹理

一、前言程序纹理就是指由计算机生成的图像,我们可以通过各种参数来控制纹理的外观,这些属性不仅仅是颜色属性,还可以是完全不同类型的图案属性,可以使我们得到更丰富的动画和视觉效果。二、实现程序纹理简单思想:先创建一个材质,然后给它使用之前学过的单张纹理Shader,因为我们没有纹理,所以在应用材质的模型身上挂载脚本-程序纹理来进行创建赋值。using UnityEngine;using Sy...

2020-03-17 15:54:27 172

原创 shader入门精要读书笔记23 高级纹理-渲染纹理-镜子效果、玻璃效果

一、前言现代GPU允许我们把整个三维场景目标渲染到一个中间缓冲中,即渲染目标纹理(RTT)。多重渲染目标(MRT),这种技术指的是GPU允许我们把场景同时渲染到多个渲染目标纹理中,而不再需要为每个渲染目标纹理单独渲染完整的场景,延迟渲染就是其中的一个应用。Untiy,定义了渲染纹理(Render Texture),用来代替渲染目标纹理。Unity中使用渲染纹理有两种方式:1.一种方法是创...

2020-03-16 16:36:41 306

原创 shader入门精要读书笔记22 高级纹理-立方体纹理-环境映射反射折射

一、前言立方体纹理是环境映射的一种实现方法,立方体纹理共包含6张图像。采样是通过立方体中心出发向外部延伸,与6张纹理之一发生相交,采样结果就是由交点计算来的。立方体纹理好处:简单快速、鲜果比较好,缺点:当场景发生变化需要重新生成立方体纹理,而且不能进行自身反射,所以我们需要尽量使用凸面体。二、天空盒天空盒使用的就是立方体纹理映射技术。游戏中模拟背景的一种方法,它的Skybox材质,中使...

2020-03-15 15:28:59 540

原创 CG标准函数

转载

2020-03-13 12:10:38 134

原创 Dragonbones的Unity样例CoreElement注释

DragonbonesUnity样例,CoreElement 解释:之后用到动画转换时可以参考。using System.Collections;using System.Collections.Generic;using UnityEngine;using DragonBones;public class CoreElement : BaseDemo{ public co...

2020-03-12 17:29:15 390

原创 C# 委托的一些总结

函数回调机制——委托using UnityEngine;using System.Collections;public class DelegateScripts:MonoBehaviour{ //声明一个委托类型,它的实例引用一个方法 internal delegate void MyDelegate(int num); MyDelegate myDelegate;...

2020-03-08 18:41:55 110

原创 Unity中Time介绍,通用类定时器

unity中时间控制脚本通用类计时器:using System.Collections;using System.Collections.Generic;using UnityEngine;using System;public class GlobalTimer : MonoBehaviour{ private static GlobalTimer instance; //...

2020-03-08 17:34:57 566

原创 Unity中几个延迟等待后运行函数的方法

转自 —Instagram老王大大1.- Update函数 实现定时器float m_timer = 0;void Update(){ m_timer += Time.time; if (m_timer >= 5) { ShowB(); m_timer = 0; }}private void ShowB(){...

2020-03-07 22:13:45 9380 1

原创 对象池使用

又是做小游戏,需要子弹敌人使用,就又学习了下对象池。。这个还可以,弄出来很高兴。代码:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Pool : MonoBehaviour {    private string pooln...

2020-03-06 23:11:41 132

原创 shader入门精要读书笔记21 阴影效果***

一、前言实时渲染中Unity使用的是Shadow Map技术,它会把摄像机位置与光源位置重合,那么场景中光源阴影区域就是摄像机看不见的地方。前向渲染路径中,场景中如果开启了平行光阴影效果,那么Unity会为光源计算它的阴影映射纹理,这个纹理就是一个深度图,用来记录从光源位置出发,能看到的场景中距离它最近的表面位置(深度信息)。Unity使用了一个一个额外的Pass来计算更新光源的阴影映射纹理...

2020-03-03 01:05:34 284

原创 shader入门精要读书笔记20 Unity中的光源类型与衰减计算

一、光源类型Unity中4中光源:平行光、点光源、聚光灯、面光源(只在烘焙时发生作用)。光源位置、方向、颜色、强度、衰减等等都与他们的属性息息相关,会影响到Shader。1.平行光他没有唯一的位置,它的几何属性只有方向。2.点光源表示由一个点发出的向所有方向延伸的光。照亮空间有限,存在位置等属性,存在衰减等等。3.聚光灯是由一块锥形区域定义的,从一个特定位置出发,向特定方向延伸的...

2020-03-01 15:30:50 348

原创 shader入门精要读书笔记19 Unity的渲染路径

一、前言渲染路径决定光照是如何应用到Untiy Shader中的,只有给Shader正确的选择和设置需要的渲染路径,Shader的光照计算才能被正确执行。UNTIY支持多种类型渲染路径:前向渲染路径、延迟渲染路径、顶点照明渲染路径。Unity5之后,顶点照明渲染路径北删除(但可以使用兼容),延迟渲染路径更新。大多数情况一个项目只使用一种渲染路径。整个项目渲染路径设置方法:Edit-&gt...

2020-02-28 19:35:38 189

原创 shader入门精要读书笔记18 透明度测试、透明度混合 及 其他效果实现

一、透明度测试只要一个片元不满足条件(通常是小于某个阙值),那么它对应的片元就会被舍弃。函数:clip(),参数可以是1-4维的矢量,也可以是普通标量。作用:裁剪使用时的标量或者矢量条件。如果给定参数的任何一个分量是负数,就会舍弃当前像素的输出颜色。代码:Shader “Unity Shaders Book/Chapter 8/Alpha Test”{ Properties {...

2020-02-23 20:24:19 226

原创 shader入门精要读书笔记17 透明效果

一、前言实现透明效果,通常会采取在渲染模型时控制它的透明通道。一个物体被渲染到屏幕上时,一个片元除了颜色值和深度值外,还有一个透明度属性。透明度为1表示该像素完全不透明,透明度为0表示,像素完全不会显示。对于渲染顺序问题:对于不透明物体,不考虑渲染顺序也可以得到正确的排序效果,这是因为强大的深度缓冲的效果:根据深度缓冲中的值来判断该片元距离摄像机的距离,当渲染一个片元时,需要把它的深度值和...

2020-02-22 12:11:07 188

原创 shader入门精要读书笔记16 基础纹理-渐变纹理、遮罩纹理

一、渐变纹理也是由Value公司在制作<军团要塞2>提出,可以保证物体的轮廓线相比之前使用的传统漫反射光照更加明显,能够提供多种色调变化,常用于卡通渲染中。基本思想:在顶点着色器中将法线、顶点转换到世界空间,计算平铺、偏移后的纹理坐标,传递到片元着色器中;在片元着色器中,环境光如果没有使用单张纹理那么不必计算材质反射率,直接采用系统环境光。计算漫反射时采用半兰伯特模型,使用h...

2020-02-19 21:14:58 317

原创 shader入门精要读书笔记15 基础纹理-凹凸映射-世界空间中的计算

一、世界空间的计算基本思想:在顶点着色器中进行变换矩阵的计算。在片元着色器中进行法线纹理从切线空间到世界空间的转换。再进行计算光照。Shader "Untiy Shaders Book/Chapter 7/Normal Map In Tangent Space"{ Properties { _Color("Color Tint",Color)=(1,1,1,1) //整体模型...

2020-02-18 12:11:46 297

空空如也

空空如也

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

TA关注的人

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