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(512, 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的调节来打到你想要的效果。