随笔分类 -  Shader

摘要:表面着色器和之前无光照着色器不同,其中没有顶点着色器和片元着色器,而增加了光照函数; 接下写了一个求两个贴图的光照效果 两个贴图做插值运算: 添加漫反射贴图 阅读全文
posted @ 2019-08-13 21:06 彩色的梦 阅读(514) 评论(0) 推荐(0)
摘要:镜面反射计算公式: float3 reflectVector=reflect(-lightDir,normal) 光线方向和法线方向求出反射方向 float specDot=max(dot(reflectionVector,eyeDir),0.0) 反射方向和眼睛方向求点积 float spec=p 阅读全文
posted @ 2019-08-12 20:32 彩色的梦 阅读(743) 评论(0) 推荐(0)
摘要:漫反射的计算公式: float brigthness=dot(normal,lightDir) 法线和光线方向得到亮度 float3 pixelColor=brightness*lightColor*surfaceColor 表面像素最终的颜色 1、定义漫反射的变量,法线向量 一个是对象空间坐标的法 阅读全文
posted @ 2019-08-12 18:36 彩色的梦 阅读(439) 评论(0) 推荐(0)
摘要:渲染坐标变换: Unity中可以通过内置矩阵实现坐标空间的相互转换,主要是通过矩阵乘法。 比如内置矩阵: UnityObjectToWorldDir(int float3 dir) 对象空间方向矢量-->世界空间方向矢量; UnityObjectToWorldNormal(int float3 no 阅读全文
posted @ 2019-08-12 16:38 彩色的梦 阅读(217) 评论(0) 推荐(0)
摘要:这是一个Unity简单的无光照着色器的简单编写 修改物体的颜色; 说明一点:Unity着色语言是CG语言和ShaderLab语言的混合; CGPROGRAM ENDCG都属于CG语言,其他的是ShaderLab语言; 他们之间的联系是属性在ShaderLab,而变量定义必须和属性名一样这样就实现了与 阅读全文
posted @ 2019-08-12 14:38 彩色的梦 阅读(214) 评论(0) 推荐(0)