Unity-Shader
文章平均质量分 95
着色器技术合集
火锅肥牛
你好,欢迎来到火锅肥牛博客。喝最烈的酒,拿最利的刀,写最hard的code。你可以通过thisskyiot@163.com联系我
展开
-
Unity Shader入门精要 阅读笔记二
Unity Shader 基础unity shader在5.2版本以上能够直接从项目中创建4个shader模板:standard surface shader、Unlit shader、Image Effect shader,computer shader.standard shader:包含标准光照模型(使用了基于物理的渲染方法)原创 2017-11-07 11:24:04 · 508 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记十二
透明效果一 一、基础要在模型中实现透明效果,可以通过两种方式来实现:透明测试和透明混合。 透明测试:这种方式其实是通过透明度来判断哪些地方需要去渲染,如果透明度低于设定的值就不去渲染。其实这里和遮罩有点相似。透明测试主要去判断一张贴图的透明通道,然后将低于该透明通道的部分取消渲染。 透明度混合:这种方式可以实现半透明效果。二、一些关键词 深度缓冲(z-buffer):深度缓冲对应深...原创 2018-02-25 23:54:30 · 263 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记六
这里将会对Unity中的内置文件、语义、调试进行阅读。Unity内置文件在编写shader的时候,Unity为我们隐藏了很多shader中的细节。有些是unity默认添加的,例如UnityCG.cginc库,有一些是需要我们自己手动去添加的。之前说过CG其实是C for Graph的缩写,那么在应用其他的库文件的方法上面,其实语法和C语言是很像的:CGPROGRAM//...#include "U...原创 2017-12-25 22:36:29 · 308 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记十七
前言这里讲边缘检测这一节中的笔记内容。边缘检测这里更多的用到了图像学的一些基本内容,包括卷积核,索贝尔算子等等一些内容。整个流程还是比较清晰的。边缘检测算法获取到屏幕渲染的颜色缓冲之后,将屏幕中的像素用索贝尔算子进行卷积操作,卷积的结果就是当前像素的一个导数。这里说导数其实可能比较难懂,说变化程度应该会好理解一些。如果这里颜色突变的厉害那么他的变化程度就会大一些,如果颜色变化比较平...原创 2018-03-05 18:51:29 · 1208 阅读 · 0 评论 -
Unity 2018之ShaderGraph使用基础
创建shaderGraph创建轻量级渲染管线ShaderGraph是基于可编程渲染管线,我们要使用shaderGraph也就需要设置SRP。 首先创建Renderpipeline。在SRP中,unity帮我们封装了几种渲染管线: - 我们可以创建LWRP(轻量级渲染管线),这种渲染管线适合移动设备。 - HDRP(高动态渲染管线),适用于PC等性能较高的设备 - Custom(...原创 2018-05-15 10:59:16 · 23379 阅读 · 3 评论 -
Unity Shader入门精要 阅读笔记十三
透明效果二 对于我来说,透明效果的编写非常重要,甚至于比一些高级的渲染效果还要重要。那么我需要实现的效果就是,给一张含透明通道的贴图,能够实现双面渲染,并且双面不会出现透明效果的错误。之前很多次尝试都是错误的(主要是没有正儿八经的学过shader)因此,这次学了之后好好总结一下。 一、透明度混合 从名词中可以看出,透明度混合能够实现透明度与其他不透明物体的混合。为了实现半透明效果我们考虑到:...原创 2018-07-01 15:13:00 · 311 阅读 · 0 评论 -
Unity Shader 伽马空间与线性空间
前言首先这篇文章是Unity工程师所写的,本人只是为了作为学习和方便查找进行了搬运。Unity一直是我使用的最多的工具,而伽马空间和线性空间的使用也一直是困惑我的地方,因此在博客中进行了搬运。向提供这么好的工具的Unity工程师致敬。原文链接这里什么是伽马空间通常物体呈现出来的颜色和我们用眼睛看到屏幕上的最终颜色是不一样的。下图01中有三张图片。左边偏亮的才是真实的颜色。这里的...转载 2018-06-28 14:15:35 · 9158 阅读 · 0 评论 -
Unity 3D之自定义SRP(可编程渲染管线)教程2
Unity3D提供了默认的两种渲染管线,那么这两个渲染管线与之前的Unity内置渲染管线有什么相似与相异的地方?本文将进行总结。原创 2019-07-14 00:38:34 · 1623 阅读 · 0 评论 -
Unity 3D之自定义SRP(可编程渲染管线)教程3
SRP是自Unity 2018版后更新的功能,本博文将会关注自定义SRP的开发。原创 2019-07-14 11:25:49 · 2406 阅读 · 0 评论 -
HLSL之Tessellation笔记1
前言曲面细分着色器在unity hdrp中,由于只支持hlsl因此,要实现tessellation的功能,不能与之前shader相同,需要自己手动重写tessellation,那么这部分的代码就主要为了完成在hlsl中重写曲面细分着色器。资源来源于Microsoft的tessellation教程pipelineHull shader转换低程度的控制点为patch的控制点。并为tes...原创 2019-08-21 22:51:35 · 840 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记九
高光反射模型逐顶点 效果图逐像素高光着色 效果图Blinn-Phong模型效果图原创 2018-02-25 23:41:22 · 241 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记十
渐变纹理 不同渐变纹理所带来的效果不同。 首先从分析半兰伯特模型开始: 半兰伯特模型在之前计算光照的时候被应用,主要是为了解决blinn模型不能计算阴影面的问题,而这个问题的表述在于在计算光照的时候,算法直接将计算结果的负数剪掉,从而在背面其实也就不计算光照。那么在半兰伯特模型中,采用了先缩放再平移的方式将本该在[-1,1]的受光照范围扩展到了[0,1]。这样的计算就能保...原创 2018-02-25 23:43:59 · 321 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记十一
遮罩纹理遮罩纹理其实内容不是很多,说白了就是添加一张纹理来存储权重值,以控制渲染中某些变量的值。由于一张图中有四个通道(r,g,b,a),因此一张图可以控制四个变量。 下面主要讲一下通过一张纹理来控制高光的效果。 图一 未添加遮罩贴图效果 图二 添加遮罩贴图效果 从图一图二中对比可以看出,图二添加了遮罩贴图后高光部分显得比较暗淡。 在shader中:// Upgrad...原创 2018-02-25 23:48:44 · 283 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记 前言
写在前面本来这个笔记是我在看冯乐乐写的《unity shader入门精要》这本书的自己的笔记,方便自己回忆的时候来看自己之前的理解。相比之前的笔记来说,这篇笔记内容更加系统。我比较喜欢用网易云笔记来记录这些东西,所以一来二去发现其实整理的东西还挺有意思,所以将这些内容准备发到网络上,第一是帮自己找一个云盘存储,第二是希望大佬帮我指正一下内容的错误,第三也希望能帮助更多想学unity shader原创 2017-11-05 18:27:27 · 499 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记四
点、矢量和矩阵在基础的图形学数学中,点、矢量以及矩阵是较为基础的元素。通常三维世界中最基础的就是点(x,y,z).矢量可以看成是两点指向的方向。矢量是一种方向,与位置无关。矩阵是一系列的运算。我们在学习矩阵的时候通常会先学习多元一次方程。矩阵其实就是运算的集合。点与矢量的基础这里我主要记录我自己觉得容易忘记的一些知识点。矢量的加减通常矢量的运算我们都是在平行四边形中去思考。 矢量相加,是指两个矢量原创 2017-11-28 20:55:15 · 347 阅读 · 0 评论 -
Unity Shader入门精要 数学基础之齐次坐标系
齐次坐标系齐次坐标系是图形学最基础的知识之一。齐次坐标能够帮助欧式坐标系处理透视问题。在欧式坐标系中,我们往往不能处理透视问题(远处相交)。为什么会有齐次坐标系在我们正常思维里,二维坐标中两条线段如果相同(方向相同且不重合),那么两条线段就肯定不会有焦点:\left\{\begin{matrix}Ax+By+C=0\\ Ax+By+D=0\end{matrix}\right.那么这类面如果两根原创 2017-11-14 22:49:42 · 1463 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记一
第一张渲染流水线 Real-Time Rendering 这本里对渲染流水线的划分主要分为三个阶段:应用阶段、几何阶段、光栅化阶段应用阶段是在CPU中运行,用于处理用户定义的3维空间的信息几何阶段在GPU中运行,用于用户定义的3维空间,并将其映射到屏幕空间中光栅化,将上一步的屏幕信息,转换成屏幕像素信息。CPU流水线:{应用阶段主要分为三个阶段: - 将数据加载到显存中 - 设置渲染状原创 2017-11-05 18:28:06 · 596 阅读 · 0 评论 -
UnityShader入门精要 阅读笔记之版本问题一
前向渲染部分在用Unity5.6学习的时候,会有一些地方和书上不太一样,我把我遇到了做一个总结。 问题一: Shader error in ‘Custom/5.2’: undeclared identifier ‘unity_WorldToLight’ at line 147 (on d3d11)描述:这个问题是因为在版本升级之后,有一些接口已经换到其他库,并且名字也换了。如果你按照书里的来写的原创 2017-11-28 22:13:32 · 3422 阅读 · 1 评论 -
Unity Shader入门精要 阅读笔记三
坐标系左手坐标系与右手坐标系在三维坐标系中,普遍存在两种表示方式:左手坐标系,与右手坐标系。两种坐标系是因为在不同的系统中的表示方式不同,因此而存在。在识别中,我们可以通过看手部的方向来找到,大拇指为x轴,食指为y轴,中指为z轴。左手坐标系:在Unity世界中,模型空间和世界空间使用的是左手系。右手坐标系:与左手系 不同,右手系的z轴正方向指向屏幕外面,原创 2017-11-20 17:18:32 · 269 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记五
最简Shader框架unity的shader基础的一些知识可以从阅读笔记一中获得。 这里讲一些最简框架,之后的shader其实都可以从最简框架中来扩展。// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader"Custom/1.1.1"{//lowest level shade原创 2017-12-01 15:38:55 · 329 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记八
逐顶点光照效果图 从效果里里可以看出,逐顶点光在边缘处有很多锯齿和凸起,并且在光暗分界线部分出现不平滑。这个问题是因为,在计算光照效果的时候,逐顶点光照其实是对每个顶点部分的颜色效果值进行计算,而中间部分则使用插值计算得到,所以会出现这些问题。在顶点密度较低的情况下,这个问题很明显,而在顶点密度较高的时候,这个问题就现实较好。逐顶点光照shader脚本:// Upgrade原创 2018-01-30 23:26:18 · 260 阅读 · 0 评论 -
Unity Shader入门精要 阅读笔记七
Unity shader光照基础==你如果它看起来是对的,那么它就是对的 – 计算机图形学第一定律==这里主要对光照的基础进行笔记。光照基础这里确实很费脑子,看了好久也没怎么理解。下面也主要是一些重点。渲染一个环境,需要考虑: - 光线从光源中出发 - 光线照射到其他物体后,会经过反射和散射。 - 最后进入摄像机中的光线就是最后渲染的图像。光源光源照射到物体,射入...原创 2018-01-14 14:05:20 · 290 阅读 · 0 评论 -
ShaderGraph 之实现虚拟室内效果
之前在看网页的时候发现有一篇虚拟室内效果的,于是就在Unity中使用ShaderGraph来实现了一遍,具体思路与教程中一直,只不过在shadergraph中有些地方需要注意一下。原创 2019-08-31 14:48:36 · 1505 阅读 · 1 评论