UnityShader
文章平均质量分 66
Unity Shader的学习之路
在逆境中蜕变
若有合作请私聊。
只有奋斗才能改变命运
毕业到现在,一切都在朝着好的方向发展
没有荒废,对一切未知事物保持好奇,保持热情
展开
-
GPU 渲染管线与着色器 大白话总结 ---- 一篇就够
十分好的文章转载 2023-07-27 02:05:32 · 2247 阅读 · 0 评论 -
UnityShader_泳池实现
一个水上、水底的UnityShader实现!!效果十分好原创 2021-03-20 16:15:42 · 2069 阅读 · 0 评论 -
UnityShader进阶小知识点(持续更新)
UnityShader进阶的一些小知识点原创 2021-01-24 12:15:01 · 1145 阅读 · 1 评论 -
UnityShader_利用上一篇阴影投射的原理实现阴影(不使用UnityShader自带的投影库)
人生下来便处在不同的漩涡之中,跳脱出漩涡,你才能看到世界的全貌原创 2020-09-22 01:46:25 · 675 阅读 · 6 评论 -
UnityShader_再谈阴影投射
人有多少个一年,每个礼拜一晃眼就过去了,一年也就52个礼拜,别让自己太放松了原创 2020-09-05 20:46:17 · 1126 阅读 · 2 评论 -
UnityShader_填补之前雪地没有阴影的坑
不要把挣钱当作最终目的,那样你会活得很累原创 2020-08-31 23:05:58 · 435 阅读 · 3 评论 -
UnityShader_使用几何着色器实现草坪效果(简易)
学历、大学从来都不是限制你成功的因素,当有一天你真正明白自己想要的是什么,成功的路就已经向你敞开,而你与成功的这段距离,需要靠努力来缩短,我一直都坚信着并且这么做着。原创 2020-08-30 21:15:39 · 2471 阅读 · 3 评论 -
UnityShader_再探几何着色器
有梦想,动力不止原创 2020-08-24 18:56:42 · 562 阅读 · 0 评论 -
UnityShader_初探几何着色器
努力真的是有用的,你要坚信努力一定会给你带来收获,每天坚持多学一点,多学一点,一天天积累,你会追赶上前面的人原创 2020-08-22 00:10:28 · 587 阅读 · 0 评论 -
UnityShader_深度纹理简介
深度纹理是一张存储 屏幕上各点深度值 的纹理图(就跟我们之前常用的法线贴图一样,存放的并不是颜色信息值),而纹理上的 深度值 是从 归一化的设备坐标(NDC)上获得的(该文章的后半部分有讲述)。此时我们得到的深度值z∈[-1,1],我们采用法线纹理相同的处理,d∈[0,1]...原创 2020-07-13 20:36:02 · 714 阅读 · 0 评论 -
UnityShader_屏幕后处理之运动模糊
思路:1、先介绍第一种运动模糊2、介绍深度图3、介绍第二种运动模糊4、对比原创 2020-07-12 12:12:10 · 693 阅读 · 0 评论 -
UnityShader_屏幕后处理之辉光
题外话:关于黑色和白色在计算机中的颜色占比黑色RBG=(0,0,0)、白色RBG=(1,1,1)在现实生活中黑色吸收所有光,即所有光都不反射,因为本身的其RGB的颜色组成都是0;白色反射所有光,即所有光都反射,因为本身的其RGB的颜色组成都是1。...原创 2020-06-30 21:22:48 · 2386 阅读 · 0 评论 -
UnityShader_屏幕后处理之高斯模糊
原理:原创 2020-06-30 14:55:46 · 228 阅读 · 0 评论 -
UnityShader_屏幕后处理(亮度、饱和度、色彩对比度、描边)
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 12/Brightness Saturation And Contrast" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Brightness ("Brightness", Float) = 1原创 2020-06-23 15:08:39 · 583 阅读 · 0 评论 -
UnityShader_实现动画效果(2)
顶点动画补充一点上一篇遗漏的一个关键点:当我们的shader中包含了 模型空间的顶点动画时,必须!!加上Tag { DisableBatching = true}!!!因为Unity在合批处理的时候会合并所有相关模型,这会导致这些模型各自的模型空间丢失!!!!!!这一点在这篇中也会遇到!!!让我们伟大的国旗动起来!实现原理: 在顶点着色器中,让平面模型的“横轴方向”随时间做三角函数运动!是不是法线上面旗子的影子怪怪的!是的,影子没有在动!在shader中我们没有对投影的shader进行编写,原创 2020-06-20 11:43:17 · 286 阅读 · 2 评论 -
UnityShader_实现动画效果(1)
请记住下面这张表,这几个时间参数是让shader动起来的“大功臣”加粗样式原创 2020-06-19 17:25:46 · 589 阅读 · 0 评论 -
UnityShader_代码中常用的控制shader属性的函数
PS 其实这个东西在之前的镜像水面也已经用过了,现在在这里详细的描述一下原创 2020-06-17 11:09:58 · 1476 阅读 · 0 评论 -
UnityShader_玻璃效果,以及关于视口坐标、透视投影的投影矩阵推导过程
Shader "Unity Shaders Book/Chapter 10/Glass Refraction" { Properties { _MainTex ("Main Tex", 2D) = "white" {} _BumpMap ("Normal Map", 2D) = "bump" {} _Cubemap ("Environment Cubemap", Cube) = "_Skybox" {} _Distortion ("Distortion", Range(0, 10000))原创 2020-06-13 19:16:43 · 676 阅读 · 0 评论 -
UnityShader_多重编译
添加链接描述原创 2020-06-09 16:24:53 · 1160 阅读 · 0 评论 -
UnityShader_天空盒子中的反射、折射、聂菲尔效应
说是原创 2020-06-08 21:27:00 · 558 阅读 · 0 评论 -
UnityShader_足迹沙漠雪地塌陷
第一次的路径代码块Shader "ShaderPath/Tessellation"{ Properties { _Tess("Tessellation", Range(1,64)) = 4 _TopMain ("TopMain", 2D) = "white" {} _BottomMain ("BottomMain", 2D) = "white" {} _DispTex("Displacement Texture", 2D) = "white" {}//脚印踩下去之后的模型顶点偏移..原创 2020-05-28 22:01:17 · 2883 阅读 · 1 评论 -
UnityShader_翻书
原理简述: 在物体顶点着色器中控制顶点旋转,并且通过正弦函数控制每一页书的弯曲程度,因为每一页书正反面是不一样的,因此要用两个Pass去渲染正反面。后续可以加一个C#脚本去控制页签何时翻页。Shader "ShaderPath/OpenBookShader"//shader的选择路径{ Properties { //正面纹理 _MainTex ("Texture", 2D) = "white" {} //背面纹理 _SecTex("SecTex",2D)="Wh原创 2020-05-19 21:26:28 · 605 阅读 · 0 评论 -
UnityShader_倒影,水波倒影(代码已更新)(2)
相较于上一个水波倒影,这个水波倒影要更为复杂,但也更为真实,大体思路如下利用脚本抓取水面的镜像,并在Shader中进行处理using UnityEngine;using System.Collections;[ExecuteInEditMode] public class Mirror : MonoBehaviour{ public bool m_DisablePixelLights = true; public int m_TextureSize = 256; pu原创 2020-05-13 21:22:11 · 1768 阅读 · 1 评论 -
UnityShader_倒影,水波倒影(1)
关于我这几天去哪了Shader "ShaderPath/MirrorShader"//shader的选择路径{ Properties//该Shader可控的属性 { _PlaneRotate("地面旋转角度",Vector) = (0,0,0,0) //地面法线 _PlanePosition("地面位置",Vector) = (0,0,0,0) //地面位置 _GradientTex ("GradientTex", 2D) = "white" {}//渐变贴图 _DiffuseCo原创 2020-05-11 11:03:21 · 3742 阅读 · 1 评论 -
UnityShader 阴影投射接收的理解及简单应用
阴影投射的两个要点:1、接收其他物体阴影的投射点A在相机的深度值设为 Z1 ,点A在阴影纹理的深度值为Z2 ,如果Z1 >Z2 ,则该点处于相机的可见范围并且处于阴影之中,即该点看得到阴影2、向其他物体投射阴影Unity会在当前物体的Shader中检查:①是否有{“LightMode” = “ShadowCast”,有的话则可以投射阴影。②没有ShadowCast则在Fallbac...原创 2020-05-04 15:09:40 · 2745 阅读 · 0 评论 -
UnityShader前向渲染之三种不同光源的叠加应用
之前博客中所写的shader全都只能接受场景中的强度( 光源脚本上的Intensity )最高的平行光,那其他两种光源①点光源②聚光灯怎么接收呢? 先上代码// Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight'Shader "ShaderPath/ForwardAddShader"//shader的选择路径{...原创 2020-04-30 17:59:19 · 759 阅读 · 0 评论 -
UnityShder的一些基础
做的很好的冯乐乐《UnityShader入门精要》的摘要原创 2020-04-30 16:07:56 · 254 阅读 · 0 评论 -
UnityShader两个Pass的使用
基于上一篇UnityShader的透明度混合,改进的双Pass,可以让一些物体看起来更真实。建议阅读下面的解释再回过来看代码Shader "ShaderPath/DoublePassAlphaShader"//shader的选择路径{ Properties//该Shader可控的属性 { _DiffuseColor ("DiffuseColor",Color) = (1,1,1,1)...原创 2020-04-29 15:44:50 · 8121 阅读 · 0 评论 -
UnityShader透明度混合的应用
前言:相较于透明度测试,透明度混合可以得到真正的半透明效果,他会使用 当前片元的透明度 作为混合因子与 颜色缓冲中的颜色 进行混合,得到新的颜色。 但是需要 关闭深度写入!!!Reason: 基于一个现实逻辑,对于透明的物体我们能够看到物体的内部,此时如果打开 深度写入 物体内部的“景象”会因为离相机远,深度测试不通过而被丢弃,就看不到了!(PS.物体内部的景象一定比看到的表面要离相机远=3=)...原创 2020-04-24 22:43:08 · 248 阅读 · 0 评论 -
UnityShader透明度测试的应用
文前简述:使用透明度测试所达到的透明效果很差,除非有特殊需求否则很少使用。原理:给定一个透明度阈值x,超过x的片元直接舍弃,小于的就显示,所以会看到直接消失的情况。Shader "ShaderPath/CutAlphaShader"//shader的选择路径{ Properties//该Shader可控的属性 { _AlphaTex ("AlphaTex", 2D) = "white...原创 2020-04-24 17:47:05 · 213 阅读 · 0 评论 -
UnityShader遮罩纹理的应用
原理:将遮罩信息存在遮罩纹理的某一个颜色通道(RGBA)中,在Shader中将其读出,并将其合并到要遮挡的地方(也就是乘法*),因为颜色通道的值是(0,1),采集到的0的部分就会被遮挡,1的地方就会显示出来,介于两者之间的就显示出一种渐变的状态Shader "ShaderPath/MaskShader"//shader的选择路径{ Properties//该Shader可控的属性 { ...原创 2020-04-21 20:12:19 · 280 阅读 · 0 评论 -
UnityShader渐变纹理的应用
渐变纹理的原理:从一张渐变纹理上根据反射光线的强度去采集颜色Shader "ShaderPath/GradientShader"//shader的选择路径{ Properties//该Shader可控的属性 { _GradientTex ("GradientTex", 2D) = "white" {}//渐变贴图 _DiffuseColor ("DiffuseColor",Col...原创 2020-04-21 17:25:26 · 844 阅读 · 0 评论 -
UnityShader法线纹理的应用(在世界空间下计算)
与前文的区别就是在不同的空间下计算,效果相同,可以根据方便在不同的空间下实现Shader "ShaderPath/WorldNMShader"//shader的选择路径{ Properties//该Shader可控的属性 { _MainTex ("MainTex", 2D) = "white" {}//纹理贴图 _BumpTex ("BumpTex", 2D) = "white" ...原创 2020-04-17 23:14:59 · 738 阅读 · 0 评论 -
UnityShader法线纹理的应用(在切线空间下计算)
法线纹理能产生凹凸假象的原理:法线纹理存放着模型所有点的法线信息,光线在不同的凹凸情况下会产生阴影高光,产生一种模型也有了凹凸的假象,但从模型的边缘还是可以看出是平整的。Shader "ShaderPath/NMShader"//shader的选择路径{ Properties//该Shader可控的属性 { _MainTex ("MainTex", 2D) = "white" {}//...原创 2020-04-16 21:06:39 · 331 阅读 · 0 评论 -
UnityShader高光反射及简单实现
Phong的定义:Blinn-Phong的定义:Shader "ShaderPath/SpecularShader"//shader的选择路径{ Properties//该Shader可控的属性 { _DiffuseColor ("DiffuseColor",Color) = (1,1,1,1)//漫反射的主色调 _SpecularColor ("SpecularColor"...原创 2020-04-16 19:28:26 · 320 阅读 · 0 评论 -
UnityShader半罗伯特反射的简单实现
罗伯特反射定义:半罗伯特反射定义:Shader "ShaderPath/DiffuseShader"//shader的选择路径{ Properties//该Shader可控的属性 { _DiffuseColor ("DiffuseColor",Color) = (1,1,1,0)//漫反射的主色调 } SubShader//子着色器 { // 以下均为默认值,详情可查看...原创 2020-04-16 16:59:36 · 181 阅读 · 0 评论 -
一个简易Shader,图片Shader
该Shader仅仅是作为一个引子,作用是将图片渲染到模型上,代码里面做了必要的注释。Shader "ShaderPath/ShaderName"//shader的选择路径{ Properties//该Shader可控的属性 { _MainTex ("Texture", 2D) = "white" {}//_MainTex在shader里面使用,Texture在材质上看到的(可以是中文)...原创 2020-04-16 16:04:21 · 326 阅读 · 0 评论 -
UnityShader_Cull、ZWrite 、ZTest
Cull:剪裁ZWrite:深度写入ZTest:深度测试Cull Back|Front|OffCull Back(默认): 把图片的背面剪裁,相当于背面不进行渲染Cull Front:把图片的正面剪裁,相当于正面不进行渲染Cull Off:关闭剔除,正反面都渲染ZWrite On|OffZWrite On(默认): 深度写入开启ZWrite Off:深度写入关闭深度写入开启后决...原创 2020-04-14 10:49:54 · 702 阅读 · 0 评论