摘要: 镜面反射计算公式: float3 reflectVector=reflect(-lightDir,normal) 光线方向和法线方向求出反射方向 float specDot=max(dot(reflectionVector,eyeDir),0.0) 反射方向和眼睛方向求点积 float spec=p 阅读全文
posted @ 2019-08-12 20:32 彩色的梦 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 漫反射的计算公式: float brigthness=dot(normal,lightDir) 法线和光线方向得到亮度 float3 pixelColor=brightness*lightColor*surfaceColor 表面像素最终的颜色 1、定义漫反射的变量,法线向量 一个是对象空间坐标的法 阅读全文
posted @ 2019-08-12 18:36 彩色的梦 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 渲染坐标变换: Unity中可以通过内置矩阵实现坐标空间的相互转换,主要是通过矩阵乘法。 比如内置矩阵: UnityObjectToWorldDir(int float3 dir) 对象空间方向矢量-->世界空间方向矢量; UnityObjectToWorldNormal(int float3 no 阅读全文
posted @ 2019-08-12 16:38 彩色的梦 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 这是一个Unity简单的无光照着色器的简单编写 修改物体的颜色; 说明一点:Unity着色语言是CG语言和ShaderLab语言的混合; CGPROGRAM ENDCG都属于CG语言,其他的是ShaderLab语言; 他们之间的联系是属性在ShaderLab,而变量定义必须和属性名一样这样就实现了与 阅读全文
posted @ 2019-08-12 14:38 彩色的梦 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 物体着色过程: 1、顶点和相关数据发送到顶点着色器; 2、顶点着色器在每个顶点上运行; 3、顶点着色器为每个顶点输出一个数据结构体,包括顶点在最终图像上的颜色; 4、顶点序列组成图形基元(三角形,直线); 5、删格式化器将接受图形基元并将其转化为潜在的像素,包括一些差值运算,在GPU中运行不可以自定 阅读全文
posted @ 2019-08-12 08:17 彩色的梦 阅读(173) 评论(0) 推荐(0) 编辑