public override void SetMaterial(PanoManager.EPANOTEXTUREMODE texMode, Vector2 mediaSize, Vector2 contentSize, params PanoManager.PanoTextureForOneDevice[] texDeviceArr) { ATrace.Log(string.Format("Pano11Mesh SetOneMaterial: texMode:{0} mediaSize:{1} contentSize:{2}", texMode, mediaSize, contentSize )); int i = 0; ATrace.Log("Pano11Mesh texDeviceArr.Length:" + texDeviceArr.Length); foreach (Renderer r in _Renderers) { Material mat = new Material(PanoManager.Instance.GetShader(texMode)); r.material = mat; if (texDeviceArr.Length > i)//应当传入两个设备的图集 { r.gameObject.SetActive(true); //两个镜头的两张贴图,所以TexArr取不同index SetOneMaterial(mat, 0, 1, GetContentRect(mediaSize, contentSize), texMode, texDeviceArr[i]); } else { r.gameObject.SetActive(false); } i++; } base.SetMaterial(texMode, mediaSize, contentSize, texDeviceArr); }
void SetPlaneMeshMaterial(PanoManager.EPANOTEXTUREMODE texMode, Texture[] texarr, Material mat) { if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_YUV) { if (texarr.Length > 0) { mat.SetTexture("_MainTex", texarr[0]); } if (texarr.Length > 1) { mat.SetTexture("_MainTexU", texarr[1]); } if (texarr.Length > 2) { mat.SetTexture("_MainTexV", texarr[2]); } } else if (texMode == PanoManager.EPANOTEXTUREMODE.EMP_RGB) { if (texarr.Length > 0) { mat.SetTexture("_MainTex", texarr[0]); } } else if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_SurfaceToTexture) { if (texarr.Length > 0) { mat.SetTexture("_MainTex", texarr[0]); } } }
public Shader GetShader(PanoManager.EPANOTEXTUREMODE texMode) { Shader shader = null; if (texMode == PanoManager.EPANOTEXTUREMODE.EMP_RGB) { shader = Shader.Find("Unlit/RGB"); } else if (texMode == PanoManager.EPANOTEXTUREMODE.EMP_ALPHARGB) { shader = Shader.Find("Unlit/AlphaRGB"); } else if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_YUV) { shader = Shader.Find("Unlit/AlphaYUV"); } else if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_SurfaceToTexture) { #if UNITY_5_6 shader = Shader.Find("Unlit/SurfaceToTexture"); #else shader = Shader.Find("Unlit/AlphaRGB"); #endif } return(shader); }
protected void SetOneMaterial(Material mat, int index, int sum, Rect rc, PanoManager.EPANOTEXTUREMODE texMode, PanoManager.PanoTextureForOneDevice texDevice) { ATrace.Log(string.Format("SetOneMaterial: index:{0} sum:{1} rc:{2}", index, sum, rc.ToString())); PanoManager.PanoTextureForOneDevice dv = texDevice; if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_YUV) { if (dv._TextureArr.Length > 0) { SetOneMaterialOneParam(mat, index, sum, rc, dv._TextureArr[0], "_MainTex"); } if (dv._TextureArr.Length > 1) { SetOneMaterialOneParam(mat, index, sum, rc, dv._TextureArr[1], "_MainTexU"); } if (dv._TextureArr.Length > 2) { SetOneMaterialOneParam(mat, index, sum, rc, dv._TextureArr[2], "_MainTexV"); } } else if (texMode == PanoManager.EPANOTEXTUREMODE.EMP_RGB) { if (dv._TextureArr.Length > 0) { SetOneMaterialOneParam(mat, index, sum, rc, dv._TextureArr[0]); } } else if (texMode == PanoManager.EPANOTEXTUREMODE.EPM_SurfaceToTexture) { if (dv._TextureArr.Length > 0) { SetOneMaterialOneParam(mat, index, sum, rc, dv._TextureArr[0]); } } }
public override void SetMaterial(PanoManager.EPANOTEXTUREMODE texMode, Vector2 mediaSize, Vector2 contentSize, params PanoManager.PanoTextureForOneDevice[] texDeviceArr) { int i = 0; foreach (Renderer r in _Renderers) { Material mat = new Material(PanoManager.Instance.GetShader(texMode)); r.material = mat; if (texDeviceArr.Length > 0) { SetOneMaterial(mat, 0, 1, GetContentRect(mediaSize, contentSize), texMode, texDeviceArr[i]); } i++; } base.SetMaterial(texMode, mediaSize, contentSize, texDeviceArr); }
public override void SetMaterial(PanoManager.EPANOTEXTUREMODE texMode, Vector2 mediaSize, Vector2 contentSize, params PanoManager.PanoTextureForOneDevice[] texDeviceArr) { int i = 0; foreach (Renderer r in _Renderers) { Material mat = new Material(PanoManager.Instance.GetShader(texMode)); r.material = mat; if (texDeviceArr != null && texDeviceArr.Length > 0)//默认设备只有一个,只取[0] { SetOneMaterial(mat, i, 2, GetContentRect(mediaSize, contentSize), texMode, texDeviceArr[0]); ATrace.Log(string.Format("SetMaterial:{0} {1}", i, r.gameObject.name)); } i++; } base.SetMaterial(texMode, mediaSize, contentSize, texDeviceArr); }
public override void ResetTexture() { Texture rtex = PanoManager.Instance.GetRenderTexture(); PanoManager.PanoTextureForOneDevice dv = PanoManager.Instance.GetPanoTextureDeviceArr(0); Texture[] texarr = dv._TextureArr; _HalfSphereMesh.sharedMaterial.SetTexture("_MainTex", rtex); if (texarr.Length > 0) { //Shader shader = PanoManager.Instance.GetCurrentShader(); Material mat = new Material(_PlaneMesh.sharedMaterial.shader); _PlaneMesh.sharedMaterial = mat; _PlaneMeshClone.sharedMaterial = mat; PanoManager.EPANOTEXTUREMODE texmode = PanoManager.Instance.GetTextureMode(); SetPlaneMeshMaterial(texmode, texarr, mat); } }
public virtual void SetMaterial(PanoManager.EPANOTEXTUREMODE texMode, Vector2 mediaSize, Vector2 contentSize, params PanoManager.PanoTextureForOneDevice[] texDeviceArr) { //SetFlipScale(); }