private void pictureBox1_Click(object sender, EventArgs e) { Convolution[] Convs = new Convolution[3]; Convs[0].Operation = Operation.Plus; Convs[1].Operation = (Operation)cmbOp2.SelectedIndex; Convs[2].Operation = (Operation)cmbOp3.SelectedIndex; Convs[0].Coef = Convert.ToDouble(tbCoef1.Text); Convs[1].Coef = Convert.ToDouble(tbCoef2.Text); Convs[2].Coef = Convert.ToDouble(tbCoef3.Text); L.GenerateHeightmap(Convert.ToInt32(tbSizeX.Text), Convert.ToInt32(tbSizeY.Text), (GenMethod)cmbGenMethod.SelectedIndex, Convs, cbSmoothing.Checked, cbValley.Checked, cbIsland.Checked); L.BuildMesh(new Vector(Convert.ToDouble(tbSizeX.Text), Convert.ToDouble(tbSizeY.Text), Convert.ToDouble(tbSizeZ.Text))); int i, j; Bitmap B = new Bitmap(L.SizeX, L.SizeY); for (i = 0; i < B.Width; i++) { for (j = 0; j < B.Height; j++) { byte X = Convert.ToByte(L.Heightmap[i, j] * 255); B.SetPixel(i, j, Color.FromArgb(X, X, X)); } } pictureBox1.Image = B; }
private void button3_Click(object sender, EventArgs e) { int LightCount = 0; if (cbLight1.Checked) { LightCount++; } if (cbLight2.Checked) { LightCount++; } if (cbLight3.Checked) { LightCount++; } if (cbLight4.Checked) { LightCount++; } if (cbLight5.Checked) { LightCount++; } Light[] Sources = new Light[LightCount]; double c1 = Convert.ToDouble(tb_c1.Text); double c2 = Convert.ToDouble(tb_c2.Text); double c3 = Convert.ToDouble(tb_c3.Text); Vector S = new Vector(Convert.ToDouble(tbSizeX.Text), Convert.ToDouble(tbSizeY.Text), Convert.ToDouble(tbSizeZ.Text)); int i = 0, j; if (cbLight1.Checked) { if (cbPointLight1.Checked) { Sources[i] = new PointLight(ColorToVector(btnAmbient1.BackColor), ColorToVector(btnDiffuse1.BackColor), ColorToVector(btnSpecular1.BackColor), c1, c2, c3, StringToVector(tbLight1.Text) | S); } else { Sources[i] = new DirLight(ColorToVector(btnAmbient1.BackColor), ColorToVector(btnDiffuse1.BackColor), ColorToVector(btnSpecular1.BackColor), StringToNormVector(tbLight1.Text)); } i++; } if (cbLight2.Checked) { if (cbPointLight2.Checked) { Sources[i] = new PointLight(ColorToVector(btnAmbient2.BackColor), ColorToVector(btnDiffuse2.BackColor), ColorToVector(btnSpecular2.BackColor), c1, c2, c3, StringToVector(tbLight2.Text) | S); } else { Sources[i] = new DirLight(ColorToVector(btnAmbient2.BackColor), ColorToVector(btnDiffuse2.BackColor), ColorToVector(btnSpecular2.BackColor), StringToNormVector(tbLight2.Text)); } i++; } if (cbLight3.Checked) { if (cbPointLight3.Checked) { Sources[i] = new PointLight(ColorToVector(btnAmbient3.BackColor), ColorToVector(btnDiffuse3.BackColor), ColorToVector(btnSpecular3.BackColor), c1, c2, c3, StringToVector(tbLight3.Text) | S); } else { Sources[i] = new DirLight(ColorToVector(btnAmbient3.BackColor), ColorToVector(btnDiffuse3.BackColor), ColorToVector(btnSpecular3.BackColor), StringToNormVector(tbLight3.Text)); } i++; } if (cbLight4.Checked) { if (cbPointLight4.Checked) { Sources[i] = new PointLight(ColorToVector(btnAmbient4.BackColor), ColorToVector(btnDiffuse4.BackColor), ColorToVector(btnSpecular4.BackColor), c1, c2, c3, StringToVector(tbLight4.Text) | S); } else { Sources[i] = new DirLight(ColorToVector(btnAmbient4.BackColor), ColorToVector(btnDiffuse4.BackColor), ColorToVector(btnSpecular4.BackColor), StringToNormVector(tbLight4.Text)); } i++; } if (cbLight5.Checked) { if (cbPointLight5.Checked) { Sources[i] = new PointLight(ColorToVector(btnAmbient5.BackColor), ColorToVector(btnDiffuse5.BackColor), ColorToVector(btnSpecular5.BackColor), c1, c2, c3, StringToVector(tbLight5.Text) | S); } else { Sources[i] = new DirLight(ColorToVector(btnAmbient5.BackColor), ColorToVector(btnDiffuse5.BackColor), ColorToVector(btnSpecular5.BackColor), StringToNormVector(tbLight5.Text)); } i++; } L.Ground = new Material(ColorToVector(btnAmbient.BackColor), ColorToVector(btnDiffuse.BackColor), ColorToVector(btnSpecular.BackColor)); float AllTime = 0, t; PerfCounter Counter1 = new PerfCounter(); Counter1.Start(); Convolution[] Convs = new Convolution[3]; Convs[0].Operation = Operation.Plus; Convs[1].Operation = (Operation)cmbOp2.SelectedIndex; Convs[2].Operation = (Operation)cmbOp3.SelectedIndex; Convs[0].Coef = Convert.ToDouble(tbCoef1.Text); Convs[1].Coef = Convert.ToDouble(tbCoef2.Text); Convs[2].Coef = Convert.ToDouble(tbCoef3.Text); L.GenerateHeightmap(Convert.ToInt32(tbSizeX.Text), Convert.ToInt32(tbSizeY.Text), (GenMethod)cmbGenMethod.SelectedIndex, Convs, cbSmoothing.Checked, cbValley.Checked, cbIsland.Checked); t = Counter1.Finish(); lblHeightmapTime.Text = Convert.ToString(t); AllTime += t; L.BuildMesh(new Vector(Convert.ToDouble(tbSizeX.Text), Convert.ToDouble(tbSizeY.Text), Convert.ToDouble(tbSizeZ.Text))); Counter1.Start(); L.BuildLightmap(Sources, 2); t = Counter1.Finish(); lblLightmapTime.Text = Convert.ToString(t); AllTime += t; Counter1.Start(); L.GenerateColormap(Colors, 1); t = Counter1.Finish(); lblTextureTime.Text = Convert.ToString(t); AllTime += t; lblAllTime.Text = Convert.ToString(AllTime); string DirName; /*if (tbDir.Text[0] == '.') * { * DirName = "../../" + tbDir.Text + "/" + tbName.Text; * Directory.CreateDirectory(DirName); * } * else*/ DirName = tbDir.Text + "/" + tbName.Text; Bitmap B1, B2, B3; L.SaveHeightmap(DirName + "/Heightmap.bmp", out B1); L.SaveLightmap(DirName + "/Lightmap.bmp", out B2); L.SaveColormap(DirName + "/Texture.bmp", out B3); //pictureBox1.Image = B1; Bitmap B = new Bitmap(L.SizeX, L.SizeY); for (i = 0; i < B.Width; i++) { for (j = 0; j < B.Height; j++) { byte X = Convert.ToByte(L.Heightmap[i, j] * 255); B.SetPixel(i, j, Color.FromArgb(X, X, X)); } } pictureBox1.Image = B; pictureBox2.Image = B2; pictureBox3.Image = B3; pictureBox1.Refresh(); pictureBox2.Refresh(); pictureBox3.Refresh(); SaveSettings("EditorSettings.ini"); }