
shaderlab
文章平均质量分 68
土土土~
黄梅时节家家雨,青草池塘处处WA
展开
-
unity shader 复杂光照(前向渲染)
前向渲染在以往的shader编写中,都是只有针对一个光源,即平行光,对应的也只有一个pass当存在多个光源的时候,既有平行光,也有点光和聚光的时候,前向渲染会对每一个灯光进行一次pass的计算,所以当物体较多的时候,比较浪费性能之前的shader中总会有这么一段代码这就是告诉unity,该pass使用前向渲染的ForwardBase路径,前向渲染还包括一种路径叫做ForwardAdd其中ForwardBase是用来计算环境光,自发光,以及最重要的平行光(只计算一次,除非双面渲染)Forward原创 2021-06-18 18:31:42 · 459 阅读 · 2 评论 -
shader-透明效果学习
透明度测试一种比较极端的透明方法,它无法实现半透明效果,它的透明度要么为1,要么为0,也就是要么完全透明,要么完全不透明。透明度测试就是要判断一下,吧不满足条件的像素值剔除掉在shaderlab中,为什么提供了一个内置的函数,clip(float x)如果传入的参数小于0 那么该像素块就会被剔除掉Shader "Custom/AlphaTest"{ Properties { _MainTex ("Albedo (RGB)", 2D) = "white"原创 2021-06-17 17:29:42 · 363 阅读 · 2 评论 -
shader学习2-光照
漫反射光强和 物体表面法线与光的方向的夹角的余弦值有关我们需要知道 入射光线的颜色 物体表面的法线和光源的方向计算公式为:光的反射系数 * 光的颜色 * (法线和光线方向的夹角余弦)逐顶点漫反射计算都写在了顶点着色器之中Shader "Custom/DiffuseVertex"{ SubShader { // 逐顶点的漫反射 pass{ Tags{"LightMode"="ForwardBase"}原创 2021-06-11 10:12:54 · 238 阅读 · 3 评论 -
shader学习1-语法
shader初步认识在vscode里面装上 shaderlabvscode插件就可以写了Shader "Custom/Test"{//针对某个显卡的subshader subshader{ pass{ CGPROGRAM #pragma vertex vert //定义定点着色器的函数名称 #pragma fragment frag //定义片原着色器的函数名称 //输入的是模型空间的坐标,输出的是原创 2021-06-11 09:36:12 · 249 阅读 · 0 评论