-
Notifications
You must be signed in to change notification settings - Fork 571
多光源
在 Ray-MMD 中内置的光源有 点光源、聚光灯、平行灯、球形光源、方形区域光,管状光源,圆盘光源 以及 IES,每一个光源都会实时的根据物体的法线贴图,光滑度,金属程度,环境光遮蔽等计算出不同的光照效果,你可以使用这些光源作为辅灯,营造出更多的气氛,所有光源的衰减遵循物理的"与距离的平方成反比",你可以想象光源均匀照射在一个半径为1的球中,当球的半径为2时和3时,光线分布在球面上的面积将会是原来的4倍和9倍.
平行光模拟光从无限远照射物体时,每条光线到达物体的角度可以被忽略不计,光线将总是互相平行的,所以也被称为太阳光,平行光不会考虑光源的坐标,放置在场景的任何位置都不会影响光照效果,只有旋转的时候会影响平行光的光照,由于平行光的性质需要对整个场景进行阴影计算,因此它的计算开销是所有多光源阴影之中最大的,并且它的阴影质量只适合在很高的质量下对人物打光, 当你想绑定一个骨骼给主光源时你可能会用上它,或者不计算光源的镜面光
光源从一点出发,向周围均匀发出光线,对范围内的所有物体进行光照,点光源需要计算范围内物体的阴影,会导致阴影计算开销很大,同时它的阴影质量不适合用于人物打光
聚光灯不考虑光源的体积光源从一点出发,在固定的方向以一定的锥形角度范围照射物体,椎体的边缘亮度会逐渐淡化,并且椎体的角度可以通过(Angle+/-)表情控制,用于模拟灯罩,手电筒,车头的远光灯,阴影的质量是所有光源中最好的,因此它很适合用来照射角色身上模拟舞台灯光的效果
在聚光灯的行为上同时采样IES纹理(IES定义了其光线在不同角度时的光通量,因此某些区域会更亮或更暗,从而模拟光从某些区域透出而照射场景周围)
光源将会从一个平面朝向固定的范围照射,用于模拟显示器,屏幕,手机等,由于区域光的的光源需要考虑光源体积,真实的计算它的阴影在实时中是很难办到的,所以使用的聚光灯阴影代替
从光源的位置向周围发出光线并且考虑了光源的体积,对范围内的所有物体进行光照,由于区域光的的光源需要考虑光源体积,真实的计算它的阴影在实时中是很难办到的,所以使用的点光源阴影代替
光源将会从一个平面朝向固定的范围照射,用于模拟远射灯,由于区域光的的光源需要考虑光源体积,真实的计算它的阴影在实时中是很难办到的,所以使用的聚光灯阴影代替
均匀的照亮周围的物体, 用于模拟灯管的光源,由于区域光的的光源需要考虑光源体积,真实的计算它的阴影在实时中是很难办到的,所以使用的点光源阴影代替
- 载入
ray.x
、天空球,和任意的一个地面模型
- 在 Lighting 目录中拖拽一个
PointLight.pmx
至窗口中
- 检查MME面板中,LightingMap板块是否有挂在
point_lighting.fx
(如果没有,检查是否存在非英文路径) - 然后修改表情中的 R/G/B+ 和 Radius+ 调到最大,效果如图
- 如需要阴影可以在LightMap中选择
Lighting/PointLight/Default/point_lighting_with_medium.fx
(分别有low,meidum,high,very high) - 其它光源操作方式和点光源差不多,一些宽度、高度、范围、半径、都在pmx表情中的右左下角
- 光源自发光,可以在MME的
MaterialMap
选择一个Materials/Emissive/material_lighting.fx
给 PointLight.pmx - 需要更多的光源可以将
PointLight.pmx
复制一份,或者重复载入,其它光源同理
- 在Lighting目录中拖拽一个RectangleLight.pmx至窗口
- 检查MME面板中,LightingMap板块是否有挂在rectangle_lighting.fx (如果没有,挂载上去)
- 然后修改表情中的RGB+和Width/Height,以及将Range+调到最大,效果如图
- 修改rectangle_lighting.fx中的视频贴图,修改后保存 (可复制一份,复制的同时要挂载新的fx)
- 复制一份material.fx改为material_xxxxx.fx
- 将USE_CUSTOM_MATERIAL改为 1,const float3 albedo = 1.0; 改为 0.0;
- 将发光贴图进行如下设置,修改后保存
- 最后在MME里MaterialMap将material_xxxxx.fx以及Main中main.fx赋予给RectangleLight.pmx效果如图
- 如果图片是GIF/APNG格式的纹理可以设置
- (VIDEO / ALBEDO / EMMISIVE) _MAP_ANIMATION_ENABLE 启用GIF/APNG动画
- (VIDEO / ALBEDO / EMMISIVE) _MAP_ANIMATION_SPEED 控制播放速度 (最小倍率为1)
- LED并且支持视频/屏幕纹理的播放
- 将Lighting目录中的DummyScreen.x 载入
- 在菜单->背景->加载AVI文件 (注 此为可选项,此外AVI文件可以使用MMBG插件载入非avi格式视频)
- 然后选择菜单->背景->(全画面/AVI背景)
- 最后将RectangleLight.pmx在LightMap板块选择LED.fx,在MaterialMap板块选择material_led.fx即可