void _internalCreateMesh(EyeName eye) { int i = (int)eye; if (_RenderPlane == null) { _RenderPlane = new GameObject("RicohThetaMesh_" + eye.ToString()); } MeshFilter mf = _RenderPlane.GetComponent <MeshFilter> (); if (mf == null) { mf = _RenderPlane.AddComponent <MeshFilter> (); } MeshRenderer mr = _RenderPlane.GetComponent <MeshRenderer> (); if (mr == null) { mr = _RenderPlane.AddComponent <MeshRenderer> (); } mf.mesh = MeshGenerator.GenerateSphere(1, 40, 40); mr.material = Mat; transform.localPosition = new Vector3(0, 0, 0); transform.localRotation = Quaternion.identity; transform.localScale = new Vector3(Scaler, Scaler, Scaler); }
public Texture GetEyeTexture(EyeName e) { if (m_Texture != null && m_Texture.PlayerTexture!=null) { return m_Texture.PlayerTexture [(int)e]; } return null; }
public override void CreateMesh(EyeName eye) { Eye = eye; MeshRenderer mr = GetComponent <MeshRenderer> (); if (mr == null) { _internalCreateMesh(eye); } else { CameraPostRenderer r = DisplayCamera.GetComponent <CameraPostRenderer>(); if (r == null) { r = DisplayCamera.gameObject.AddComponent <CameraPostRenderer>(); } r.AddRenderer(this); _RenderPlane = gameObject; mr.material = Mat; } /*if (eye == EyeName.LeftEye) * _RenderPlane.transform.localPosition = new Vector3 (-0.03f, 0, 0); * else * _RenderPlane.transform.localPosition = new Vector3 (0.03f, 0, 0);*/ }
public Material GetMaterial(EyeName eye) { if (_camRenderer [(int)eye] != null) { return(_camRenderer [(int)eye].Mat); } return(null); }
public Rect GetEyeTextureCoords(EyeName e) { if (isStereo) { if (e == EyeName.LeftEye) return new Rect (0, 0, 0.5f, 1); return new Rect (0.5f, 0, 0.5f, 1); }else return new Rect (0, 0, 1, 1); }
public Texture GetTexture(EyeName e) { if (_eyes.Length == 0) { return(NullTexture); } if (_type == OutputType.Mono || _type == OutputType.Omni || _eyes.Length == 1) { return(_eyes [0]); } return(_eyes [(int)e]); }
public override void CreateMesh(EyeName eye) { Eye = eye; Image.material = Mat; CameraPostRenderer r = DisplayCamera.GetComponent <CameraPostRenderer>(); if (r == null) { r = DisplayCamera.gameObject.AddComponent <CameraPostRenderer>(); } r.AddRenderer(this); _RenderPlane = gameObject; Enable(); }
public override void CreateMesh(EyeName eye) { Eye = eye; CameraPostRenderer r = DisplayCamera.GetComponent <CameraPostRenderer>(); if (r == null) { r = DisplayCamera.gameObject.AddComponent <CameraPostRenderer>(); } r.AddRenderer(this); _RenderPlane = gameObject; Receiver.OnFrameBlitted += OnImageArrived; }
public void CreateMesh(EyeName eye ) { Eye = eye; MeshRenderer mr = GetComponent<MeshRenderer> (); if (mr == null) { _internalCreateMesh (eye); } else { CameraPostRenderer r=DisplayCamera.GetComponent<CameraPostRenderer>(); if(r==null) { r=DisplayCamera.gameObject.AddComponent<CameraPostRenderer>(); } r.AddRenderer(this); _RenderPlane=gameObject; mr.material = Mat; } }
public override void CreateMesh(EyeName eye) { Eye = eye; MeshRenderer mr = GetComponent <MeshRenderer> (); if (mr == null) { _internalCreateMesh(eye); } else { CameraPostRenderer r = DisplayCamera.GetComponent <CameraPostRenderer>(); if (r == null) { r = DisplayCamera.gameObject.AddComponent <CameraPostRenderer>(); } r.AddRenderer(this); _RenderPlane = gameObject; mr.material = Mat; } }
public override void CreateMesh(EyeName eye) { Eye = eye; MeshRenderer mr = GetComponent <MeshRenderer> (); if (mr == null) { mr = _internalCreateMesh(eye); } if (mr != null) { mr.material = Mat; } _postRenderer = DisplayCamera.GetComponent <CameraPostRenderer>(); if (_postRenderer == null) { _postRenderer = DisplayCamera.gameObject.AddComponent <CameraPostRenderer>(); } _postRenderer.AddRenderer(this); Enable(); }
void _InitCameraRenderers() { if (_camsInited) { return; } Debug.Log("Creating Renderers"); EyeName[] eyes = new EyeName[] { EyeName.LeftEye, EyeName.RightEye }; //TelubeeCameraRenderer[] Targets = new TelubeeCameraRenderer[]{TargetEyeRight,TargetEyeLeft}; ICameraRenderMesh[] Targets = new ICameraRenderMesh[] { TargetEyeLeft, TargetEyeRight }; float[] camsOffset = new float[] { -0.03f, 0.03f }; // if (OculusCamera != null) { Camera mainCam; Camera[] cams = new Camera[2]; Transform[] Anchors = new Transform[2]; if (OculusCamera != null) { cams [0] = OculusCamera.leftEyeAnchor.GetComponent <Camera>(); cams [1] = OculusCamera.rightEyeAnchor.GetComponent <Camera>(); mainCam = OculusCamera.centerEyeAnchor.GetComponent <Camera> (); Anchors [0] = OculusCamera.centerEyeAnchor; Anchors [1] = OculusCamera.centerEyeAnchor; cams [0].cullingMask = (cams [0].cullingMask & ~(1 << LayerMask.NameToLayer("RightEye"))) | 1 << LayerMask.NameToLayer("LeftEye"); cams [1].cullingMask = (cams [1].cullingMask & ~(1 << LayerMask.NameToLayer("LeftEye"))) | 1 << LayerMask.NameToLayer("RightEye"); } else { cams [0] = Camera.main; cams [1] = Camera.main; mainCam = Camera.main; Anchors [0] = Camera.main.transform; Anchors [1] = Camera.main.transform; } //_postRenderer=mainCam.GetComponent<CameraPostRenderer>(); if (_postRenderer == null) { _postRenderer = mainCam.gameObject.AddComponent <CameraPostRenderer>(); } _postRenderer.AddRenderer(this); // Vector2[] pixelShift = new Vector2[] { output.Configuration.PixelShiftRight,output.Configuration.PixelShiftLeft}; for (int i = 0; i < cams.Length; ++i) { //int i = (int)eyes[c]; cams[i].backgroundColor = new Color(cams[i].backgroundColor.r, cams[i].backgroundColor.g, cams[i].backgroundColor.b, 1); // CreateMesh ((EyeName)i); // RicohThetaRenderMesh r = Targets[i] as RicohThetaRenderMesh; ICameraRenderMesh r = null; //Check camera type used. if (Output.Configuration.CameraType == CameraConfigurations.ECameraType.WebCamera) { //Create A webcamera type renderer r = Targets[i]; if (r == null) { if (Output.Configuration.streamCodec == CameraConfigurations.EStreamCodec.Ovrvision) { r = cams [i].gameObject.AddComponent <OVRVisionRenderMesh> (); } // else if(Output.Configuration.streamCodec==CameraConfigurations.EStreamCodec.EyegazeRaw) // r = cams [i].gameObject.AddComponent<EyegazeWebcameraRenderMesh> ();//Eyegaze else { r = cams [i].gameObject.AddComponent <WebcameraRenderMesh> (); } } } else { r = Targets[i]; if (r == null) { r = cams [i].gameObject.AddComponent <RicohThetaRenderMesh> (); } } r.Mat = Object.Instantiate(TargetMaterial); r.DisplayCamera = cams[i]; r.Src = this; //r.CreateMesh(eyes[c]); r.CreateMesh(eyes[i]); _camRenderer[i] = r; if (eyes[i] == EyeName.RightEye) { r._RenderPlane.layer = LayerMask.NameToLayer("RightEye"); } else { r._RenderPlane.layer = LayerMask.NameToLayer("LeftEye"); } if (Targets[i] == null) { _camRendererParents [i] = new GameObject(this.name + "_" + eyes[i].ToString()); //_camRendererParents[i].transform.parent=Anchors[i].transform; _camRendererParents[i].transform.localRotation = Quaternion.Euler(Output.Configuration.OffsetAngle); _camRendererParents[i].transform.position = Anchors[i].transform.position; //Vector3.zero; var attachment = _camRendererParents[i].AddComponent <CameraTransformAttachment>(); attachment.attachedAnchor = Anchors [i].transform; _camRendererParents [i].transform.parent = transform; attachment.renderer = this; r._RenderPlane.transform.parent = _camRendererParents[i].transform; r._RenderPlane.transform.localRotation = Quaternion.identity; r._RenderPlane.transform.localPosition = new Vector3(camsOffset[i], 0, 0); r.transform.localRotation = Quaternion.identity; r.transform.localPosition = Vector3.zero; } } } // _camRenderer[0].CreateMesh(EyeName.LeftEye); // _camRenderer[1].CreateMesh(EyeName.RightEye); if (OnCameraRendererCreated != null) { OnCameraRendererCreated(this, _camRenderer); } _camsInited = true; }
public Texture GetEyeTexture(EyeName e) { if (e == EyeName.LeftEye) return _LeftCam; return _RightCam; }
protected override MeshRenderer _internalCreateMesh(EyeName eye) { int i = (int)eye; if (_RenderPlane == null) { _RenderPlane = new GameObject("EyesRenderPlane_" + eye.ToString()); } MeshFilter mf = _RenderPlane.GetComponent <MeshFilter> (); if (mf == null) { mf = _RenderPlane.AddComponent <MeshFilter> (); } MeshRenderer mr = _RenderPlane.GetComponent <MeshRenderer> (); if (mr == null) { mr = _RenderPlane.AddComponent <MeshRenderer> (); } mr.material = Mat; mf.mesh.vertices = new Vector3[] { new Vector3(-1, -1, 1), new Vector3(1, -1, 1), new Vector3(1, 1, 1), new Vector3(-1, 1, 1) }; Rect r = new Rect(0, 0, 1, 1); // CamSource.GetEyeTextureCoords (eye); Vector2[] uv = new Vector2[] { new Vector2(r.x, r.y), new Vector2(r.x + r.width, r.y), new Vector2(r.x + r.width, r.y + r.height), new Vector2(r.x, r.y + r.height), }; Matrix4x4 rotMat = Matrix4x4.identity; if (Src.Output.Configuration.Rotation[i] == CameraConfigurations.ECameraRotation.Flipped) { rotMat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, 180), Vector3.one); } else if (Src.Output.Configuration.Rotation[i] == CameraConfigurations.ECameraRotation.CW) { rotMat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, 90), Vector3.one); } else if (Src.Output.Configuration.Rotation[i] == CameraConfigurations.ECameraRotation.CCW) { rotMat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, -90), Vector3.one); } for (int v = 0; v < 4; ++v) { Vector3 res = rotMat * (2 * uv[v] - Vector2.one); uv[v] = (new Vector2(res.x, res.y) + Vector2.one) * 0.5f; //Vector2.one-uv[v]; if (Src.Output.Configuration.FlipXAxis) { uv[v].x = 1 - uv[v].x; } if (Src.Output.Configuration.FlipYAxis) { uv[v].y = 1 - uv[v].y; } // uv[v].y=1-uv[v].y; } mf.mesh.uv = uv; mf.mesh.triangles = new int[] { 0, 2, 1, 0, 3, 2 }; _RenderPlane.transform.localPosition = new Vector3(0, 0, 0); if (Eye == EyeName.LeftEye) { _RenderPlane.transform.localPosition = new Vector3(-0.032f, 0, 0); } else { _RenderPlane.transform.localPosition = new Vector3(0.032f, 0, 0); } _RenderPlane.transform.localRotation = Quaternion.identity; return(mr); }
protected virtual MeshRenderer _internalCreateMesh(EyeName eye) { _RenderPlane = gameObject; return(null); }
public abstract void CreateMesh(EyeName eye);
public Rect GetEyeTextureCoords(EyeName e) { return new Rect (0, 0, 1, 1); }
void _internalCreateMesh(EyeName eye) { int i = (int)eye; if(_RenderPlane==null) _RenderPlane = new GameObject("EyesRenderPlane_"+eye.ToString()); MeshFilter mf = _RenderPlane.GetComponent<MeshFilter> (); if (mf == null) { mf = _RenderPlane.AddComponent<MeshFilter> (); } MeshRenderer mr = _RenderPlane.GetComponent<MeshRenderer> (); if (mr == null) { mr = _RenderPlane.AddComponent<MeshRenderer> (); } mr.material = Mat; mf.mesh.vertices = new Vector3[]{ new Vector3( 1,-1,0), new Vector3(-1,-1,0), new Vector3(-1, 1,0), new Vector3( 1, 1,0) }; Rect r = CamSource.GetEyeTextureCoords (eye); Vector2[] uv = new Vector2[]{ new Vector2(r.x,r.y), new Vector2(r.x+r.width,r.y), new Vector2(r.x+r.width,r.y+r.height), new Vector2(r.x,r.y+r.height), }; Matrix4x4 rotMat = Matrix4x4.identity; if (Src.Configuration.CamSettings.Rotation [i] == CameraConfigurations.ECameraRotation.Flipped) { rotMat = Matrix4x4.TRS (Vector3.zero, Quaternion.Euler (0, 0, 180), Vector3.one); } else if (Src.Configuration.CamSettings.Rotation [i] == CameraConfigurations.ECameraRotation.CW) { rotMat = Matrix4x4.TRS (Vector3.zero, Quaternion.Euler (0, 0, 90), Vector3.one); } else if (Src.Configuration.CamSettings.Rotation [i] == CameraConfigurations.ECameraRotation.CCW) { rotMat = Matrix4x4.TRS (Vector3.zero, Quaternion.Euler (0, 0, -90), Vector3.one); } for(int v=0;v<4;++v) { Vector3 res=rotMat*(2*uv[v]-Vector2.one); uv[v]=(new Vector2(res.x,res.y)+Vector2.one)*0.5f;//Vector2.one-uv[v]; if(Src.Configuration.CamSettings.FlipXAxis) { uv[v].x=1-uv[v].x; } } mf.mesh.uv = uv; mf.mesh.triangles = new int[] { 0,2,1,0,3,2 }; transform.localPosition =new Vector3 (0, 0, 1); transform.localRotation =Quaternion.identity; }
public Vector2 GetEyeScalingFactor(EyeName e) { return Vector2.one; }
void Init() { CameraType = Settings.Instance.RobotSettings.ReadValue ("Camera", "Source", CameraType.ToString ())=="Local"?CameraSourceType.Local:CameraSourceType.Remote; if(CameraType==CameraSourceType.Local) { LocalWebcameraSource c; _cameraSource = (c=new LocalWebcameraSource()); c.LeftInputCamera = Settings.Instance.RobotSettings.ReadValue ("Camera", "Left", 0); c.RightInputCamera = Settings.Instance.RobotSettings.ReadValue ("Camera", "Right", 1); c.Init(); }else { MultipleNetworkCameraSource c; _cameraSource = (c=new MultipleNetworkCameraSource()); c.StreamsCount=2; c.TargetNode=gameObject; c.Init(); } if (AudioSupport) { _audioPlayer = new GstMultipleNetworkAudioPlayer (); _audioStreamer = gameObject.AddComponent<GstNetworkAudioStreamer> (); _audioStreamer.SetChannels(1); _audioStreamer.CreateStream(); } EyeName[] eyes = new EyeName[]{EyeName.RightEye,EyeName.LeftEye}; TelubeeCameraRenderer[] Targets = new TelubeeCameraRenderer[]{TargetEyeRight,TargetEyeLeft}; if (OculusCamera != null) { Camera[] cams = new Camera[] { OculusCamera.rightEyeCamera, OculusCamera.leftEyeCamera }; // Vector2[] pixelShift = new Vector2[] { Configuration.CamSettings.PixelShiftRight,Configuration.CamSettings.PixelShiftLeft}; for (int c = 0; c < cams.Length; ++c) { int i = (int)eyes[c]; cams[i].backgroundColor=Color.black; // CreateMesh ((EyeName)i); TelubeeCameraRenderer r = Targets[i]; if(r==null) r=cams[i].gameObject.AddComponent<TelubeeCameraRenderer>(); r.Mat = Object.Instantiate(TargetMaterial); r.DisplayCamera=cams[i]; r.Src = this; r.CamSource = _cameraSource; r.CreateMesh(eyes[c]); _camRenderer[i]=r; if (i == 0) { r._RenderPlane.layer=LayerMask.NameToLayer("RightEye"); } else { r._RenderPlane.layer=LayerMask.NameToLayer("LeftEye"); } if(Targets[i]==null) { r._RenderPlane.transform.parent = cams[i].transform; r._RenderPlane.transform.localRotation=Quaternion.identity; r._RenderPlane.transform.localPosition=new Vector3(0,0,1); } } } _videoValues=new NetValueObject(); if (ParameterController != null) ParameterController.TargetValueObject = _videoValues; }
public Texture GetEyeTexture(EyeName e) { if (m_Texture == null || m_Texture.PlayerTexture == null) return null; return m_Texture.PlayerTexture[0]; }
public Vector2 GetEyeScalingFactor(EyeName e) { if (isStereo) return new Vector2 (0.5f, 1); return Vector2.one; }