
shader
ysera_wang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Transparent和Fade的区别
在shader中对于transparent来说,比较适合玻璃等材质的渲染而对于Fade来说,比较适合消隐材质原创 2021-03-22 13:44:07 · 749 阅读 · 0 评论 -
shader基础知识之TRANSFORM_TEX和_MainTex_ST
我们在变量声明中是float4 _MainTex_ST_MainTex_ST.xy对应的是tiling 复制粘贴_MainTex_ST.zw对应的是offset 位移我们拿序列帧来举例 在一个贴图上有很多小的贴图在unity中我们将tiling的uv设置为0.5 0.5移动offset中的uv值,实现序列帧的移动而TRANSFORM_TEX则是拿顶点的uv和材质球中的tiling和offset作运算,确保材质球中的缩放和偏移是正确的v.uv是顶点的uv在vert函数中,o.u转载 2021-01-27 15:59:03 · 1333 阅读 · 0 评论 -
unity中的阴影
ShadowMap技术原理是,将摄像机与光源的位置重合,场景中光源的阴影位置就是摄像机看不到的位置。在forward rendering path中,场景中最重要的平行光在forwardbase中默认是开启了阴影的,unity就会为该光源计算其shadowmap(阴影映射纹理),这张纹理的本质也是一张深度图,这张深度图上的信息记录了,从光源的位置出发,能看到的场景中距离它最近的表面的信息。为了得到这张shadowmap我们按照正常的流程应该是调用Base pass和Addition Pass来更新深度信转载 2020-12-22 18:02:27 · 1219 阅读 · 0 评论 -
帧调试器(Frame Debugger)
从上图可以看出,unity渲染这个场景总共进行了6个渲染事件,因为场景中只有一个物体,因此这6个渲染事件都是用来渲染该物体的光照结果。Event1:Clear 首先清除颜色、深度和模板缓冲Event2: DrawMesh 利用第一个pass,ForwardBase将平行光的光照渲染到帧缓存中。Event3——6:使用shader中的第二个pass,AdditionalPass依次将四个点光源的光照应用到物体上,得到最后的渲染结果。...原创 2020-12-22 11:56:06 · 641 阅读 · 0 评论 -
光源类型
光源有5个属性:位置、方向、颜色、强度和衰减1、方向:_WorldSpaceLightPos02、颜色和强度:_LightColor0(此变量已经是颜色和强度相乘后的结果)3、衰减:平行光没有衰减Unity处理这些光源的顺序取决于其重要程度...原创 2020-12-22 11:16:19 · 252 阅读 · 0 评论 -
几何着色器
对于tessellation着色器而言,输入的是patch,然后设置tessellation factor,但是对于patch只能生成顶点,不能遗弃其中的patch。而geometry shader可以访问一个图元的所有的点,可以改变图元的类型,并且可以遗弃图元。...原创 2020-12-11 11:03:30 · 154 阅读 · 0 评论 -
Tessellation shader
曲面细分包括两个可编程的着色器:曲面细分控制着色器(hull shader)和曲面细分计算着色器(domain shader)曲面细分控制器起到一个数据传递的作用,hull shader做了以下两个工作:1、决定一个patch需要被细分多少次2、对于输入的patch数据需要进行哪种特殊的变形[UNITY_patchconstantfunc(“hsconst”)]中的hsconst是计算factor的方法,在此方法中计算每个边的Tessellation factor和内部的Tessellation f转载 2020-12-09 14:49:05 · 692 阅读 · 0 评论 -
Deferred Rendering延迟渲染技术
延迟渲染技术是将**着色计算延迟到深度测试之后**进行处理的一种渲染方法。 其优势是将**光源的数目**和场景中**物体的数目**在复杂度层面上完全分开。能够在渲染成百上千光源的场景的同时保持很高的帧率。 在介绍延迟渲染之前我们首先需要提及的就是Forward Rendering,正向渲染是根据所有的光源照亮一个物体,之后再渲染下一个物体。其简单也容易实现。 延迟渲染的原理是:先将所有的物体都绘制到屏幕的缓冲空间(G_buffer)中,然后再逐光源对该缓冲进行着色,这样就避免了因为计算没有...原创 2020-09-08 17:35:24 · 433 阅读 · 0 评论 -
Shader Stencil
对于每一个像素值来说,其中都会存储一个模板值(像是深度值)模板测试一般指 stencil buffer与自定义的Ref相比较的结果for example:stencil{Ref 2Comp equal//表示通过模板测试的条件,Pass keepFail decrWarpZFail keep}...原创 2020-09-08 15:45:07 · 607 阅读 · 0 评论 -
屏幕后处理根据深度纹理构建每个像素在世界空间的位置
1、首先我想先看一下左手坐标系和右手坐标系,他俩的区别在与z轴的方向是相反的(大拇指是x的方向,食指是y轴的方向)2、正文:原理:利用深度纹理和当前帧的视角*投影矩阵的逆矩阵来求得当前像素在世界空间的坐标。// Get the depth buffer value at this pixel.//从深度纹理图中得到当前像素点的深度float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv_depth);// H is the viewport原创 2020-06-20 15:06:14 · 561 阅读 · 0 评论 -
Shader描边效果总结
这篇是总结篇,也不是什么解析,就是为了我自己到时候找的时候方便嘿嘿嘿~添加链接描述(原文)描边效果的实现是,在正常模型的渲染状态下,在模型外面扩展出一个描边效果。总结下来就是有两个pass,其中一个pass可以把另一个pass包住,想法是让模型的形状像外扩,因此是要在vert函数中进行更改。v2f vert(appdata_full v) { v2f o; //在vertex阶段,每个顶点按照法线的方向偏移一部分,不过这种会造成近大远小的透视问题 //v.vertex.x原创 2020-05-14 09:45:52 · 706 阅读 · 1 评论 -
shadertoy知识点小总结20200512
今天是汶川地震12周年,其实早上来的时候我并不知道,是我同事和我说我才知道的。今天感觉很疲惫,但还是想总结一下,毕竟我这个金鱼的记忆力是靠不住的。1、首先是几个函数的总结(1)step函数:这个函数我其实见过很多遍了,但是我老是记不住,step(a,x)当x<a时 函数为0,其他情况函数为1(2)floor函数:成为阶梯函数,向下取整函数,取得当前小于或者等于x值的整数,需要注意的是,floor(-2.2)=-3 floor(2.2)=2(3)fmod函数:取余函数 一开始对于这个函数是一原创 2020-05-13 14:56:38 · 521 阅读 · 0 评论 -
彩色光圈shader完全剖析
http://blog.youkuaiyun.com/stalendp/article/details/40690185Shader "shadertoy/TotalNoob" { //https://www.shadertoy.com/view/XdlSDs Properties{ iMouse ("Mouse Pos", Vector) = (100,100,0,0) iChannel0("iChannel0", 2D) = "white" {} iChannelResolution0 ("i原创 2020-05-12 15:26:20 · 357 阅读 · 0 评论 -
Shader实例分析之彩色光圈之值域分析
Shader实例分析之彩色光圈https://blog.youkuaiyun.com/stalendp/article/details/40690185链接如下,我在这里想总结的是其中一个值域的分析。Shader "shadertoy/TotalNoob" { //https://www.shadertoy.com/view/XdlSDs Properties{ iMouse ("Mouse Pos", Vector) = (100,100,0,0) iChannel0("iChannel0", 2D原创 2020-05-10 19:57:10 · 268 阅读 · 0 评论 -
Shader中两物体叠加来回闪烁的问题
https://blog.youkuaiyun.com/linjf520/article/details/94596104这篇博文其实讲的很清楚啦,但是因为自己看嘛~我想写的清楚一点,假如两个物体叠加在一起有闪烁情况,是因为他们公用了一个z,因此在shader中可以将其z修改。Properties { _OffsetFactor("Offset Factor", Float) = 0 _OffsetUnits("Offset Units", Float) = 0 } SubShader {原创 2020-05-10 13:12:20 · 700 阅读 · 0 评论 -
实现透明不透并且和原standard shader效果一样但没有阴影而且可以在手机端用刚才发现一个bug就是在电脑端看使用这个shader的会有金属光泽来回变
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "aya/Standard"{ Properties { _Color("Color", Color) = (1,1,1,1) _...原创 2019-07-30 09:56:44 · 480 阅读 · 0 评论