internal void destroyCamera(SimScene scene) { if (cameraPositioner != null) { SimSubScene defaultScene = scene.getDefaultSubScene(); OgreSceneManager sceneManager = defaultScene.getSimElementManager <OgreSceneManager>(); renderTexture.destroyViewport(vp); vp = null; node.detachObject(camera); sceneManager.SceneManager.destroyCamera(camera); sceneManager.SceneManager.destroySceneNode(node); cameraPositioner = null; } }
internal void createCamera(SimScene scene, FeedbackCameraPositioner cameraPositioner) { this.cameraPositioner = cameraPositioner; SimSubScene defaultScene = scene.getDefaultSubScene(); OgreSceneManager sceneManager = defaultScene.getSimElementManager <OgreSceneManager>(); camera = sceneManager.SceneManager.createCamera("VirtualTexturing.FeedbackBufferCamera" + id); camera.setNearClipDistance(1.0f); camera.setAutoAspectRatio(true); camera.setFOVy(new Degree(10.0f)); node = sceneManager.SceneManager.createSceneNode("VirtualTexturing.FeedbackBufferCameraNode" + id); node.attachObject(camera); vp = renderTexture.addViewport(camera); vp.setMaterialScheme(Scheme); vp.setVisibilityMask(visibilityMask); vp.setBackgroundColor(new Engine.Color(0.0f, 0.0f, 0.0f, 1.0f)); vp.clear(); }
public void createFeedbackBufferCamera(SimScene scene, FeedbackCameraPositioner cameraPositioner) { opaqueFeedbackBuffer.createCamera(scene, cameraPositioner); transparentFeedbackBuffer.createCamera(scene, cameraPositioner); }