![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity Shader基础
文章平均质量分 58
81192_csdn
喜欢创造新世界
展开
-
ARCore背景渲染
文章目录1.前言2.ARCore流程3.渲染流程3.1 数据更新1.前言像Vuforia、ARCore、EasyAR等sdk,使用时都会将背景与虚拟进行叠加。此功能的实现有很多种,比如直接在Camera的远平面附近添加一个UI或者quad,将camera的画面付给它;比如用CommandBuffer将画面最先渲染;或者重写shader,更改渲染顺序或者设置深度值。ARCore采用的CommandBuffer的方式,但是里面有很多细节需要说明。2.ARCore流程ARCore背景渲染脚本为ARCore原创 2022-05-06 17:44:34 · 671 阅读 · 0 评论 -
被遮挡部分高亮
文章目录1.前言2.完整shader3.结论1.前言实现被遮挡部分高亮的shader2.完整shaderShader "Custom/HiddenHilight" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic",原创 2021-05-16 18:26:53 · 138 阅读 · 0 评论 -
(八)图像处理
文章目录1.前言2.图像处理2.1 亮度2.2 灰度2.2.1 完整代码2.3 模糊处理2.3.1 简单处理2.3.2 高斯处理2.4 边缘处理2.4.1 梯度计算2.4.2 颜色显示2.4.3 完整代码3.结语1.前言本篇浅谈一下图像处理包括调节亮度、灰度处理以及模糊处理。图像处理一般用于平面模型特殊要求处理,但主要用于屏幕后处理,屏幕后处理一般采用OnRenderImage方法进行。主要图像处理参考文献为六种灰度计算方法文章。2.图像处理2.1 亮度亮度就是让图像看起来更亮,处理比较简单,即颜原创 2020-05-10 12:03:47 · 526 阅读 · 0 评论 -
(七)时间动画_Time
文章目录1.前言2.实现2.1 顶点片元着色器实现2.2 序列帧播放2.3 表面着色器实现结论1.前言之前有涉及到序列帧播放的问题,最开始是通过RawImage/Image组件实现,即在update中或者通过协程实现固定事件间隔去刷新通向。再次提供两种shader来实现,序列帧的图像在一张图上按顺序排列。2.实现2.1 顶点片元着色器实现在此方法中用到了_Time来获取时间行程。其含有x...原创 2020-05-04 17:22:41 · 439 阅读 · 0 评论 -
(六)透明度问题简析
文章目录1.前言2.渲染队列3.透明度混合3.1 Blend命令格式3.2 Blend参数释义3.3 Blend混合方式4.剔除1.前言曾经做过一个项目,要求一个实体模型能够半透明显示,并高亮其中的某一部分。采用unity标准(standard)材质,通过将RenderMode改为transparent,然后通过MeshRender组件更改颜色透明通道进行实现。但是结果不尽人意,这是由于模型之...原创 2019-12-03 11:30:30 · 731 阅读 · 0 评论 -
(五)表面纹理
文章目录1.前言2.纹理采样3.消融效果1.前言模型表面颜色存储在纹理中,可以通过纹理采样来获取表面颜色,也通过表面纹理存储表面的其他信息来实现不同的效果,如这一篇中,通过其他纹理采用来控制消融的效果,后续会继续分析。2.纹理采样纹理采样通过tex2D内置方法来实现如tex2D(_MainTex,i.uv), _MainTex为主纹理,i.uv为uv坐标。在光照篇中,通过固定的颜色值来处理...原创 2019-12-02 15:45:06 · 880 阅读 · 0 评论 -
(四)光照计算模型模型
文章目录1.前言2.环境光Ambient3.自发光Emissive4.漫反射diffuse4.1 兰伯特定律LambertLaw4.1.1 逐顶点计算1.前言所谓的光照效果,反映到屏幕上就是一个个像素问题,所以光照的计算公式就是计算的一个一个颜色值。这些公式基本属于经验公式范畴,只是让人看起来像真正的光效。光分为环境光、自发光、漫反射以及高光反射,由于反映到像素上就是颜色的叠加。即最终在片元...原创 2019-12-01 11:56:27 · 875 阅读 · 0 评论 -
(三)UnityCG文件简析
文章目录1.前言2.变量引用3.方法使用4.代码块调用1.前言unity封装了很多方法可以直接调用,省去了很多复杂的矩阵计算,其中最基本的文件是UnityCG.cginc。在pass中通过#include "UnityCG.cginc"添加引用,然后就可以引入里面定义的代码块、方法以及变量。相关文件放置在安装目录下相关位置,如Unity\Editor\Data\CGIncludes。2.变量...原创 2019-11-29 13:37:45 · 590 阅读 · 0 评论 -
(二)Unity顶点/片元着色器基础
文章目录1.前言2.Shader名称3.属性4.SubShader5.定义顶点/片元着色器5.1 变量引用5.2 自定义变量5.3 顶点着色器vert5.4 片元着色器frag6.结语1.前言本文主要讲解以下Unity shader的一些基础内容,以无光照shader为例进行说明,后续进行详细分析与说明。此Shader可以直接复制到Unity中使用(unity2018/2018亲测可用),建议...原创 2019-11-28 19:12:17 · 821 阅读 · 0 评论 -
(一)渲染流程
文章目录1.前言2.渲染流程图2.1 应用阶段2.2 几何阶段2.2.1 顶点着色器2.2.2 裁剪2.2.3 屏幕映射2.3 光栅化阶段2.3.1 三角形设置与遍历2.3.2 片元着色器2.3.3 后续3.结语1.前言在进行unity shader基础教程前先对渲染流程进行简单讲解。对于重点位置会进行着重说明。这是一篇比较好的参考资料。2.渲染流程图此渲染流程图取自前言中参考资料比较典型...原创 2019-11-28 14:17:23 · 910 阅读 · 0 评论