摘要: 顶点高光反射 像素高光反射 阅读全文
posted @ 2017-09-12 17:45 筱槲 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 实现了逐顶点和逐像素的兰伯特光照模型,我们再来看一下兰伯特光照模型的变种--半兰伯特光照。经过上面的对比,逐像素光照计算会获得更好的效果,所以我们下面就采用逐像素的方式来实现半兰伯特光照模型。 上面的shader计算光照的时候,我们计算法线方向和光方向的点乘值时,得到的结果有可能是负数,而兰伯特光照 阅读全文
posted @ 2017-09-12 15:26 筱槲 阅读(1942) 评论(0) 推荐(0) 编辑
摘要: 漫反射光照符合兰伯特定律 : 反射光线的强度 与 表面法线 和 光源方向 之间的夹角的余弦值成正比 . 逐顶点光照的计算量往往要小于逐像素光照 . 逐顶点光照依赖于线性插值来得到像素光照 , 当光照模型中有非线性的计算的时候 , 逐顶点光照就会出问题 , 例如计算高光反射 . 逐顶点光照会在渲染图元 阅读全文
posted @ 2017-09-12 11:03 筱槲 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 一渲染细节: 在正向渲染中,影响物体最亮的几个光源使用逐像素光照模式(per-pixel lit mode)。 接下来,最多有4个点光源会以逐顶点渲染方式被计算。 其他光源将以球面跳河的方式进行计算。 判断一个光源是否为逐像素光源的依据: 渲染模式被设置为不重要的光源不用逐像素光照模式计算。 最亮的 阅读全文
posted @ 2017-09-11 11:24 筱槲 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 一、变换矩阵 UNITY_MATRIX_MVP 从object space转到 projection space(投影) UNITY_MATRIX_MV 从object space转到camera space UNITY_MATRIX_V 从world space转到camera space UNI 阅读全文
posted @ 2017-09-07 18:03 筱槲 阅读(3271) 评论(0) 推荐(1) 编辑
摘要: 一、子着色器SubShader 写法:SubShader{ Tags{ "Queue"="Transparent" } LOD 100 } 一、标签(Tags) 1.”Queue”标签。定义渲染顺序。预制的值为 (1)”Background”。值为1000。比如用于天空盒。 (2)”Geometry 阅读全文
posted @ 2017-09-07 17:02 筱槲 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 一、固定功能着色器(Fixed Function Shader) 固定功能着色器为固定功能渲染管线的具体表现。功能较简单兼容比较老的机器 二、表面着色器 存在于Unity3D中由U3D发扬光大的一门技术。Untiy3D为我们把Shader的复杂性包装起来,降低shader的书写门槛,创建了表面着色器 阅读全文
posted @ 2017-09-07 11:40 筱槲 阅读(4702) 评论(0) 推荐(0) 编辑
摘要: 当GPU从CPU得到渲染命令后,就会进行一系列流水线操作,最终把图元渲染到屏幕上。 对于几何阶段和光栅化阶段,开发者无法拥有绝对的控制权,其实现的载体是GPU。GPU通过实现流水线化,大大加快了渲染速度。 几何阶段和光栅化阶段可以分成若干更小的流水线阶段,这些流水线阶段由GPU实现,每个阶段GPU提 阅读全文
posted @ 2017-08-30 17:22 筱槲 阅读(2382) 评论(0) 推荐(0) 编辑
摘要: 当我们引用别人的插件时,有可能会带来很多不必要的警告,这会影响我们自己对警告的处理,这里提供几种方式过滤掉一些不希望显示的警告 方法一、 1. 创建文件“mcs.rsp” 2. 保存文件到你工程的Assets文件下面 3. 一行写一个你要废止的警告(写法看下面) 4. 修改任意一个文件,Unity会 阅读全文
posted @ 2017-08-30 10:56 筱槲 阅读(1158) 评论(0) 推荐(0) 编辑
摘要: 一、在代码中动态改变RectTransform大小的方法如下所示: 1:直接对sizeDelta属性进行赋值,其中X和Y可以对应理解成width和height。sizeDelta的具体含义:若anchors是一个点的话则代表宽高,否则为到锚点的距离 var rt = gameObject.GetCo 阅读全文
posted @ 2017-08-30 10:54 筱槲 阅读(16356) 评论(1) 推荐(0) 编辑