Skyshop: Image-Based Lighting Tools & Shaders 插件地址:https://www.assetstore.unity3d.com/en/#!/content/8880
相关使用教程:http://www.narkii.com/club/thread-300367-1.html
http://blog.sina.com.cn/s/blog_6364792d0102uys6.html
这些基本上都是使用了HDRI 高动态范围图像 作为场景中的天空实现天空的光线照明,而在AR中,如Vuforia等是实时拍摄现实中的场景的,所有要动态更改天空的光照效果。
首先导入Skyshop的插件,然后在场景中创建带有Sky和SkyManager脚本空物体或直接右键创建。
把场景中的灯光都删除掉。
调节Sky脚本中的相关属性。
把模型的Shader设置为Marmoset下的Shader,譬如Bumped Specular IBL
在场景中绑定一个脚本,实时更新Sky的SkyboxCube属性和SpecularCube属性。
using UnityEngine;
using System.Collections;
using mset; public class SkyTest : MonoBehaviour { public Cubemap testCubmap; // Use this for initialization
private Cubemap cubmap;
private Camera textureCamera;
private GameObject textureCameraObj;
private Sky sky;
void Start () {
sky=GameObject.Find("Sky").GetComponent<Sky>();
cubmap = new Cubemap(, TextureFormat.ARGB32, false);
} // Update is called once per frame
void Update()
{
if (textureCameraObj == null)
{
textureCameraObj = GameObject.Find("TextureBufferCamera");
}
if (textureCameraObj!= null)
{
textureCamera = textureCameraObj.GetComponent<Camera>();
}
if (textureCamera != null)
{
textureCamera.RenderToCubemap(cubmap);
sky.SkyboxCube = cubmap;
sky.SpecularCube = cubmap; //textureCamera.RenderToCubemap(testCubmap);
//sky.SkyboxCube = testCubmap;
}
}
}
Cubmap可以自己New一个也可以使用属性面板中传过来的Cubmap。
最后通过摄像头识别图片进行相关属性和Shader的调节来打到你想要的效果。