本文整理汇总了C#中Axiom.Core.SceneManager.CreateCamera方法的典型用法代码示例。如果您正苦于以下问题:C# SceneManager.CreateCamera方法的具体用法?C# SceneManager.CreateCamera怎么用?C# SceneManager.CreateCamera使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Axiom.Core.SceneManager
的用法示例。
在下文中一共展示了SceneManager.CreateCamera方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnLoad
public void OnLoad()
{
var dir = Directory.GetCurrentDirectory();
ResourceGroupManager.Instance.AddResourceLocation(dir, "Folder");
//MaterialManager.Instance.Initialize();
_scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance");
_scene.ClearScene();
Bindings.Axiom.SLSharp.Init();
Shader.DebugMode = true;
//Shader.DebugMode = true;
_clipmap = new Clipmap(_scene);
RecalcHeight();
_camera = _scene.CreateCamera("MainCamera");
_camera.Position = new Vector3(0, 0, 5);
_camera.LookAt(Vector3.Zero);
_camera.Near = 0.001f;
_camera.Far = 20.0f;
_camera.AutoAspectRatio = true;
var vp = _window.AddViewport(_camera);
vp.BackgroundColor = ColorEx.CornflowerBlue;
}
示例2: OnLoad
public void OnLoad()
{
//ResourceGroupManager.Instance.AddResourceLocation("media", "Folder", true);
_root.SceneManager = _sceneManager = _root.CreateSceneManager(SceneType.ExteriorClose);
_sceneManager.ClearScene();
_camera = _sceneManager.CreateCamera("MainCamera");
_camera.Position = new Vector3(0, 0, 500);
_camera.LookAt(new Vector3(0, 0, -300));
_camera.Near = 5;
_camera.AutoAspectRatio = true;
_camera.FieldOfView = 0.70f;
_viewport = _renderWindow.AddViewport(_camera, 0, 0, 1.0f, 1.0f, 100);
_viewport.BackgroundColor = ColorEx.Black; ;
_light = _sceneManager.CreateLight("light1");
_light.Type = LightType.Directional;
_light.Position = new Vector3(0, 150, 300);
_light.Diffuse = ColorEx.Blue;
_light.Specular = ColorEx.Blue;
//_light.Direction = new Vector3(0, 0, -300);
_sceneManager.AmbientLight = ColorEx.White;// new ColorEx(0.2f, 0.2f, 0.2f);
ResourceGroupManager.Instance.InitializeAllResourceGroups();
_inputReader = PlatformManager.Instance.CreateInputReader();
_inputReader.Initialize(_renderWindow, true, true, false, false);
_inputReader.UseKeyboardEvents = true;
_inputReader.UseMouseEvents = false;
//_renderItems.Add(new BasicCube());
_renderItems.Add(new CubeBrowser());
foreach (var i in _renderItems)
{
i.Initialise(_root);
}
}
示例3: RenderCompositeMap
/// <summary>
/// Helper method to render a composite map.
/// </summary>
/// <param name="size"> The requested composite map size</param>
/// <param name="rect"> The region of the composite map to update, in image space</param>
/// <param name="mat">The material to use to render the map</param>
/// <param name="destCompositeMap"></param>
public virtual void RenderCompositeMap(int size, Rectangle rect,
Material mat, Texture destCompositeMap)
{
//return;
if (mCompositeMapSM == null)
{
//dedicated SceneManager
mCompositeMapSM = Root.Instance.CreateSceneManager(SceneType.ExteriorClose, "TerrainMaterialGenerator_SceneManager");
float camDist = 100;
float halfCamDist = camDist * 0.5f;
mCompositeMapCam = mCompositeMapSM.CreateCamera("TerrainMaterialGenerator_Camera");
mCompositeMapCam.Position = new Vector3(0, 0, camDist);
//mCompositeMapCam.LookAt(Vector3.Zero);
mCompositeMapCam.ProjectionType = Projection.Orthographic;
mCompositeMapCam.Near = 10;
mCompositeMapCam.Far = 999999* 3;
//mCompositeMapCam.AspectRatio = camDist / camDist;
mCompositeMapCam.SetOrthoWindow(camDist, camDist);
// Just in case material relies on light auto params
mCompositeMapLight = mCompositeMapSM.CreateLight("TerrainMaterialGenerator_Light");
mCompositeMapLight.Type = LightType.Directional;
RenderSystem rSys = Root.Instance.RenderSystem;
float hOffset = rSys.HorizontalTexelOffset / (float)size;
float vOffset = rSys.VerticalTexelOffset / (float)size;
//setup scene
mCompositeMapPlane = mCompositeMapSM.CreateManualObject("TerrainMaterialGenerator_ManualObject");
mCompositeMapPlane.Begin(mat.Name, OperationType.TriangleList);
mCompositeMapPlane.Position(-halfCamDist, halfCamDist, 0);
mCompositeMapPlane.TextureCoord(0 - hOffset, 0 - vOffset);
mCompositeMapPlane.Position(-halfCamDist, -halfCamDist, 0);
mCompositeMapPlane.TextureCoord(0 - hOffset, 1 - vOffset);
mCompositeMapPlane.Position(halfCamDist, -halfCamDist, 0);
mCompositeMapPlane.TextureCoord(1 - hOffset, 1 - vOffset);
mCompositeMapPlane.Position(halfCamDist, halfCamDist, 0);
mCompositeMapPlane.TextureCoord(1 - hOffset, 0 - vOffset);
mCompositeMapPlane.Quad(0, 1, 2, 3);
mCompositeMapPlane.End();
mCompositeMapSM.RootSceneNode.AttachObject(mCompositeMapPlane);
}//end if
// update
mCompositeMapPlane.SetMaterialName(0, mat.Name);
mCompositeMapLight.Direction = TerrainGlobalOptions.LightMapDirection;
mCompositeMapLight.Diffuse = TerrainGlobalOptions.CompositeMapDiffuse;
mCompositeMapSM.AmbientLight =TerrainGlobalOptions.CompositeMapAmbient;
//check for size change (allow smaller to be reused)
if (mCompositeMapRTT != null && size != mCompositeMapRTT.Width)
{
TextureManager.Instance.Remove(mCompositeMapRTT);
mCompositeMapRTT = null;
}
if (mCompositeMapRTT == null)
{
mCompositeMapRTT = TextureManager.Instance.CreateManual(
mCompositeMapSM.Name + "/compRTT",
ResourceGroupManager.DefaultResourceGroupName,
TextureType.TwoD,
size,
size,
0,
PixelFormat.BYTE_RGBA,
TextureUsage.RenderTarget);
RenderTarget rtt = mCompositeMapRTT.GetBuffer().GetRenderTarget();
// don't render all the time, only on demand
rtt.IsAutoUpdated = false;
Viewport vp = rtt.AddViewport(mCompositeMapCam);
// don't render overlays
vp.ShowOverlays = false;
}
// calculate the area we need to update
float vpleft = (float)rect.Left / (float)size;
float vptop = (float)rect.Top / (float)size;
float vpright = (float)rect.Right / (float)size;
float vpbottom = (float)rect.Bottom / (float)size;
float vpwidth = (float)rect.Width / (float)size;
float vpheight = (float)rect.Height / (float)size;
RenderTarget rtt2 = mCompositeMapRTT.GetBuffer().GetRenderTarget();
Viewport vp2 = rtt2.GetViewport(0);
mCompositeMapCam.SetWindow(vpleft, vptop, vpright, vpbottom);
rtt2.Update();
vp2.Update();
// We have an RTT, we want to copy the results into a regular texture
// That's because in non-update scenarios we don't want to keep an RTT
// around. We use a single RTT to serve all terrain pages which is more
// efficient.
//.........这里部分代码省略.........
示例4: OnLoad
public void OnLoad()
{
// Create patch with positions, normals, and 1 set of texcoords
var patchDeclaration = HardwareBufferManager.Instance.CreateVertexDeclaration();
patchDeclaration.AddElement(0, 0, VertexElementType.Float3, VertexElementSemantic.Position);
patchDeclaration.AddElement(0, 12, VertexElementType.Float3, VertexElementSemantic.Normal);
patchDeclaration.AddElement(0, 24, VertexElementType.Float2, VertexElementSemantic.TexCoords, 0);
var patchVertices = new PatchVertex[9];
patchVertices[0].X = -500;
patchVertices[0].Y = 200;
patchVertices[0].Z = -500;
patchVertices[0].Nx = -0.5f;
patchVertices[0].Ny = 0.5f;
patchVertices[0].Nz = 0;
patchVertices[0].U = 0;
patchVertices[0].V = 0;
patchVertices[1].X = 0;
patchVertices[1].Y = 500;
patchVertices[1].Z = -750;
patchVertices[1].Nx = 0;
patchVertices[1].Ny = 0.5f;
patchVertices[1].Nz = 0;
patchVertices[1].U = 0.5f;
patchVertices[1].V = 0;
patchVertices[2].X = 500;
patchVertices[2].Y = 1000;
patchVertices[2].Z = -500;
patchVertices[2].Nx = 0.5f;
patchVertices[2].Ny = 0.5f;
patchVertices[2].Nz = 0;
patchVertices[2].U = 1;
patchVertices[2].V = 0;
patchVertices[3].X = -500;
patchVertices[3].Y = 0;
patchVertices[3].Z = 0;
patchVertices[3].Nx = -0.5f;
patchVertices[3].Ny = 0.5f;
patchVertices[3].Nz = 0;
patchVertices[3].U = 0;
patchVertices[3].V = 0.5f;
patchVertices[4].X = 0;
patchVertices[4].Y = 500;
patchVertices[4].Z = 0;
patchVertices[4].Nx = 0;
patchVertices[4].Ny = 0.5f;
patchVertices[4].Nz = 0;
patchVertices[4].U = 0.5f;
patchVertices[4].V = 0.5f;
patchVertices[5].X = 500;
patchVertices[5].Y = -50;
patchVertices[5].Z = 0;
patchVertices[5].Nx = 0.5f;
patchVertices[5].Ny = 0.5f;
patchVertices[5].Nz = 0;
patchVertices[5].U = 1;
patchVertices[5].V = 0.5f;
patchVertices[6].X = -500;
patchVertices[6].Y = 0;
patchVertices[6].Z = 500;
patchVertices[6].Nx = -0.5f;
patchVertices[6].Ny = 0.5f;
patchVertices[6].Nz = 0;
patchVertices[6].U = 0;
patchVertices[6].V = 1;
patchVertices[7].X = 0;
patchVertices[7].Y = 500;
patchVertices[7].Z = 500;
patchVertices[7].Nx = 0;
patchVertices[7].Ny = 0.5f;
patchVertices[7].Nz = 0;
patchVertices[7].U = 0.5f;
patchVertices[7].V = 1;
patchVertices[8].X = 500;
patchVertices[8].Y = 200;
patchVertices[8].Z = 800;
patchVertices[8].Nx = 0.5f;
patchVertices[8].Ny = 0.5f;
patchVertices[8].Nz = 0;
patchVertices[8].U = 1;
patchVertices[8].V = 1;
_patch = MeshManager.Instance.CreateBezierPatch("Bezier1", ResourceGroupManager.DefaultResourceGroupName, patchVertices, patchDeclaration, 3, 3, 5, 5, VisibleSide.Both, BufferUsage.StaticWriteOnly, BufferUsage.DynamicWriteOnly, true, true);
_patch.Subdivision = 1.0f;
_scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance");
_scene.ClearScene();
_patchEntity = _scene.CreateEntity("Entity1", "Bezier1");
_camera = _scene.CreateCamera("MainCamera");
//.........这里部分代码省略.........