public override void Init() { //Crear esfera sphere = new TgcSphere(); currentTexture = null; //Modifiers para vararis sus parametros Modifiers.addEnum("base", typeof(TgcSphere.eBasePoly), TgcSphere.eBasePoly.ICOSAHEDRON); Modifiers.addBoolean("inflate", "yes", true); Modifiers.addInterval("level of detail", new object[] { 0, 1, 2, 3, 4 }, 2); Modifiers.addBoolean("edges", "show", false); Modifiers.addFloat("radius", 0, 100, 10); Modifiers.addVertex3f("position", new Vector3(-100, -100, -100), new Vector3(100, 100, 100), new Vector3(0, 0, 0)); Modifiers.addVertex3f("rotation", new Vector3(-180, -180, -180), new Vector3(180, 180, 180), new Vector3(0, 0, 0)); Modifiers.addBoolean("Use texture", "yes", true); Modifiers.addTexture("texture", MediaDir + "\\Texturas\\madera.jpg"); Modifiers.addVertex2f("offset", new Vector2(-0.5f, -0.5f), new Vector2(0.9f, 0.9f), new Vector2(0, 0)); Modifiers.addVertex2f("tiling", new Vector2(0.1f, 0.1f), new Vector2(4, 4), new Vector2(1, 1)); Modifiers.addColor("color", Color.White); Modifiers.addBoolean("boundingsphere", "show", false); UserVars.addVar("Vertices"); UserVars.addVar("Triangulos"); Camara = new TgcRotationalCamera(new Vector3(), 50f); }
public override void Init() { //Cargar 25 cajas formando una matriz var loader = new TgcSceneLoader(); boxes = new List <TgcBox>(); var texture = TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "Texturas\\granito.jpg"); var boxSize = new Vector3(30, 30, 30); for (var i = 0; i < 5; i++) { for (var j = 0; j < 5; j++) { var center = new Vector3((boxSize.X + boxSize.X / 2) * i, (boxSize.Y + boxSize.Y / 2) * j, 0); var box = TgcBox.fromSize(center, boxSize, texture); boxes.Add(box); } } //Iniciarlizar PickingRay pickingRay = new TgcPickingRay(); Camara = new TgcRotationalCamera(new Vector3(100f, 100f, -250f), 600f); //FIXME esta camara deberi ser estatica y no rotacional, ya que sino trae problemas con el picking. //Crear caja para marcar en que lugar hubo colision collisionPointMesh = TgcBox.fromSize(new Vector3(3, 3, 3), Color.Red); selected = false; //UserVars para mostrar en que punto hubo colision UserVars.addVar("CollP-X:"); UserVars.addVar("CollP-Y:"); UserVars.addVar("CollP-Z:"); }
public override void Init() { //Crear loader var loader = new TgcSceneLoader(); //Cargar los mesh: scene = loader.loadSceneFromFile(MediaDir + "MeshCreator\\Meshes\\Vehiculos\\TanqueFuturistaRuedas\\TanqueFuturistaRuedas-TgcScene.xml"); mesh = scene.Meshes[0]; mesh.Scale = new Vector3(0.5f, 0.5f, 0.5f); mesh.Position = new Vector3(0f, 0f, 0f); //Cargar Shader personalizado effect = TgcShaders.loadEffect(ShadersDir + "WorkshopShaders\\BasicShader.fx"); // le asigno el efecto a la malla mesh.Effect = effect; // indico que tecnica voy a usar // Hay effectos que estan organizados con mas de una tecnica. mesh.Technique = "RenderScene"; //Centrar camara rotacional respecto a este mesh Camara = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 5, Input); time = 0; }
public override void Init() { //Crear loader var loader = new TgcSceneLoader(); //Cargar mesh var scene = loader.loadSceneFromFile(MediaDir + "ModelosTgc\\Olla\\Olla-TgcScene.xml"); mesh = scene.Meshes[0]; //Crear caja para indicar ubicacion de la luz lightMesh = TgcBox.fromSize(new Vector3(20, 20, 20), Color.Yellow).toMesh("Box"); //Modifiers de la luz Modifiers.addBoolean("lightEnable", "lightEnable", true); Modifiers.addVertex3f("lightPos", new Vector3(-500, -500, -500), new Vector3(500, 800, 500), new Vector3(0, 500, 0)); Modifiers.addColor("ambient", Color.Gray); Modifiers.addColor("diffuse", Color.Blue); Modifiers.addColor("specular", Color.White); Modifiers.addFloat("specularEx", 0, 40, 20f); //Centrar camara rotacional respecto a este mesh Camara = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 2, Input); }
public override void Init() { var sphere = MediaDir + "ModelosTgc\\Sphere\\Sphere-TgcScene.xml"; var loader = new TgcSceneLoader(); //Cargar modelos para el sol, la tierra y la luna. Son esfereas a las cuales le cambiamos la textura sun = loader.loadSceneFromFile(sphere).Meshes[0]; sun.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\SunTexture.jpg") }); earth = loader.loadSceneFromFile(sphere).Meshes[0]; earth.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\EarthTexture.jpg") }); moon = loader.loadSceneFromFile(sphere).Meshes[0]; moon.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\MoonTexture.jpg") }); //Deshabilitamos el manejo automatico de Transformaciones de TgcMesh, para poder manipularlas en forma personalizada sun.AutoTransformEnable = false; earth.AutoTransformEnable = false; moon.AutoTransformEnable = false; //Camara en primera persona Camara = new TgcRotationalCamera(new Vector3(0f, 200f, 1000f), 500f, Input); }
public override void Init() { //Crear esfera sphere = new TGCSphere(); //No recomendamos utilizar AutoTransformEnable, con juegos complejos se pierde el control. sphere.AutoTransform = true; currentTexture = null; //Modifiers para vararis sus parametros baseModifier = AddEnum("base", typeof(TGCSphere.eBasePoly), TGCSphere.eBasePoly.ICOSAHEDRON); inflateModifier = AddBoolean("inflate", "yes", true); levelOfDetailModifier = AddInterval("level of detail", new object[] { 0, 1, 2, 3, 4 }, 2); edgesModifier = AddBoolean("edges", "show", false); radiusModifier = AddFloat("radius", 0, 100, 10); positionModifier = AddVertex3f("position", new TGCVector3(-100, -100, -100), new TGCVector3(100, 100, 100), TGCVector3.Empty); rotationModifier = AddVertex3f("rotation", new TGCVector3(-180, -180, -180), new TGCVector3(180, 180, 180), TGCVector3.Empty); useTextureModifier = AddBoolean("Use texture", "yes", true); textureModifier = AddTexture("texture", MediaDir + "\\Texturas\\madera.jpg"); offsetModifier = AddVertex2f("offset", new TGCVector2(-0.5f, -0.5f), new TGCVector2(0.9f, 0.9f), TGCVector2.Zero); tilingModifier = AddVertex2f("tiling", new TGCVector2(0.1f, 0.1f), new TGCVector2(4, 4), TGCVector2.One); colorModifier = AddColor("color", Color.White); boundingsphereModifier = AddBoolean("boundingsphere", "show", false); UserVars.addVar("Vertices"); UserVars.addVar("Triangulos"); Camara = new TgcRotationalCamera(TGCVector3.Empty, 50f, Input); }
public override void Init() { //Modifiers para variar parametros de la pared Modifiers.addVertex3f("origin", new Vector3(-100, -100, -100), new Vector3(100, 100, 100), new Vector3(0, 0, 0)); Modifiers.addVertex3f("dimension", new Vector3(-100, -100, -100), new Vector3(1000, 1000, 100), new Vector3(100, 100, 100)); Modifiers.addInterval("orientation", new[] { "XY", "XZ", "YZ" }, 0); Modifiers.addVertex2f("tiling", new Vector2(0, 0), new Vector2(10, 10), new Vector2(1, 1)); Modifiers.addBoolean("autoAdjust", "autoAdjust", false); //Modifier de textura var texturePath = MediaDir + "Texturas\\Quake\\TexturePack2\\brick1_1.jpg"; currentTexture = TgcTexture.createTexture(D3DDevice.Instance.Device, texturePath); Modifiers.addTexture("texture", currentTexture.FilePath); //Crear pared plane = new TgcPlane(); plane.setTexture(currentTexture); //Actualizar segun valores cargados updatePlane(); //Ajustar camara segun tamano de la pared Camara = new TgcRotationalCamera(plane.BoundingBox.calculateBoxCenter(), plane.BoundingBox.calculateBoxRadius() * 2, Input); }
public override void Init() { //Crear loader var loader = new TgcSceneLoader(); //Cargar los mesh: scene = loader.loadSceneFromFile(MediaDir + "MeshCreator\\Meshes\\Vehiculos\\TanqueFuturistaRuedas\\TanqueFuturistaRuedas-TgcScene.xml"); mesh = scene.Meshes[0]; mesh.Scale = new TGCVector3(0.5f, 0.5f, 0.5f); mesh.Position = TGCVector3.Empty; //Cargar Shader personalizado effect = TGCShaders.Instance.LoadEffect(ShadersDir + "WorkshopShaders\\BasicShader.fx"); //Le asigno el efecto a la malla mesh.Effect = effect; //Selecciona la tecnica del shader. shaderEffectModifier = AddInterval("Effect", new[] { "RenderScene", "RenderScene2" }, 1); //Indico que tecnica voy a usar // Hay effectos que estan organizados con mas de una tecnica. mesh.Technique = shaderEffectModifier.Value.ToString(); //Centrar camara rotacional respecto a este mesh Camera = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 5, Input); time = 0; }
public override void Init() { //Crear Sprite animado animatedSprite = new TgcAnimatedSprite(MediaDir + "\\Texturas\\Sprites\\Explosion.png", //Textura de 256x256 new Size(64, 64), //Tamaño de un frame (64x64px en este caso) 16, //Cantidad de frames, (son 16 de 64x64px) 10 //Velocidad de animacion, en cuadros x segundo ); //Ubicarlo centrado en la pantalla var textureSize = animatedSprite.Sprite.Texture.Size; animatedSprite.Position = new Vector2(D3DDevice.Instance.Width / 2 - textureSize.Width / 2, D3DDevice.Instance.Height / 2 - textureSize.Height / 2); //Modifiers para variar parametros del sprite Modifiers.addFloat("frameRate", 1, 30, 10); Modifiers.addVertex2f("position", new Vector2(0, 0), new Vector2(D3DDevice.Instance.Width, D3DDevice.Instance.Height), animatedSprite.Position); Modifiers.addVertex2f("scaling", new Vector2(0, 0), new Vector2(4, 4), animatedSprite.Scaling); Modifiers.addFloat("rotation", 0, 360, 0); //Creamos un Box3D para que se vea como el Sprite es en 2D y se dibuja siempre arriba de la escena 3D box = TgcBox.fromSize(new Vector3(10, 10, 10), TgcTexture.createTexture(MediaDir + "\\Texturas\\pasto.jpg")); //Hacer que la camara se centre en el box3D Camara = new TgcRotationalCamera(box.BoundingBox.calculateBoxCenter(), box.BoundingBox.calculateBoxRadius() * 2); }
public override void Init() { //Crear Sprite sprite = new TgcSprite(); sprite.Texture = TgcTexture.createTexture(MediaDir + "\\Texturas\\LogoTGC.png"); //Ubicarlo centrado en la pantalla var textureSize = sprite.Texture.Size; sprite.Position = new Vector2(FastMath.Max(D3DDevice.Instance.Width / 2 - textureSize.Width / 2, 0), FastMath.Max(D3DDevice.Instance.Height / 2 - textureSize.Height / 2, 0)); //Modifiers para variar parametros del sprite Modifiers.addVertex2f("position", new Vector2(0, 0), new Vector2(D3DDevice.Instance.Width, D3DDevice.Instance.Height), sprite.Position); Modifiers.addVertex2f("scaling", new Vector2(0, 0), new Vector2(4, 4), sprite.Scaling); Modifiers.addFloat("rotation", 0, 360, 0); //Creamos un Box3D para que se vea como el Sprite es en 2D y se dibuja siempre arriba de la escena 3D box = TgcBox.fromSize(new Vector3(10, 10, 10), TgcTexture.createTexture(MediaDir + "\\Texturas\\pasto.jpg")); //Hacer que la camara se centre en el box3D Camara = new TgcRotationalCamera(box.BoundingBox.calculateBoxCenter(), box.BoundingBox.calculateBoxRadius() * 2); }
public override void Init() { //El framework posee la clase TgcSceneLoader que permite cargar modelos 3D. //Estos modelos 3D están almacenados en un archivo XML llamado TgcScene.xml. //Este archivo es un formato a medida hecho para el framework. Y puede ser creado desde herramientas de //diseño como 3Ds MAX (exportando a traves de un plugin) o con el editor MeshCreator que viene con el framework. //El framework viene con varios modelos 3D incluidos en la carpeta: TgcViewer\Examples\Media\MeshCreator\Meshes. //El formato especifica una escena, representada por la clase TgcScene. Una escena puede estar compuesta por varios //modelos 3D. Cada modelo se representa con la clase TgcMesh. //En este ejemplo vamos a cargar una escena con un único modelo. var loader = new TgcSceneLoader(); //De toda la escena solo nos interesa guardarnos el primer modelo (el único que hay en este caso). mesh = loader.loadSceneFromFile(MediaDir + "MeshCreator\\Meshes\\Vehiculos\\Hummer\\Hummer-TgcScene.xml").Meshes[0]; mesh.Position += new TGCVector3(100, 37, -200); mesh.Rotation += new TGCVector3(0, FastMath.QUARTER_PI, 0); mesh.Transform = TGCMatrix.Scaling(TGCVector3.One) * TGCMatrix.RotationYawPitchRoll(mesh.Rotation.Y, mesh.Rotation.X, mesh.Rotation.Z) * TGCMatrix.Translation(mesh.Position); //En este ejemplo no cargamos un solo modelo 3D sino una escena completa, compuesta por varios modelos. //El framework posee varias escenas ya hechas en la carpeta TgcViewer\Examples\Media\MeshCreator\Scenes. scene = loader.loadSceneFromFile(MediaDir + "MeshCreator\\Scenes\\Iglesia\\Iglesia-TgcScene.xml"); //Hacemos que la cámara esté centrada sobre el mesh. Camera = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 6, Input); }
public override void Init() { //Crear caja vacia box = new TgcBox(); box.AutoTransformEnable = true; //Crear caja debug vacia debugBox = new TgcBoxDebug(); currentTexture = null; //Modifiers para vararis sus parametros Modifiers.addBoolean("box", "box", true); Modifiers.addBoolean("boundingBox", "BoundingBox", false); Modifiers.addBoolean("debugBox", "debugBox", true); Modifiers.addFloat("thickness", 0.1f, 5, 0.2f); Modifiers.addTexture("texture", MediaDir + "\\Texturas\\madera.jpg"); Modifiers.addVertex2f("offset", new Vector2(-0.5f, -0.5f), new Vector2(0.9f, 0.9f), new Vector2(0, 0)); Modifiers.addVertex2f("tiling", new Vector2(0.1f, 0.1f), new Vector2(4, 4), new Vector2(1, 1)); Modifiers.addColor("color", Color.BurlyWood); Modifiers.addVertex3f("size", new Vector3(0, 0, 0), new Vector3(100, 100, 100), new Vector3(20, 20, 20)); Modifiers.addVertex3f("position", new Vector3(-100, -100, -100), new Vector3(100, 100, 100), new Vector3(0, 0, 0)); Modifiers.addVertex3f("rotation", new Vector3(-180, -180, -180), new Vector3(180, 180, 180), new Vector3(0, 0, 0)); Camara = new TgcRotationalCamera(new Vector3(), 200f, Input); }
public override void Init() { //Configurar camara en rotacion Camara = new TgcRotationalCamera(new Vector3(0, 0.5f, 0), 3f); //Current texture currentTexurePah = MediaDir + "Texturas" + "\\" + "baldosaFacultad.jpg"; loadTexture(D3DDevice.Instance.Device, currentTexurePah); //Modifiers Modifiers.addVertex3f("vertex1", new Vector3(-3, -3, -3), new Vector3(3, 3, 3), new Vector3(-1, 0, 0)); Modifiers.addVertex2f("texCoord1", new Vector2(0, 0), new Vector2(1, 1), new Vector2(0, 0)); Modifiers.addColor("color1", Color.White); Modifiers.addVertex3f("vertex2", new Vector3(-3, -3, -3), new Vector3(3, 3, 3), new Vector3(1, 0, 0)); Modifiers.addVertex2f("texCoord2", new Vector2(0, 0), new Vector2(1, 1), new Vector2(0, 1)); Modifiers.addColor("color2", Color.White); Modifiers.addVertex3f("vertex3", new Vector3(-3, -3, -3), new Vector3(3, 3, 3), new Vector3(0, 1, 0)); Modifiers.addVertex2f("texCoord3", new Vector2(0, 0), new Vector2(1, 1), new Vector2(1, 1)); Modifiers.addColor("color3", Color.White); Modifiers.addFloat("rotation", -2, 2f, 0f); Modifiers.addBoolean("TextureEnable", "Con textura", true); Modifiers.addTexture("Texture image", currentTexurePah); }
public override void Init() { var sphere = MediaDir + "ModelosTgc\\Sphere\\Sphere-TgcScene.xml"; var loader = new TgcSceneLoader(); //Cargar modelos para el sol, la tierra y la luna. Son esfereas a las cuales le cambiamos la textura sun = loader.loadSceneFromFile(sphere).Meshes[0]; sun.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\SunTexture.jpg") }); earth = loader.loadSceneFromFile(sphere).Meshes[0]; earth.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\EarthTexture.jpg") }); moon = loader.loadSceneFromFile(sphere).Meshes[0]; moon.changeDiffuseMaps(new[] { TgcTexture.createTexture(D3DDevice.Instance.Device, MediaDir + "SistemaSolar\\MoonTexture.jpg") }); BackgroundColor = Color.Black; //Camara en primera persona Camera = new TgcRotationalCamera(new TGCVector3(0f, 200f, 1000f), 500f, Input); }
public override void Init() { //Crear Teapot mesh = Mesh.Teapot(D3DDevice.Instance.Device); //Crear Material material = new Material(); material.Ambient = Color.Blue; material.Diffuse = Color.Green; material.Specular = Color.Red; //Crear una fuente de Luz en la posición 0 (Cada adaptador de video soporta hasta un límite máximo de luces) D3DDevice.Instance.Device.Lights[0].Type = LightType.Directional; D3DDevice.Instance.Device.Lights[0].Diffuse = Color.Yellow; D3DDevice.Instance.Device.Lights[0].Position = new Vector3(0, 10, 0); D3DDevice.Instance.Device.Lights[0].Direction = new Vector3(0, -1, 0); D3DDevice.Instance.Device.Lights[0].Enabled = true; //Habilitar esquema de Iluminación Dinámica D3DDevice.Instance.Device.RenderState.Lighting = true; //Configurar camara rotacional Camara = new TgcRotationalCamera(new Vector3(0, 0, 0), 10f); //Modifiers para ángulos de rotación Modifiers.addFloat("angleX", 0, 10, 0); Modifiers.addFloat("angleY", 0, 10, 1); Modifiers.addFloat("angleZ", 0, 10, 0); //Modifiers para cambiar de rotacion de Euler a Quaternion Modifiers.addBoolean("quaternion", "Use Quaternion?", false); //Modifier para color de Teapot Modifiers.addColor("color", Color.Green); }
public override void Init() { //Cargar mesh var loader = new TgcSceneLoader(); mesh = loader.loadSceneFromFile(MediaDir + "ModelosTgc\\LogoTGC\\LogoTGC-TgcScene.xml").Meshes[0]; mesh.AutoTransformEnable = true; //Cargar Shader de PhongShading mesh.Effect = TgcShaders.Instance.TgcMeshPhongShader; mesh.Technique = TgcShaders.Instance.getTgcMeshTechnique(mesh.RenderType); //Texto help textHelp = new TgcText2D(); textHelp.Position = new Point(15, 260); textHelp.Size = new Size(500, 100); textHelp.changeFont(new Font("TimesNewRoman", 16, FontStyle.Regular)); textHelp.Color = Color.Yellow; textHelp.Align = TgcText2D.TextAlign.LEFT; textHelp.Text = "��Por donde empezar? Presionar \"H\""; //Help form var helpRtf = File.ReadAllText(MediaDir + "\\help.rtf"); helpForm = new EjemploDefaultHelpForm(helpRtf); //Camara Camara = new TgcRotationalCamera(new Vector3(), 150f, Input); }
public override void Init() { box = TgcBox.fromSize(new Vector3(0, 0, 0), new Vector3(20, 20, 20), Color.Red); Camara = new TgcRotationalCamera(box.BoundingBox.calculateBoxCenter(), box.BoundingBox.calculateBoxRadius() * 2); }
private void camaraManager() { camaraInterna = new CamaraTerceraPersona(this.getMesh().Position, 100, 300f); camaraInterna2 = new CamaraTerceraPersona(this.getMesh().Position, 200, 400f); camaraRotante = new TgcRotationalCamera( new Vector3(this.getMesh().Position.X, 100, this.getMesh().Position.Z), 300, 0.15f, 50f, this.env.Input); this.env.Camara = camaraInterna; }
public TgcRotationalCamera CrearCamaraCaja() { Vector3 pos = new Vector3(0, 2000, 0); Vector3 target = new Vector3(10, 2000, 0); CamaraRotacional = new TgcRotationalCamera(pos, target, Input); return(CamaraRotacional); }
public override void Init() { //Triangulo 1. //Definir array de vertices para el triangulo, del tipo Coordendas (X,Y,Z) + Color simpleTriangleData = new CustomVertex.PositionColored[3]; //Cargar informacion de vertices. Nesitamos 3 vertices para crear un triangulo simpleTriangleData[0] = new CustomVertex.PositionColored(-1, 0, 0, Color.Red.ToArgb()); simpleTriangleData[1] = new CustomVertex.PositionColored(1, 0, 0, Color.Green.ToArgb()); simpleTriangleData[2] = new CustomVertex.PositionColored(0, 1, 0, Color.Blue.ToArgb()); //Cargar variables de usuario con alguna informacion util para ver en pantalla UserVars.addVar("Triangle 1 vertices", simpleTriangleData.Length); //Triangulo 2. //Current texture currentTexurePah = MediaDir + "Texturas\\baldosaFacultad.jpg"; texture = TextureLoader.FromFile(D3DDevice.Instance.Device, currentTexurePah); //Modifiers vertex1Modifier = AddVertex3f("vertex1", new TGCVector3(-3, -3, -3), new TGCVector3(3, 3, 3), new TGCVector3(-1, 0, 0)); texCoord1Modifier = AddVertex2f("texCoord1", TGCVector2.Zero, TGCVector2.One, new TGCVector2(1, 0)); color1Modifier = AddColor("color1", Color.White); vertex2Modifier = AddVertex3f("vertex2", new TGCVector3(-3, -3, -3), new TGCVector3(3, 3, 3), new TGCVector3(1, 0, 0)); texCoord2Modifier = AddVertex2f("texCoord2", TGCVector2.Zero, TGCVector2.One, new TGCVector2(0, 1)); color2Modifier = AddColor("color2", Color.White); vertex3Modifier = AddVertex3f("vertex3", new TGCVector3(-3, -3, -3), new TGCVector3(3, 3, 3), TGCVector3.Up); texCoord3Modifier = AddVertex2f("texCoord3", TGCVector2.Zero, TGCVector2.One, TGCVector2.One); color3Modifier = AddColor("color3", Color.White); rotationModifier = AddFloat("rotation", -2, 2f, 0f); textureEnableModifier = AddBoolean("TextureEnable", "Con textura", true); textureImageModifier = AddTexture("Texture image", currentTexurePah); //Triangulo 3. //Crear vertexBuffer vertexBuffer = new VertexBuffer(typeof(CustomVertex.PositionColored), 3, D3DDevice.Instance.Device, Usage.Dynamic | Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default); //Cargar informacion de vertices: (X,Y,Z) + Color var data = new CustomVertex.PositionColored[3]; data[0] = new CustomVertex.PositionColored(-1, 0, 0, Color.Red.ToArgb()); data[1] = new CustomVertex.PositionColored(1, 0, 0, Color.Green.ToArgb()); data[2] = new CustomVertex.PositionColored(0, 1, 0, Color.Blue.ToArgb()); //Almacenar informacion en VertexBuffer vertexBuffer.SetData(data, 0, LockFlags.None); //User Vars UserVars.addVar("Triangle 3 vertices"); UserVars.setValue("Triangle 3 vertices", data.Length); //Configurar camara en rotacion Camara = new TgcRotationalCamera(new TGCVector3(0, 0.5f, 0), 7.5f, Input); }
public override void Init() { physicsExample = new HelloWorldBullet2(); physicsExample.Init(this); UserVars.addVar("MeshCount"); Camara = new TgcRotationalCamera(new TGCVector3(0, 20, 0), 100, Input); }
/// <summary> /// Crea todos los modulos necesarios de la aplicacion /// </summary> internal void initGraphics(MainForm mainForm, Control panel3d) { this.mainForm = mainForm; this.panel3d = panel3d; this.fullScreenPanel = new FullScreenPanel(); panel3d.Focus(); //Iniciar graficos this.tgcD3dDevice = new TgcD3dDevice(panel3d); this.texturesManager = new TgcTexture.Manager(); this.tgcD3dDevice.OnResetDevice(tgcD3dDevice.D3dDevice, null); //Iniciar otras herramientas this.texturesPool = new TgcTexture.Pool(); this.logger = new Logger(mainForm.LogConsole); this.text3d = new TgcDrawText(tgcD3dDevice.D3dDevice); this.tgcD3dInput = new TgcD3dInput(mainForm, panel3d); this.fpsCamera = new TgcFpsCamera(); this.rotCamera = new TgcRotationalCamera(); this.thirdPersonCamera = new TgcThirdPersonCamera(); this.axisLines = new TgcAxisLines(tgcD3dDevice.D3dDevice); this.userVars = new TgcUserVars(mainForm.getDataGridUserVars()); this.modifiers = new TgcModifiers(mainForm.getModifiersPanel()); this.elapsedTime = -1; this.frustum = new TgcFrustum(); this.mp3Player = new TgcMp3Player(); this.directSound = new TgcDirectSound(); this.fog = new TgcFog(); this.currentCamera = this.rotCamera; this.customRenderEnabled = false; this.drawer2D = new TgcDrawer2D(); this.shaders = new TgcShaders(); //toogles this.rotCamera.Enable = true; this.fpsCamera.Enable = false; this.thirdPersonCamera.Enable = false; this.fpsCounterEnable = true; this.axisLines.Enable = true; //Cargar algoritmos exampleLoader = new ExampleLoader(); examplesDir = System.Environment.CurrentDirectory + "\\" + ExampleLoader.EXAMPLES_DIR + "\\"; examplesMediaDir = examplesDir + "Media" + "\\"; alumnoEjemplosDir = System.Environment.CurrentDirectory + "\\" + "AlumnoEjemplos" + "\\"; alumnoEjemplosMediaDir = alumnoEjemplosDir + "AlumnoMedia" + "\\"; exampleLoader.loadExamplesInGui(mainForm.TreeViewExamples, new string[] { examplesDir, alumnoEjemplosDir }); //Cargar shaders del framework this.shaders.loadCommonShaders(); //Cargar ejemplo default TgcExample defaultExample = exampleLoader.getExampleByName(mainForm.Config.defaultExampleName, mainForm.Config.defaultExampleCategory); executeExample(defaultExample); }
public override void Init() { //Paths para archivo XML de la malla var pathMesh = MediaDir + "KeyframeAnimations\\Robot\\Robot-TgcKeyFrameMesh.xml"; //Path para carpeta de texturas de la malla var mediaPath = MediaDir + "KeyframeAnimations\\Robot\\"; //Lista de animaciones disponibles string[] animationList = { "Parado", "Caminando", "Correr", "PasoDerecho", "PasoIzquierdo", "Empujar", "Patear", "Pegar", "Arrojar" }; //Crear rutas con cada animacion var animationsPath = new string[animationList.Length]; for (var i = 0; i < animationList.Length; i++) { animationsPath[i] = mediaPath + animationList[i] + "-TgcKeyFrameAnim.xml"; } //Cargar mesh y animaciones var loader = new TgcKeyFrameLoader(); mesh = loader.loadMeshAndAnimationsFromFile(pathMesh, mediaPath, animationsPath); //Agregar combo para elegir animacion Modifiers.addInterval("animation", animationList, 0); selectedAnim = animationList[0]; //Modifier para especificar si la animación se anima con loop animateWithLoop = true; Modifiers.addBoolean("loop", "Loop anim:", animateWithLoop); //Modifier para color currentColor = Color.White; Modifiers.addColor("Color", currentColor); //Modifier para BoundingBox Modifiers.addBoolean("BoundingBox", "BoundingBox:", false); //Elegir animacion Caminando mesh.playAnimation(selectedAnim, true); //Configurar camara Camara = new TgcRotationalCamera(new Vector3(0, 70, 0), 200); }
public override void Init() { var texture = TgcTexture.createTexture(MediaDir + "MeshCreator\\Textures\\Metal\\floor1.jpg"); var center = TGCVector3.Empty; var size = new TGCVector3(1f, 1f, 1f); box = TGCBox.fromSize(center, size, texture); box.Transform = TGCMatrix.Identity; Camara = new TgcRotationalCamera(new TGCVector3(0f, 1.5f, 0f), 5f, Input); }
public override void Init() { createMeshes(); //Crear Material material = new Material(); //Crear una fuente de luz direccional en la posicion 0. D3DDevice.Instance.Device.Lights[0].Type = LightType.Directional; D3DDevice.Instance.Device.Lights[0].Diffuse = Color.White; D3DDevice.Instance.Device.Lights[0].Ambient = Color.White; D3DDevice.Instance.Device.Lights[0].Specular = Color.White; D3DDevice.Instance.Device.Lights[0].Range = 1000; D3DDevice.Instance.Device.Lights[0].Enabled = true; //Habilitar esquema de Iluminacion Dinamica D3DDevice.Instance.Device.RenderState.Lighting = true; //Configurar camara rotacional Camera = new TgcRotationalCamera(TGCVector3.Empty, 15f, Input); //El tipo de mesh para seleccionar. selectedMeshModifier = AddInterval("SelectedMesh", new[] { "Teapot", "Face" }, 0); //Selecciona el modo de shading. shaderModeModifier = AddInterval("ShaderMode", new[] { "Gouraud", "Flat" }, 1); //Habilito o deshabilito mostrar las normales normalesModifier = AddBoolean("Normales", "Mostrar normales", false); //El exponente del nivel de brillo de la iluminacion especular. specularSharpnessModifier = AddFloat("SpecularSharpness", 0, 500f, 100.00f); //Habilita o deshabilita el brillo especular. specularEnabledModifier = AddBoolean("SpecularEnabled", "Enable Specular", true); //Los distintos colores e intensidades de cada uno de los tipos de iluminacion. ambientModifier = AddColor("Ambient", Color.LightSlateGray); diffuseModifier = AddColor("Diffuse", Color.Gray); specularModifier = AddColor("Specular", Color.LightSteelBlue); //Habilita o deshabilita el remarcado de los bordes de cada triangulo. wireframeModifier = AddBoolean("Wireframe", "Enable Wireframe", false); //Habilita o deshabilita el back face culling backFaceCullModifier = AddBoolean("BackFaceCull", "Enable BackFaceCulling", false); //Modifiers para angulos de rotacion de la luz angleXModifier = AddFloat("angleX", 0, 0.005f, 0.0f); angleYModifier = AddFloat("angleY", 0, 0.005f, 0.0f); angleZModifier = AddFloat("angleZ", 0, 0.005f, 0.0f); //Pongo el fondo negro BackgroundColor = Color.Black; }
public override void Init() { time = 0f; var d3dDevice = D3DDevice.Instance.Device; var MyShaderDir = ShadersDir + "WorkshopShaders\\"; //Crear loader var loader = new TgcSceneLoader(); // parallax oclussion scene = loader.loadSceneFromFile(MediaDir + "ModelosTgc\\Piso\\Piso-Custom-TgcScene.xml"); g_pBaseTexture = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\wood.bmp"); g_pHeightmap = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\NM_four_height.tga"); g_pBaseTexture2 = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\stones.bmp"); g_pHeightmap2 = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\NM_height_stones.tga"); g_pBaseTexture3 = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\rocks.jpg"); g_pHeightmap3 = TextureLoader.FromFile(d3dDevice, MediaDir + "Texturas\\NM_height_rocks.tga"); mesh = scene.Meshes[0]; var adj = new int[mesh.D3dMesh.NumberFaces * 3]; mesh.D3dMesh.GenerateAdjacency(0, adj); mesh.D3dMesh.ComputeNormals(adj); //Cargar Shader string compilationErrors; effect = Effect.FromFile(d3dDevice, MyShaderDir + "Parallax.fx", null, null, ShaderFlags.None, null, out compilationErrors); if (effect == null) { throw new Exception("Error al cargar shader. Errores: " + compilationErrors); } Modifiers.addVertex3f("LightDir", new Vector3(-1, -1, -1), new Vector3(1, 1, 1), new Vector3(0, -1, 0)); Modifiers.addFloat("minSample", 1f, 10f, 10f); Modifiers.addFloat("maxSample", 11f, 50f, 50f); Modifiers.addFloat("HeightMapScale", 0.001f, 0.5f, 0.1f); //Centrar camara rotacional respecto a este mesh var rotCamera = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 2, Input); rotCamera.CameraCenter = rotCamera.CameraCenter + new Vector3(0, 20f, 0); rotCamera.CameraDistance = 75; rotCamera.RotationSpeed = 50f; Camara = rotCamera; pom = false; phong = true; nro_textura = 0; }
public override void Init() { var box = TgcBox.fromSize(new Vector3(10, 10, 10), Color.Red); boxMesh = box.toMesh("box"); box.dispose(); time = 0; Camara = new TgcRotationalCamera(box.BoundingBox.calculateBoxCenter(), box.BoundingBox.calculateBoxRadius() * 2); }
public override void Init() { InitializeLights(); InitializeEffect(); InitializeTextures(); InitializeSphere(); InitializeLightBoxes(); InitializeMaterials(); Camera = new TgcRotationalCamera(TGCVector3.Empty, 80f, 1f, Input); }
public override void Init() { //Cargar modelo estatico var loader = new TgcSceneLoader(); var scene = loader.loadSceneFromFile(MediaDir + "MeshCreator\\Meshes\\Vehiculos\\Buggy\\Buggy-TgcScene.xml"); mesh = scene.Meshes[0]; //Alejar camara rotacional segun tamaño del BoundingBox del objeto Camara = new TgcRotationalCamera(mesh.BoundingBox.calculateBoxCenter(), mesh.BoundingBox.calculateBoxRadius() * 2); }
public override void Init() { var texture = TgcTexture.createTexture(MediaDir + "MeshCreator\\Textures\\Metal\\floor1.jpg"); var center = new TGCVector3(0, 0, 0); var size = new TGCVector3(1f, 1f, 1f); box = TGCBox.fromSize(center, size, texture); //Por defecto se deshabilito esto, cada uno debe implementar su modelo de transformaciones. //box.AutoTransformEnable = false; box.Transform = TGCMatrix.Identity; Camara = new TgcRotationalCamera(new TGCVector3(0f, 1.5f, 0f), 20f, Input); }