场景中存在一个足够强大的黄色Pixel平行光,强大到可以保证它一定会被ForwardBase内的_WorldSpaceLightPos0所捕捉,从而不会让任何其他Pixel光源落到ForwardBase内,而只会被放到ForwardAdd Pass的_WorIdSpaceLightPos0内。最后,场景中还有5个RenderMode为Not Important,即Vertex光源,其色彩分别为青色、橙色、绿色、红色和蓝色。编译并运行此场景,然后依次将5个Vertex光源设为Pixel,结果如图7.8所示,右...
分类:
其他好文 时间:
2016-05-13 03:37:10
阅读次数:
712
总序如果没有光源,就不可能看到任何渲染结果。
AmbientLight: 环境光,基础光源,它的颜色会被加载到整个场景和所有对象的当前颜色上。
PointLight:点光源,朝着所有方向都发射光线
SpotLight :聚光灯光源:类型台灯,天花板上的吊灯,手电筒等
DirectionalLight:方向光,又称无限光,从这个发出的光源可以看做是平行光.
AmbientLight=>影响整个场景的光...
分类:
Web程序 时间:
2016-05-12 23:40:54
阅读次数:
2168
光源光是自然界中常见的现象,我们把正在发光的物体成为光源。与光相对立的是阴影,光被物体
遮挡住了便形成了阴影。根据光照的效果不同,THREE.js中抽象除了几种不同的光源。
聚光灯(THREE.SpotLight)
平行光源(THREE.DirectionalLight)
环境光源(THREE.AmbientLight)
半球光源(THREE.HemisphereLight)
点光源(THRE...
分类:
其他好文 时间:
2016-05-12 14:47:58
阅读次数:
254
在ForwardBase的Pass内,_WorldSpaceLightPos0和_LightColor0只会含有第一个Pixel行光的有效组合。在没有Pixel平行光时,_WorIdSapceLightPos0也可能含有1个Pixel点光源的位置数据,但是并没有有效的_LightColor0数据。在ForwardAdd内,_WorldSpaceLightPos0和_LightColor0只会含有Pixel光源,而且按照强度大小,平行光优先的顺序依次对每一个Pixe!光源执行一次。
在Forwar...
分类:
其他好文 时间:
2016-05-12 14:18:07
阅读次数:
126
对于LightMode=Vertex的Pass来说,有效存取光源的方法是读取unity_LightPosition[4]和unity_LightColor[4],这两个数组可以保证在Unity的3个RenderingPath下都有效工作。需要注意的是,unity_LightPosition[4]中的点光源的位置向量和平行光的方向向量都处于CameraSpace中。如果各位想写一个只逐Vertex照明的Shader,又不想操作这些恼人的数组,可以直接使用UnityCG.cginc中的ShadeVertexLi...
分类:
编程语言 时间:
2016-05-06 16:06:06
阅读次数:
256
投射阴影方法一:添加一个单独的pass通道pass{ Tags{"LightMode" = "ShadowCaster"}}ShadowCaster:阴影投射器,可以投射阴影方法二:添加物体默认阴影投射FallBack "Diffuse"然后给光线开启阴影:效果如下:(效果图为添加平行光)如果要让我们的shader支持点光源阴影投射,就添加 FallBack "Diffuse"添加点光源后...
分类:
其他好文 时间:
2016-03-23 22:24:43
阅读次数:
553
/** * * DirectionalLight方法 根据设置灯光的颜属性color, 强度属性intensity创建平行光光源。 * DirectionalLight 对象的功能函数采用定义构造的函数原型对象来实现。 * NOTE: SpotLight类型灯光实现了阴影,但是需要在场景中使用Mes
分类:
Web程序 时间:
2016-01-29 03:14:21
阅读次数:
198
按照书中的光照模型,光的类型分为3种:漫反射光,环境光,镜面光。光源类型也是三种:平行光,点光,聚光灯。其它需要的数据:材质,法线方向(光照角度)。现在,先以平行光源为例,因为它最简单,不需要去计算距离,角度对于光线的影响:先定义光源: //这里所有的定义只与光的颜色有关,就是定义光的颜色 ...
分类:
其他好文 时间:
2015-11-22 20:25:47
阅读次数:
563
1、首先打开unity3d创建一个新的项目。在新项目中创建Plane和Directional light平行光,Plane作为地面。 2、在项目中导入CharacterController包。把3rd Person Controller模型放到Plane上。 3、把3rd Person Co...
分类:
编程语言 时间:
2015-08-29 10:58:15
阅读次数:
659
前文完成了最基本的镜面反射着色器,单平行光源下的逐顶点着色(per-vertex lighting),又称为古罗着色(Gouraud shading)。这篇文章作为后续讨论更光滑的镜面反射方式,逐像素着色(per-pixcel lighting),又称为冯氏着色(Phong shading)逐像素着...
分类:
编程语言 时间:
2015-06-23 19:51:39
阅读次数:
204