sajjad1365
پنج شنبه 10 دی 1388, 20:31 عصر
سلام .من این کدها رو برا یه خونه دارم. و میخوام که نور پردازی کنم ولی خیلی از نور پردازی چیزی نمیدونم . میشه کمک کنین؟
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using System.IO;
namespace AP_2
{
public partial class Form1 : Form
{
PresentParameters pp;
Device device3d;
short[] index;
public static int n = 64;
public static CustomVertex.PositionColored[] vertics;
CustomVertex.PositionTextured[] vertics_kaf,vertics_kaf2 ,vertics_kaf3, vertics_sagf,vertics_wall1,vertics_wall2;
CustomVertex.PositionTextured[] vertics_wall3,vertics_wall4,vertics_farsh,vertics_ dar ,vertics_darh ;
CustomVertex.PositionTextured[] vertics_win,vertics_wallch,vertics_wallr,vertics_w allh;
CustomVertex.PositionTextured[] vertics_hoz, vertics_pele, vertics_sagf2, vertics_wallo , vertics_wallo2;
CustomVertex.PositionTextured[] vertics_t, vertics_ash , vertics_ash2, vertics_room ;
CustomVertex.PositionTextured[] vertics_win2, vertics_ash3 , vertics_ash4;
CustomVertex.PositionTextured[] vertics_win3;
Texture tx_kaf,tx_kaf2 ,tx_kaf3,tx_sagf,tx_wall1,tx_wall2,tx_wall3,tx_wal l4,tx_farsh,tx_dar ,tx_darh;
Texture tx_win, tx_pele, tx_sagf2, tx_wallo , tx_wallo2;
Texture tx_wallch,tx_ash ,tx_ash2,tx_room ,tx_ash3 ,tx_ash4;
Texture tx_wallr;
Texture tx_wallh;
Texture tx_hoz;
Texture tx_t;
Texture tx_win2;
Texture tx_win3;
GraphicInput gi;
public static Wallset wset;
Mesh zamin;
public static Vector3 CameraPos, CameraTary,CameraTarg, VpVector;
public Form1()
{
wset = new Wallset(10);
////////////////////////////////////////////////////////////////////////////
InitializeComponent();
SetStyle(ControlStyles.Opaque | ControlStyles.AllPaintingInWmPaint, true);
pp = new PresentParameters();
pp.Windowed = true;
pp.AutoDepthStencilFormat = DepthFormat.D16;
pp.EnableAutoDepthStencil = true;
pp.SwapEffect = SwapEffect.Discard;
device3d = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, pp);
prepareDevice();
///////////////////////////////////////////////////////////////////////////////
vertics_kaf = new CustomVertex.PositionTextured[4];
vertics_kaf[0] = new CustomVertex.PositionTextured(0, 0, 0,5,5);
vertics_kaf[1] = new CustomVertex.PositionTextured(200,0,0,0,5);
vertics_kaf[2] = new CustomVertex.PositionTextured(0,200,0,5,0);
vertics_kaf[3] = new CustomVertex.PositionTextured(200,200, 0, 0, 0);
tx_kaf = TextureLoader.FromFile(device3d, "Wood.jpg");
vertics_kaf2 = new CustomVertex.PositionTextured[4];
vertics_kaf2[0] = new CustomVertex.PositionTextured(0, 200, 0,0,0);
vertics_kaf2[1] = new CustomVertex.PositionTextured(200,200,0,7,0);
vertics_kaf2[2] = new CustomVertex.PositionTextured(0,350,0,0,7);
vertics_kaf2[3] = new CustomVertex.PositionTextured(200, 350, 0, 7, 7);
tx_kaf2 = TextureLoader.FromFile(device3d, "kaf3.jpg");
vertics_ash3 = new CustomVertex.PositionTextured[6];
vertics_ash3[0] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_ash3[1] = new CustomVertex.PositionTextured(110, 0, 180, 5, 0);
vertics_ash3[2] = new CustomVertex.PositionTextured(0, 0, 90, 0, 5);
vertics_ash3[3] = new CustomVertex.PositionTextured(110, 0, 90, 5, 5);
tx_ash3 = TextureLoader.FromFile(device3d, "hayat.bmp");
vertics_ash4 = new CustomVertex.PositionTextured[6];
vertics_ash4[0] = new CustomVertex.PositionTextured(0, 60, 180, 0, 0);
vertics_ash4[1] = new CustomVertex.PositionTextured(0, 0, 180, 5, 0);
vertics_ash4[2] = new CustomVertex.PositionTextured(0, 60, 90, 0, 5);
vertics_ash4[3] = new CustomVertex.PositionTextured(0, 0, 90, 5, 5);
tx_ash4 = TextureLoader.FromFile(device3d, "hayat.bmp");
index = new short[6];
index[0] = 0;
index[1] = 1;
index[2] = 2;
index[3] = 1;
index[4] = 3;
index[5] = 2;
vertics_sagf = new CustomVertex.PositionTextured[6];
vertics_sagf[0] = new CustomVertex.PositionTextured(0, 0, 90, 0, 5);
vertics_sagf[1] = new CustomVertex.PositionTextured(200, 200, 90, 0, 0);
vertics_sagf[2] = new CustomVertex.PositionTextured(0, 200, 90, 5, 5);
vertics_sagf[3] = new CustomVertex.PositionTextured(0, 0, 90, 5, 5);
vertics_sagf[4] = new CustomVertex.PositionTextured(200, 0, 90, 0,0);
vertics_sagf[5] = new CustomVertex.PositionTextured(200, 200, 90, 5, 0);
tx_sagf = TextureLoader.FromFile(device3d, "sagf2.jpg");
vertics_kaf3 = new CustomVertex.PositionTextured[6];
vertics_kaf3[0] = new CustomVertex.PositionTextured(0, 60, 90, 0, 3);
vertics_kaf3[1] = new CustomVertex.PositionTextured(0, 0, 90, 0, 0);
vertics_kaf3[2] = new CustomVertex.PositionTextured(110, 60, 90, 3, 3);
vertics_kaf3[3] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_kaf3[4] = new CustomVertex.PositionTextured(0, 0, 90, 0, 3);
vertics_kaf3[5] = new CustomVertex.PositionTextured(110, 0, 90, 3, 3);
tx_kaf3 = TextureLoader.FromFile(device3d, "blu.bmp");
vertics_sagf2 = new CustomVertex.PositionTextured[6];
vertics_sagf2[0] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_sagf2[1] = new CustomVertex.PositionTextured(200, 200, 180, 5, 0);
vertics_sagf2[2] = new CustomVertex.PositionTextured(0, 200, 180, 0, 5);
vertics_sagf2[3] = new CustomVertex.PositionTextured(0, 0, 180, 5, 0);
vertics_sagf2[4] = new CustomVertex.PositionTextured(200, 0, 180, 5,5);
vertics_sagf2[5] = new CustomVertex.PositionTextured(200, 200, 180, 0, 5);
tx_sagf2 = TextureLoader.FromFile(device3d, "s.jpg");
vertics_pele = new CustomVertex.PositionTextured[6];
vertics_pele[0] = new CustomVertex.PositionTextured(170, 100, 0, 0, 5);
vertics_pele[1] = new CustomVertex.PositionTextured(170, 20, 90, 0, 0);
vertics_pele[2] = new CustomVertex.PositionTextured(200, 100, 0, 1, 5);
vertics_pele[3] = new CustomVertex.PositionTextured(200, 100, 0, 1, 5);
vertics_pele[4] = new CustomVertex.PositionTextured(170, 20, 90, 0, 0);
vertics_pele[5] = new CustomVertex.PositionTextured(200, 20, 90, 1, 0);
tx_pele = TextureLoader.FromFile(device3d, "pele.jpg");
vertics_ash = new CustomVertex.PositionTextured[6];
vertics_ash[0] = new CustomVertex.PositionTextured(0, 60, 90, 0, 5);
vertics_ash[1] = new CustomVertex.PositionTextured(0, 60, 130, 0, 0);
vertics_ash[2] = new CustomVertex.PositionTextured(80, 60, 90, 5, 5);
vertics_ash[3] = new CustomVertex.PositionTextured(80, 60, 90, 5, 5);
vertics_ash[4] = new CustomVertex.PositionTextured(0, 60, 130, 0, 0);
vertics_ash[5] = new CustomVertex.PositionTextured(80, 60, 130, 5, 0);
tx_ash = TextureLoader.FromFile(device3d, "kk.bmp");
vertics_ash2 = new CustomVertex.PositionTextured[6];
vertics_ash2[0] = new CustomVertex.PositionTextured(110, 0, 90, 5, 0);
vertics_ash2[1] = new CustomVertex.PositionTextured(110, 0, 180, 5, 5);
vertics_ash2[2] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_ash2[3] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_ash2[4] = new CustomVertex.PositionTextured(110, 0, 180, 5, 5);
vertics_ash2[5] = new CustomVertex.PositionTextured(110, 60, 180, 0, 5);
tx_ash2 = TextureLoader.FromFile(device3d, "hayat.bmp");
vertics_room = new CustomVertex.PositionTextured[6];
vertics_room[0] = new CustomVertex.PositionTextured(140, 60, 90, 0, 4);
vertics_room[1] = new CustomVertex.PositionTextured(140, 60, 180, 0, 0);
vertics_room[2] = new CustomVertex.PositionTextured(200, 60, 90, 4, 4);
vertics_room[3] = new CustomVertex.PositionTextured(200, 60, 90, 4, 4);
vertics_room[4] = new CustomVertex.PositionTextured(140, 60, 180, 0, 0);
vertics_room[5] = new CustomVertex.PositionTextured(200, 60, 180, 4, 0);
tx_room = TextureLoader.FromFile(device3d, "1.bmp");
vertics_wallch = new CustomVertex.PositionTextured[6];
vertics_wallch[0] = new CustomVertex.PositionTextured(0, 350, 0, 0, 2);
vertics_wallch[1] = new CustomVertex.PositionTextured(0, 350, 90, 0, 0);
vertics_wallch[2] = new CustomVertex.PositionTextured(0, 200, 0, 2, 2);
vertics_wallch[3] = new CustomVertex.PositionTextured(0, 200, 0, 2, 2);
vertics_wallch[4] = new CustomVertex.PositionTextured(0, 350, 90, 0, 0);
vertics_wallch[5] = new CustomVertex.PositionTextured(0, 200, 90, 2, 0);
tx_wallch = TextureLoader.FromFile(device3d, "sagf.jpg");
vertics_wallr = new CustomVertex.PositionTextured[6];
vertics_wallr[0] = new CustomVertex.PositionTextured(200, 200, 0, 2, 0);
vertics_wallr[1] = new CustomVertex.PositionTextured(200, 200, 90, 2, 2);
vertics_wallr[2] = new CustomVertex.PositionTextured(200, 350,0, 0, 0);
vertics_wallr[3] = new CustomVertex.PositionTextured(200, 350, 0, 0, 0);
vertics_wallr[4] = new CustomVertex.PositionTextured(200, 200, 90, 2, 2);
vertics_wallr[5] = new CustomVertex.PositionTextured(200, 350, 90, 0, 2);
tx_wallr = TextureLoader.FromFile(device3d, "sagf.jpg");
wset.add(new wall(198, 202, 0, 350, 0, 180));
vertics_wall1 = new CustomVertex.PositionTextured[6];
vertics_wall1[0] = new CustomVertex.PositionTextured(200, 0, 0, 5, 0);
vertics_wall1[1] = new CustomVertex.PositionTextured(200, 0, 180, 5, 5);
vertics_wall1[2] = new CustomVertex.PositionTextured(200, 200, 0, 0, 0);
vertics_wall1[3] = new CustomVertex.PositionTextured(200, 200, 0, 0, 0);
vertics_wall1[4] = new CustomVertex.PositionTextured(200, 0, 180, 5, 5);
vertics_wall1[5] = new CustomVertex.PositionTextured(200, 200, 180, 0, 5);
tx_wall1 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(0, 200, -2, 2, 0, 180));
vertics_win = new CustomVertex.PositionTextured[6];
vertics_win[0] = new CustomVertex.PositionTextured(1, 110,5, 0, 1);
vertics_win[1] = new CustomVertex.PositionTextured(1, 110, 65, 0, 0);
vertics_win[2] = new CustomVertex.PositionTextured(1, 50, 5, 1, 1);
vertics_win[3] = new CustomVertex.PositionTextured(1, 50, 5, 1, 1);
vertics_win[4] = new CustomVertex.PositionTextured(1, 110, 65, 0, 0);
vertics_win[5] = new CustomVertex.PositionTextured(1, 50, 65, 1, 0);
tx_win = TextureLoader.FromFile(device3d, "w6.jpg");
vertics_wall2 = new CustomVertex.PositionTextured[6];
vertics_wall2[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 5);
vertics_wall2[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall2[2] = new CustomVertex.PositionTextured(0, 0, 0, 5, 5);
vertics_wall2[3] = new CustomVertex.PositionTextured(0, 200, 180, 5, 5);
vertics_wall2[4] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_wall2[5] = new CustomVertex.PositionTextured(0, 0, 0, 5, 0);
tx_wall2 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(198, 202, 0, 200, 0, 180));
vertics_wall3 = new CustomVertex.PositionTextured[6];
vertics_wall3[0] = new CustomVertex.PositionTextured(0, 0, 0, 0, 5);
vertics_wall3[1] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_wall3[2] = new CustomVertex.PositionTextured(200, 0, 0, 5, 5);
vertics_wall3[3] = new CustomVertex.PositionTextured(0, 0, 180, 5,5);
vertics_wall3[4] = new CustomVertex.PositionTextured(200, 0, 180, 0, 0);
vertics_wall3[5] = new CustomVertex.PositionTextured(200, 0, 0, 5, 0);
tx_wall3 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(-1, 1, 0, 200, 0, 180));
vertics_wallh = new CustomVertex.PositionTextured[6];
vertics_wallh[0] = new CustomVertex.PositionTextured(0, 350, 0, 1, 5);
vertics_wallh[1] = new CustomVertex.PositionTextured(0, 350, 90, 1, 1);
vertics_wallh[2] = new CustomVertex.PositionTextured(200, 350, 0, 5, 5);
vertics_wallh[3] = new CustomVertex.PositionTextured(200, 350, 0, 5, 5);
vertics_wallh[4] = new CustomVertex.PositionTextured(0, 350, 90, 1, 1);
vertics_wallh[5] = new CustomVertex.PositionTextured(200, 350, 90, 5, 1);
tx_wallh = TextureLoader.FromFile(device3d, "sagf.jpg");
vertics_wall4 = new CustomVertex.PositionTextured[6];
vertics_wall4[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 7);
vertics_wall4[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall4[2] = new CustomVertex.PositionTextured(200, 200, 0, 8, 7);
vertics_wall4[3] = new CustomVertex.PositionTextured(200, 200, 0, 8, 7);
vertics_wall4[4] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall4[5] = new CustomVertex.PositionTextured(200, 200, 180, 8, 0);
tx_wall4 = TextureLoader.FromFile(device3d, "1.jpg");
wset.add(new wall(0, 150, 198, 202, 0, 180));
wset.add(new wall(190, 200, 198, 202, 0, 180));
wset.add(new wall(150, 190, 198, 202, 90, 180));
vertics_wallo = new CustomVertex.PositionTextured[6];
vertics_wallo[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 5);
vertics_wallo[1] = new CustomVertex.PositionTextured(0, 200, 90, 0, 0);
vertics_wallo[2] = new CustomVertex.PositionTextured(200, 200, 0, 5, 5);
vertics_wallo[3] = new CustomVertex.PositionTextured(200, 200, 0, 5, 5);
vertics_wallo[4] = new CustomVertex.PositionTextured(0, 200, 90, 0, 0);
vertics_wallo[5] = new CustomVertex.PositionTextured(200, 200, 90, 5, 0);
tx_wallo = TextureLoader.FromFile(device3d, "1.bmp");
vertics_wallo2 = new CustomVertex.PositionTextured[6];
vertics_wallo2[0] = new CustomVertex.PositionTextured(0, 200, 90, 0, 5);
vertics_wallo2[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wallo2[2] = new CustomVertex.PositionTextured(200, 200, 90, 5, 5);
vertics_wallo2[3] = new CustomVertex.PositionTextured(200, 200, 90, 5, 5);
vertics_wallo2[4] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wallo2[5] = new CustomVertex.PositionTextured(200, 200, 180, 5, 0);
tx_wallo2 = TextureLoader.FromFile(device3d, "1.bmp");
vertics_win2 = new CustomVertex.PositionTextured[6];
vertics_win2[0] = new CustomVertex.PositionTextured(25, 200, 110, 0, 1);
vertics_win2[1] = new CustomVertex.PositionTextured(25, 200, 150, 0, 0);
vertics_win2[2] = new CustomVertex.PositionTextured(70, 200, 110, 1, 1);
vertics_win2[3] = new CustomVertex.PositionTextured(70, 200, 110, 1, 1);
vertics_win2[4] = new CustomVertex.PositionTextured(25, 200, 150, 0, 0);
vertics_win2[5] = new CustomVertex.PositionTextured(70, 200, 150, 1, 0);
tx_win2 = TextureLoader.FromFile(device3d, "w2.jpg");
vertics_win3 = new CustomVertex.PositionTextured[6];
vertics_win3[0] = new CustomVertex.PositionTextured(100, 200, 110, 0, 1);
vertics_win3[1] = new CustomVertex.PositionTextured(100, 200, 150, 0, 0);
vertics_win3[2] = new CustomVertex.PositionTextured(150, 200, 110, 1, 1);
vertics_win3[3] = new CustomVertex.PositionTextured(150, 200, 110, 1, 1);
vertics_win3[4] = new CustomVertex.PositionTextured(100, 200, 150, 0, 0);
vertics_win3[5] = new CustomVertex.PositionTextured(150, 200, 150, 1, 0);
tx_win3 = TextureLoader.FromFile(device3d, "w2.jpg");
vertics_farsh = new CustomVertex.PositionTextured[6];
vertics_farsh[0] = new CustomVertex.PositionTextured(50, 50, 1, 0, 0);
vertics_farsh[1] = new CustomVertex.PositionTextured(150, 50, 1, 1, 0);
vertics_farsh[2] = new CustomVertex.PositionTextured(150, 150, 1, 1, 1);
vertics_farsh[3] = new CustomVertex.PositionTextured(50, 50, 1, 0, 0);
vertics_farsh[4] = new CustomVertex.PositionTextured(150, 150, 1, 1, 1);
vertics_farsh[5] = new CustomVertex.PositionTextured(50, 150, 1, 0, 1);
tx_farsh = TextureLoader.FromFile(device3d, "farsh5.jpg");
vertics_hoz = new CustomVertex.PositionTextured[6];
vertics_hoz[0] = new CustomVertex.PositionTextured(50, 260, 1, 0, 1);
vertics_hoz[1] = new CustomVertex.PositionTextured(50, 220, 1, 0, 0);
vertics_hoz[2] = new CustomVertex.PositionTextured(120, 260, 1, 1, 1);
vertics_hoz[3] = new CustomVertex.PositionTextured(120, 260, 1, 1, 1);
vertics_hoz[4] = new CustomVertex.PositionTextured(50, 220, 1, 0, 0);
vertics_hoz[5] = new CustomVertex.PositionTextured(120, 220, 1, 1, 0);
tx_hoz = TextureLoader.FromFile(device3d, "hoz.jpg");
vertics_dar = new CustomVertex.PositionTextured[6];
vertics_dar[0] = new CustomVertex.PositionTextured(150, 201, 0, 0, 1);
vertics_dar[1] = new CustomVertex.PositionTextured(150, 201, 70, 0,0);
vertics_dar[2] = new CustomVertex.PositionTextured(190, 201, 0, 1, 1);
vertics_dar[3] = new CustomVertex.PositionTextured(150, 201, 70, 0, 0);
vertics_dar[4] = new CustomVertex.PositionTextured(190, 201, 70, 1, 0);
vertics_dar[5] = new CustomVertex.PositionTextured(190, 201, 0, 1, 1);
tx_dar = TextureLoader.FromFile(device3d, "dar1.jpg");
vertics_darh = new CustomVertex.PositionTextured[6];
vertics_darh[0] = new CustomVertex.PositionTextured(100, 351, 0, 0, 1);
vertics_darh[1] = new CustomVertex.PositionTextured(100, 351, 70, 0,0);
vertics_darh[2] = new CustomVertex.PositionTextured(190, 351, 0, 1, 1);
vertics_darh[3] = new CustomVertex.PositionTextured(100, 351, 70, 0, 0);
vertics_darh[4] = new CustomVertex.PositionTextured(190, 351, 70, 1, 0);
vertics_darh[5] = new CustomVertex.PositionTextured(190, 351, 0, 1, 1);
tx_darh = TextureLoader.FromFile(device3d, "darh.jpg");
vertics_t = new CustomVertex.PositionTextured[6];
vertics_t[0] = new CustomVertex.PositionTextured(199, 150, 40, 0, 1);
vertics_t[1] = new CustomVertex.PositionTextured(199, 150, 70, 0, 0);
vertics_t[2] = new CustomVertex.PositionTextured(199, 170, 40, 1, 1);
vertics_t[3] = new CustomVertex.PositionTextured(199, 170, 40, 1, 1);
vertics_t[4] = new CustomVertex.PositionTextured(199, 150, 70, 0, 0);
vertics_t[5] = new CustomVertex.PositionTextured(199, 170, 70, 1, 0);
tx_t = TextureLoader.FromFile(device3d, "o.jpg");
CameraPos = new Vector3(100, 440, 160);
CameraTarg = new Vector3(100, 0, 30);
// CameraPos = new Vector3(100,50,-100);
// CameraTary = new Vector3(100, 150, 150);
// CameraPos = new Vector3(100, 60,0);
//CameraTary = new Vector3(100, 100, 200);
VpVector = new Vector3(0, 0, 1);
// device3d.RenderState.Lighting = false;
gi = new GraphicInput();
}
}
protected override void OnPaint(PaintEventArgs e)
{
device3d.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1, 0);
// device3d.Clear(ClearFlags.Target, Color.LightBlue, 1, 0);
device3d.BeginScene();
device3d.VertexFormat = CustomVertex.PositionTextured.Format;
device3d.SetTexture(0, tx_kaf);
device3d.DrawIndexedUserPrimitives(PrimitiveType.T riangleList, 0,4,2,index ,true , vertics_kaf);
device3d.SetTexture(0, tx_farsh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_farsh);
device3d.SetTexture(0, tx_wall2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall2);
device3d.SetTexture(0, tx_wall3);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall3);
device3d.SetTexture(0, tx_win);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win);
device3d.SetTexture(0, tx_wall1);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall1);
device3d.SetTexture(0, tx_pele);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_pele);
device3d.SetTexture(0, tx_t);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_t);
device3d.SetTexture(0, tx_sagf2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_sagf2);
device3d.SetTexture(0, tx_sagf);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_sagf);
device3d.SetTexture(0, tx_wall4);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall4);
device3d.SetTexture(0, tx_win2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win2);
device3d.SetTexture(0, tx_win3);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win3);
device3d.SetTexture(0, tx_wallch);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallch);
device3d.SetTexture(0, tx_kaf2);
device3d.DrawIndexedUserPrimitives(PrimitiveType.T riangleList, 0,4,2,index,true , vertics_kaf2);
device3d.SetTexture(0, tx_wallr);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallr);
device3d.SetTexture(0, tx_hoz);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_hoz);
device3d.SetTexture(0, tx_dar);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_dar);
device3d.SetTexture(0, tx_wallh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallh);
device3d.SetTexture(0, tx_darh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_darh);
}
device3d.EndScene();
//device3d.RenderState.CullMode = Cull.None;
device3d.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 2, Width / Height, 1, 1000);
device3d.Transform.View = Matrix.LookAtLH(CameraPos,CameraTarg ,VpVector);
// CameraPos.Y-= 0.5f;
// CameraTary.Y -=0.5f;
zamin.DrawSubset(0);
Invalidate();
device3d.Present();
gi.checkInput();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using System.IO;
namespace AP_2
{
public partial class Form1 : Form
{
PresentParameters pp;
Device device3d;
short[] index;
public static int n = 64;
public static CustomVertex.PositionColored[] vertics;
CustomVertex.PositionTextured[] vertics_kaf,vertics_kaf2 ,vertics_kaf3, vertics_sagf,vertics_wall1,vertics_wall2;
CustomVertex.PositionTextured[] vertics_wall3,vertics_wall4,vertics_farsh,vertics_ dar ,vertics_darh ;
CustomVertex.PositionTextured[] vertics_win,vertics_wallch,vertics_wallr,vertics_w allh;
CustomVertex.PositionTextured[] vertics_hoz, vertics_pele, vertics_sagf2, vertics_wallo , vertics_wallo2;
CustomVertex.PositionTextured[] vertics_t, vertics_ash , vertics_ash2, vertics_room ;
CustomVertex.PositionTextured[] vertics_win2, vertics_ash3 , vertics_ash4;
CustomVertex.PositionTextured[] vertics_win3;
Texture tx_kaf,tx_kaf2 ,tx_kaf3,tx_sagf,tx_wall1,tx_wall2,tx_wall3,tx_wal l4,tx_farsh,tx_dar ,tx_darh;
Texture tx_win, tx_pele, tx_sagf2, tx_wallo , tx_wallo2;
Texture tx_wallch,tx_ash ,tx_ash2,tx_room ,tx_ash3 ,tx_ash4;
Texture tx_wallr;
Texture tx_wallh;
Texture tx_hoz;
Texture tx_t;
Texture tx_win2;
Texture tx_win3;
GraphicInput gi;
public static Wallset wset;
Mesh zamin;
public static Vector3 CameraPos, CameraTary,CameraTarg, VpVector;
public Form1()
{
wset = new Wallset(10);
////////////////////////////////////////////////////////////////////////////
InitializeComponent();
SetStyle(ControlStyles.Opaque | ControlStyles.AllPaintingInWmPaint, true);
pp = new PresentParameters();
pp.Windowed = true;
pp.AutoDepthStencilFormat = DepthFormat.D16;
pp.EnableAutoDepthStencil = true;
pp.SwapEffect = SwapEffect.Discard;
device3d = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, pp);
prepareDevice();
///////////////////////////////////////////////////////////////////////////////
vertics_kaf = new CustomVertex.PositionTextured[4];
vertics_kaf[0] = new CustomVertex.PositionTextured(0, 0, 0,5,5);
vertics_kaf[1] = new CustomVertex.PositionTextured(200,0,0,0,5);
vertics_kaf[2] = new CustomVertex.PositionTextured(0,200,0,5,0);
vertics_kaf[3] = new CustomVertex.PositionTextured(200,200, 0, 0, 0);
tx_kaf = TextureLoader.FromFile(device3d, "Wood.jpg");
vertics_kaf2 = new CustomVertex.PositionTextured[4];
vertics_kaf2[0] = new CustomVertex.PositionTextured(0, 200, 0,0,0);
vertics_kaf2[1] = new CustomVertex.PositionTextured(200,200,0,7,0);
vertics_kaf2[2] = new CustomVertex.PositionTextured(0,350,0,0,7);
vertics_kaf2[3] = new CustomVertex.PositionTextured(200, 350, 0, 7, 7);
tx_kaf2 = TextureLoader.FromFile(device3d, "kaf3.jpg");
vertics_ash3 = new CustomVertex.PositionTextured[6];
vertics_ash3[0] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_ash3[1] = new CustomVertex.PositionTextured(110, 0, 180, 5, 0);
vertics_ash3[2] = new CustomVertex.PositionTextured(0, 0, 90, 0, 5);
vertics_ash3[3] = new CustomVertex.PositionTextured(110, 0, 90, 5, 5);
tx_ash3 = TextureLoader.FromFile(device3d, "hayat.bmp");
vertics_ash4 = new CustomVertex.PositionTextured[6];
vertics_ash4[0] = new CustomVertex.PositionTextured(0, 60, 180, 0, 0);
vertics_ash4[1] = new CustomVertex.PositionTextured(0, 0, 180, 5, 0);
vertics_ash4[2] = new CustomVertex.PositionTextured(0, 60, 90, 0, 5);
vertics_ash4[3] = new CustomVertex.PositionTextured(0, 0, 90, 5, 5);
tx_ash4 = TextureLoader.FromFile(device3d, "hayat.bmp");
index = new short[6];
index[0] = 0;
index[1] = 1;
index[2] = 2;
index[3] = 1;
index[4] = 3;
index[5] = 2;
vertics_sagf = new CustomVertex.PositionTextured[6];
vertics_sagf[0] = new CustomVertex.PositionTextured(0, 0, 90, 0, 5);
vertics_sagf[1] = new CustomVertex.PositionTextured(200, 200, 90, 0, 0);
vertics_sagf[2] = new CustomVertex.PositionTextured(0, 200, 90, 5, 5);
vertics_sagf[3] = new CustomVertex.PositionTextured(0, 0, 90, 5, 5);
vertics_sagf[4] = new CustomVertex.PositionTextured(200, 0, 90, 0,0);
vertics_sagf[5] = new CustomVertex.PositionTextured(200, 200, 90, 5, 0);
tx_sagf = TextureLoader.FromFile(device3d, "sagf2.jpg");
vertics_kaf3 = new CustomVertex.PositionTextured[6];
vertics_kaf3[0] = new CustomVertex.PositionTextured(0, 60, 90, 0, 3);
vertics_kaf3[1] = new CustomVertex.PositionTextured(0, 0, 90, 0, 0);
vertics_kaf3[2] = new CustomVertex.PositionTextured(110, 60, 90, 3, 3);
vertics_kaf3[3] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_kaf3[4] = new CustomVertex.PositionTextured(0, 0, 90, 0, 3);
vertics_kaf3[5] = new CustomVertex.PositionTextured(110, 0, 90, 3, 3);
tx_kaf3 = TextureLoader.FromFile(device3d, "blu.bmp");
vertics_sagf2 = new CustomVertex.PositionTextured[6];
vertics_sagf2[0] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_sagf2[1] = new CustomVertex.PositionTextured(200, 200, 180, 5, 0);
vertics_sagf2[2] = new CustomVertex.PositionTextured(0, 200, 180, 0, 5);
vertics_sagf2[3] = new CustomVertex.PositionTextured(0, 0, 180, 5, 0);
vertics_sagf2[4] = new CustomVertex.PositionTextured(200, 0, 180, 5,5);
vertics_sagf2[5] = new CustomVertex.PositionTextured(200, 200, 180, 0, 5);
tx_sagf2 = TextureLoader.FromFile(device3d, "s.jpg");
vertics_pele = new CustomVertex.PositionTextured[6];
vertics_pele[0] = new CustomVertex.PositionTextured(170, 100, 0, 0, 5);
vertics_pele[1] = new CustomVertex.PositionTextured(170, 20, 90, 0, 0);
vertics_pele[2] = new CustomVertex.PositionTextured(200, 100, 0, 1, 5);
vertics_pele[3] = new CustomVertex.PositionTextured(200, 100, 0, 1, 5);
vertics_pele[4] = new CustomVertex.PositionTextured(170, 20, 90, 0, 0);
vertics_pele[5] = new CustomVertex.PositionTextured(200, 20, 90, 1, 0);
tx_pele = TextureLoader.FromFile(device3d, "pele.jpg");
vertics_ash = new CustomVertex.PositionTextured[6];
vertics_ash[0] = new CustomVertex.PositionTextured(0, 60, 90, 0, 5);
vertics_ash[1] = new CustomVertex.PositionTextured(0, 60, 130, 0, 0);
vertics_ash[2] = new CustomVertex.PositionTextured(80, 60, 90, 5, 5);
vertics_ash[3] = new CustomVertex.PositionTextured(80, 60, 90, 5, 5);
vertics_ash[4] = new CustomVertex.PositionTextured(0, 60, 130, 0, 0);
vertics_ash[5] = new CustomVertex.PositionTextured(80, 60, 130, 5, 0);
tx_ash = TextureLoader.FromFile(device3d, "kk.bmp");
vertics_ash2 = new CustomVertex.PositionTextured[6];
vertics_ash2[0] = new CustomVertex.PositionTextured(110, 0, 90, 5, 0);
vertics_ash2[1] = new CustomVertex.PositionTextured(110, 0, 180, 5, 5);
vertics_ash2[2] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_ash2[3] = new CustomVertex.PositionTextured(110, 60, 90, 0, 0);
vertics_ash2[4] = new CustomVertex.PositionTextured(110, 0, 180, 5, 5);
vertics_ash2[5] = new CustomVertex.PositionTextured(110, 60, 180, 0, 5);
tx_ash2 = TextureLoader.FromFile(device3d, "hayat.bmp");
vertics_room = new CustomVertex.PositionTextured[6];
vertics_room[0] = new CustomVertex.PositionTextured(140, 60, 90, 0, 4);
vertics_room[1] = new CustomVertex.PositionTextured(140, 60, 180, 0, 0);
vertics_room[2] = new CustomVertex.PositionTextured(200, 60, 90, 4, 4);
vertics_room[3] = new CustomVertex.PositionTextured(200, 60, 90, 4, 4);
vertics_room[4] = new CustomVertex.PositionTextured(140, 60, 180, 0, 0);
vertics_room[5] = new CustomVertex.PositionTextured(200, 60, 180, 4, 0);
tx_room = TextureLoader.FromFile(device3d, "1.bmp");
vertics_wallch = new CustomVertex.PositionTextured[6];
vertics_wallch[0] = new CustomVertex.PositionTextured(0, 350, 0, 0, 2);
vertics_wallch[1] = new CustomVertex.PositionTextured(0, 350, 90, 0, 0);
vertics_wallch[2] = new CustomVertex.PositionTextured(0, 200, 0, 2, 2);
vertics_wallch[3] = new CustomVertex.PositionTextured(0, 200, 0, 2, 2);
vertics_wallch[4] = new CustomVertex.PositionTextured(0, 350, 90, 0, 0);
vertics_wallch[5] = new CustomVertex.PositionTextured(0, 200, 90, 2, 0);
tx_wallch = TextureLoader.FromFile(device3d, "sagf.jpg");
vertics_wallr = new CustomVertex.PositionTextured[6];
vertics_wallr[0] = new CustomVertex.PositionTextured(200, 200, 0, 2, 0);
vertics_wallr[1] = new CustomVertex.PositionTextured(200, 200, 90, 2, 2);
vertics_wallr[2] = new CustomVertex.PositionTextured(200, 350,0, 0, 0);
vertics_wallr[3] = new CustomVertex.PositionTextured(200, 350, 0, 0, 0);
vertics_wallr[4] = new CustomVertex.PositionTextured(200, 200, 90, 2, 2);
vertics_wallr[5] = new CustomVertex.PositionTextured(200, 350, 90, 0, 2);
tx_wallr = TextureLoader.FromFile(device3d, "sagf.jpg");
wset.add(new wall(198, 202, 0, 350, 0, 180));
vertics_wall1 = new CustomVertex.PositionTextured[6];
vertics_wall1[0] = new CustomVertex.PositionTextured(200, 0, 0, 5, 0);
vertics_wall1[1] = new CustomVertex.PositionTextured(200, 0, 180, 5, 5);
vertics_wall1[2] = new CustomVertex.PositionTextured(200, 200, 0, 0, 0);
vertics_wall1[3] = new CustomVertex.PositionTextured(200, 200, 0, 0, 0);
vertics_wall1[4] = new CustomVertex.PositionTextured(200, 0, 180, 5, 5);
vertics_wall1[5] = new CustomVertex.PositionTextured(200, 200, 180, 0, 5);
tx_wall1 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(0, 200, -2, 2, 0, 180));
vertics_win = new CustomVertex.PositionTextured[6];
vertics_win[0] = new CustomVertex.PositionTextured(1, 110,5, 0, 1);
vertics_win[1] = new CustomVertex.PositionTextured(1, 110, 65, 0, 0);
vertics_win[2] = new CustomVertex.PositionTextured(1, 50, 5, 1, 1);
vertics_win[3] = new CustomVertex.PositionTextured(1, 50, 5, 1, 1);
vertics_win[4] = new CustomVertex.PositionTextured(1, 110, 65, 0, 0);
vertics_win[5] = new CustomVertex.PositionTextured(1, 50, 65, 1, 0);
tx_win = TextureLoader.FromFile(device3d, "w6.jpg");
vertics_wall2 = new CustomVertex.PositionTextured[6];
vertics_wall2[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 5);
vertics_wall2[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall2[2] = new CustomVertex.PositionTextured(0, 0, 0, 5, 5);
vertics_wall2[3] = new CustomVertex.PositionTextured(0, 200, 180, 5, 5);
vertics_wall2[4] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_wall2[5] = new CustomVertex.PositionTextured(0, 0, 0, 5, 0);
tx_wall2 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(198, 202, 0, 200, 0, 180));
vertics_wall3 = new CustomVertex.PositionTextured[6];
vertics_wall3[0] = new CustomVertex.PositionTextured(0, 0, 0, 0, 5);
vertics_wall3[1] = new CustomVertex.PositionTextured(0, 0, 180, 0, 0);
vertics_wall3[2] = new CustomVertex.PositionTextured(200, 0, 0, 5, 5);
vertics_wall3[3] = new CustomVertex.PositionTextured(0, 0, 180, 5,5);
vertics_wall3[4] = new CustomVertex.PositionTextured(200, 0, 180, 0, 0);
vertics_wall3[5] = new CustomVertex.PositionTextured(200, 0, 0, 5, 0);
tx_wall3 = TextureLoader.FromFile(device3d, "1.bmp");
wset.add(new wall(-1, 1, 0, 200, 0, 180));
vertics_wallh = new CustomVertex.PositionTextured[6];
vertics_wallh[0] = new CustomVertex.PositionTextured(0, 350, 0, 1, 5);
vertics_wallh[1] = new CustomVertex.PositionTextured(0, 350, 90, 1, 1);
vertics_wallh[2] = new CustomVertex.PositionTextured(200, 350, 0, 5, 5);
vertics_wallh[3] = new CustomVertex.PositionTextured(200, 350, 0, 5, 5);
vertics_wallh[4] = new CustomVertex.PositionTextured(0, 350, 90, 1, 1);
vertics_wallh[5] = new CustomVertex.PositionTextured(200, 350, 90, 5, 1);
tx_wallh = TextureLoader.FromFile(device3d, "sagf.jpg");
vertics_wall4 = new CustomVertex.PositionTextured[6];
vertics_wall4[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 7);
vertics_wall4[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall4[2] = new CustomVertex.PositionTextured(200, 200, 0, 8, 7);
vertics_wall4[3] = new CustomVertex.PositionTextured(200, 200, 0, 8, 7);
vertics_wall4[4] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wall4[5] = new CustomVertex.PositionTextured(200, 200, 180, 8, 0);
tx_wall4 = TextureLoader.FromFile(device3d, "1.jpg");
wset.add(new wall(0, 150, 198, 202, 0, 180));
wset.add(new wall(190, 200, 198, 202, 0, 180));
wset.add(new wall(150, 190, 198, 202, 90, 180));
vertics_wallo = new CustomVertex.PositionTextured[6];
vertics_wallo[0] = new CustomVertex.PositionTextured(0, 200, 0, 0, 5);
vertics_wallo[1] = new CustomVertex.PositionTextured(0, 200, 90, 0, 0);
vertics_wallo[2] = new CustomVertex.PositionTextured(200, 200, 0, 5, 5);
vertics_wallo[3] = new CustomVertex.PositionTextured(200, 200, 0, 5, 5);
vertics_wallo[4] = new CustomVertex.PositionTextured(0, 200, 90, 0, 0);
vertics_wallo[5] = new CustomVertex.PositionTextured(200, 200, 90, 5, 0);
tx_wallo = TextureLoader.FromFile(device3d, "1.bmp");
vertics_wallo2 = new CustomVertex.PositionTextured[6];
vertics_wallo2[0] = new CustomVertex.PositionTextured(0, 200, 90, 0, 5);
vertics_wallo2[1] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wallo2[2] = new CustomVertex.PositionTextured(200, 200, 90, 5, 5);
vertics_wallo2[3] = new CustomVertex.PositionTextured(200, 200, 90, 5, 5);
vertics_wallo2[4] = new CustomVertex.PositionTextured(0, 200, 180, 0, 0);
vertics_wallo2[5] = new CustomVertex.PositionTextured(200, 200, 180, 5, 0);
tx_wallo2 = TextureLoader.FromFile(device3d, "1.bmp");
vertics_win2 = new CustomVertex.PositionTextured[6];
vertics_win2[0] = new CustomVertex.PositionTextured(25, 200, 110, 0, 1);
vertics_win2[1] = new CustomVertex.PositionTextured(25, 200, 150, 0, 0);
vertics_win2[2] = new CustomVertex.PositionTextured(70, 200, 110, 1, 1);
vertics_win2[3] = new CustomVertex.PositionTextured(70, 200, 110, 1, 1);
vertics_win2[4] = new CustomVertex.PositionTextured(25, 200, 150, 0, 0);
vertics_win2[5] = new CustomVertex.PositionTextured(70, 200, 150, 1, 0);
tx_win2 = TextureLoader.FromFile(device3d, "w2.jpg");
vertics_win3 = new CustomVertex.PositionTextured[6];
vertics_win3[0] = new CustomVertex.PositionTextured(100, 200, 110, 0, 1);
vertics_win3[1] = new CustomVertex.PositionTextured(100, 200, 150, 0, 0);
vertics_win3[2] = new CustomVertex.PositionTextured(150, 200, 110, 1, 1);
vertics_win3[3] = new CustomVertex.PositionTextured(150, 200, 110, 1, 1);
vertics_win3[4] = new CustomVertex.PositionTextured(100, 200, 150, 0, 0);
vertics_win3[5] = new CustomVertex.PositionTextured(150, 200, 150, 1, 0);
tx_win3 = TextureLoader.FromFile(device3d, "w2.jpg");
vertics_farsh = new CustomVertex.PositionTextured[6];
vertics_farsh[0] = new CustomVertex.PositionTextured(50, 50, 1, 0, 0);
vertics_farsh[1] = new CustomVertex.PositionTextured(150, 50, 1, 1, 0);
vertics_farsh[2] = new CustomVertex.PositionTextured(150, 150, 1, 1, 1);
vertics_farsh[3] = new CustomVertex.PositionTextured(50, 50, 1, 0, 0);
vertics_farsh[4] = new CustomVertex.PositionTextured(150, 150, 1, 1, 1);
vertics_farsh[5] = new CustomVertex.PositionTextured(50, 150, 1, 0, 1);
tx_farsh = TextureLoader.FromFile(device3d, "farsh5.jpg");
vertics_hoz = new CustomVertex.PositionTextured[6];
vertics_hoz[0] = new CustomVertex.PositionTextured(50, 260, 1, 0, 1);
vertics_hoz[1] = new CustomVertex.PositionTextured(50, 220, 1, 0, 0);
vertics_hoz[2] = new CustomVertex.PositionTextured(120, 260, 1, 1, 1);
vertics_hoz[3] = new CustomVertex.PositionTextured(120, 260, 1, 1, 1);
vertics_hoz[4] = new CustomVertex.PositionTextured(50, 220, 1, 0, 0);
vertics_hoz[5] = new CustomVertex.PositionTextured(120, 220, 1, 1, 0);
tx_hoz = TextureLoader.FromFile(device3d, "hoz.jpg");
vertics_dar = new CustomVertex.PositionTextured[6];
vertics_dar[0] = new CustomVertex.PositionTextured(150, 201, 0, 0, 1);
vertics_dar[1] = new CustomVertex.PositionTextured(150, 201, 70, 0,0);
vertics_dar[2] = new CustomVertex.PositionTextured(190, 201, 0, 1, 1);
vertics_dar[3] = new CustomVertex.PositionTextured(150, 201, 70, 0, 0);
vertics_dar[4] = new CustomVertex.PositionTextured(190, 201, 70, 1, 0);
vertics_dar[5] = new CustomVertex.PositionTextured(190, 201, 0, 1, 1);
tx_dar = TextureLoader.FromFile(device3d, "dar1.jpg");
vertics_darh = new CustomVertex.PositionTextured[6];
vertics_darh[0] = new CustomVertex.PositionTextured(100, 351, 0, 0, 1);
vertics_darh[1] = new CustomVertex.PositionTextured(100, 351, 70, 0,0);
vertics_darh[2] = new CustomVertex.PositionTextured(190, 351, 0, 1, 1);
vertics_darh[3] = new CustomVertex.PositionTextured(100, 351, 70, 0, 0);
vertics_darh[4] = new CustomVertex.PositionTextured(190, 351, 70, 1, 0);
vertics_darh[5] = new CustomVertex.PositionTextured(190, 351, 0, 1, 1);
tx_darh = TextureLoader.FromFile(device3d, "darh.jpg");
vertics_t = new CustomVertex.PositionTextured[6];
vertics_t[0] = new CustomVertex.PositionTextured(199, 150, 40, 0, 1);
vertics_t[1] = new CustomVertex.PositionTextured(199, 150, 70, 0, 0);
vertics_t[2] = new CustomVertex.PositionTextured(199, 170, 40, 1, 1);
vertics_t[3] = new CustomVertex.PositionTextured(199, 170, 40, 1, 1);
vertics_t[4] = new CustomVertex.PositionTextured(199, 150, 70, 0, 0);
vertics_t[5] = new CustomVertex.PositionTextured(199, 170, 70, 1, 0);
tx_t = TextureLoader.FromFile(device3d, "o.jpg");
CameraPos = new Vector3(100, 440, 160);
CameraTarg = new Vector3(100, 0, 30);
// CameraPos = new Vector3(100,50,-100);
// CameraTary = new Vector3(100, 150, 150);
// CameraPos = new Vector3(100, 60,0);
//CameraTary = new Vector3(100, 100, 200);
VpVector = new Vector3(0, 0, 1);
// device3d.RenderState.Lighting = false;
gi = new GraphicInput();
}
}
protected override void OnPaint(PaintEventArgs e)
{
device3d.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1, 0);
// device3d.Clear(ClearFlags.Target, Color.LightBlue, 1, 0);
device3d.BeginScene();
device3d.VertexFormat = CustomVertex.PositionTextured.Format;
device3d.SetTexture(0, tx_kaf);
device3d.DrawIndexedUserPrimitives(PrimitiveType.T riangleList, 0,4,2,index ,true , vertics_kaf);
device3d.SetTexture(0, tx_farsh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_farsh);
device3d.SetTexture(0, tx_wall2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall2);
device3d.SetTexture(0, tx_wall3);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall3);
device3d.SetTexture(0, tx_win);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win);
device3d.SetTexture(0, tx_wall1);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall1);
device3d.SetTexture(0, tx_pele);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_pele);
device3d.SetTexture(0, tx_t);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_t);
device3d.SetTexture(0, tx_sagf2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_sagf2);
device3d.SetTexture(0, tx_sagf);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_sagf);
device3d.SetTexture(0, tx_wall4);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wall4);
device3d.SetTexture(0, tx_win2);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win2);
device3d.SetTexture(0, tx_win3);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_win3);
device3d.SetTexture(0, tx_wallch);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallch);
device3d.SetTexture(0, tx_kaf2);
device3d.DrawIndexedUserPrimitives(PrimitiveType.T riangleList, 0,4,2,index,true , vertics_kaf2);
device3d.SetTexture(0, tx_wallr);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallr);
device3d.SetTexture(0, tx_hoz);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_hoz);
device3d.SetTexture(0, tx_dar);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_dar);
device3d.SetTexture(0, tx_wallh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_wallh);
device3d.SetTexture(0, tx_darh);
device3d.DrawUserPrimitives(PrimitiveType.Triangle List, 2, vertics_darh);
}
device3d.EndScene();
//device3d.RenderState.CullMode = Cull.None;
device3d.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 2, Width / Height, 1, 1000);
device3d.Transform.View = Matrix.LookAtLH(CameraPos,CameraTarg ,VpVector);
// CameraPos.Y-= 0.5f;
// CameraTary.Y -=0.5f;
zamin.DrawSubset(0);
Invalidate();
device3d.Present();
gi.checkInput();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
}
}
}