Render window glass projections from fragments in model viewer and vehicle viewer

This commit is contained in:
dexy 2021-04-27 21:29:42 +10:00
parent 5cdde7a34f
commit 7eec785459
6 changed files with 701 additions and 460 deletions

View File

@ -198,6 +198,7 @@ namespace CodeWalker.GameFiles
AssignChildrenShaders();
AssignGlassWindowsGroups();
#if DEBUG
Analyzer = new ResourceAnalyzer(reader);
@ -666,6 +667,54 @@ namespace CodeWalker.GameFiles
}
public void AssignGlassWindowsGroups()
{
void assign(FragPhysicsLOD lod)
{
if (lod?.Groups?.data_items == null) return;
foreach (var grp in lod.Groups.data_items)
{
var windx = grp.UnkByte52;
var flags = grp.UnkByte53;
if ((flags & 2) > 0)
{
if (GlassWindows?.data_items != null)
{
if (windx < GlassWindows.data_items.Length)
{
var wind = GlassWindows.data_items[windx];
wind.Group = grp;
wind.GroupLOD = lod;
}
}
}
}
}
assign(PhysicsLODGroup?.PhysicsLOD1);
assign(PhysicsLODGroup?.PhysicsLOD2);
assign(PhysicsLODGroup?.PhysicsLOD3);
//if (VehicleGlassWindows?.Windows != null)
//{
// var groups = PhysicsLODGroup?.PhysicsLOD1?.Groups?.data_items;
// if (groups != null)
// {
// var groupdict = new Dictionary<int, FragPhysTypeGroup>();
// foreach (var grp in groups)
// {
// groupdict[grp.Index] = grp;
// }
// foreach (var wind in VehicleGlassWindows.Windows)
// {
// groupdict.TryGetValue(wind.ItemID, out var grp);
// wind.Group = grp;
// wind.GroupLOD = PhysicsLODGroup.PhysicsLOD1;
// }
// }
//}
}
public override IResourceBlock[] GetReferences()
@ -1113,6 +1162,8 @@ namespace CodeWalker.GameFiles
public float UnkFloat22 { get; set; }
public uint UnkUint4 = 0x7f800001; // 0x7f800001
public FragPhysTypeGroup Group { get; set; }
public FragPhysicsLOD GroupLOD { get; set; }
public override void Read(ResourceDataReader reader, params object[] parameters)
{
@ -1840,6 +1891,23 @@ namespace CodeWalker.GameFiles
}
public int GetValue(int x)
{
if (x < 0) return -1;
if (Data1 != null)
{
if (x < Start1) return -1;
var cpos = x - Start1;
if (cpos < Data1.Length) return Data1[cpos];
}
if (Data2 != null)
{
if (x < Start2) return 256;
var cpos = x - Start2;
if (cpos < Data2.Length) return Data2[cpos];
}
return -1;
}
public override string ToString()
{
@ -3933,8 +4001,8 @@ namespace CodeWalker.GameFiles
public byte UnkByte4F { get; set; }
public byte UnkByte50 { get; set; }
public byte UnkByte51 { get; set; } = 255; //0xFF
public byte UnkByte52 { get; set; }
public byte UnkByte53 { get; set; }
public byte UnkByte52 { get; set; }//GlassWindows index
public byte UnkByte53 { get; set; }//flags: 1=?, 2=glass, 4=?, ...
public float UnkFloat54 { get; set; }
public float UnkFloat58 { get; set; }
public float UnkFloat5C { get; set; }

View File

@ -45,6 +45,11 @@
this.SaveAsMenuButton = new System.Windows.Forms.ToolStripMenuItem();
this.ToolsTabControl = new System.Windows.Forms.TabControl();
this.ToolsModelsTabPage = new System.Windows.Forms.TabPage();
this.EnableRootMotionCheckBox = new System.Windows.Forms.CheckBox();
this.label22 = new System.Windows.Forms.Label();
this.ClipComboBox = new System.Windows.Forms.ComboBox();
this.label21 = new System.Windows.Forms.Label();
this.ClipDictComboBox = new System.Windows.Forms.ComboBox();
this.ModelsTreeView = new CodeWalker.WinForms.TreeViewFix();
this.ToolsMaterialsTabPage = new System.Windows.Forms.TabPage();
this.MaterialEditorButton = new System.Windows.Forms.Button();
@ -82,11 +87,7 @@
this.ToolsDragPanel = new System.Windows.Forms.Panel();
this.ToolsPanelShowButton = new System.Windows.Forms.Button();
this.SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
this.EnableRootMotionCheckBox = new System.Windows.Forms.CheckBox();
this.label22 = new System.Windows.Forms.Label();
this.ClipComboBox = new System.Windows.Forms.ComboBox();
this.label21 = new System.Windows.Forms.Label();
this.ClipDictComboBox = new System.Windows.Forms.ComboBox();
this.FragGlassCheckBox = new System.Windows.Forms.CheckBox();
this.StatusStrip.SuspendLayout();
this.ConsolePanel.SuspendLayout();
this.ToolsPanel.SuspendLayout();
@ -262,456 +263,6 @@
this.ToolsModelsTabPage.Text = "Models";
this.ToolsModelsTabPage.UseVisualStyleBackColor = true;
//
// ModelsTreeView
//
this.ModelsTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ModelsTreeView.CheckBoxes = true;
this.ModelsTreeView.Location = new System.Drawing.Point(0, 3);
this.ModelsTreeView.Name = "ModelsTreeView";
this.ModelsTreeView.ShowRootLines = false;
this.ModelsTreeView.Size = new System.Drawing.Size(217, 422);
this.ModelsTreeView.TabIndex = 1;
this.ModelsTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.ModelsTreeView_AfterCheck);
this.ModelsTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.ModelsTreeView_NodeMouseDoubleClick);
this.ModelsTreeView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ModelsTreeView_KeyPress);
//
// ToolsMaterialsTabPage
//
this.ToolsMaterialsTabPage.Controls.Add(this.MaterialEditorButton);
this.ToolsMaterialsTabPage.Controls.Add(this.TextureViewerButton);
this.ToolsMaterialsTabPage.Controls.Add(this.TexturesTreeView);
this.ToolsMaterialsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsMaterialsTabPage.Name = "ToolsMaterialsTabPage";
this.ToolsMaterialsTabPage.Padding = new System.Windows.Forms.Padding(3);
this.ToolsMaterialsTabPage.Size = new System.Drawing.Size(205, 500);
this.ToolsMaterialsTabPage.TabIndex = 1;
this.ToolsMaterialsTabPage.Text = "Materials";
this.ToolsMaterialsTabPage.UseVisualStyleBackColor = true;
//
// MaterialEditorButton
//
this.MaterialEditorButton.Location = new System.Drawing.Point(3, 6);
this.MaterialEditorButton.Name = "MaterialEditorButton";
this.MaterialEditorButton.Size = new System.Drawing.Size(91, 23);
this.MaterialEditorButton.TabIndex = 3;
this.MaterialEditorButton.Text = "Material editor";
this.MaterialEditorButton.UseVisualStyleBackColor = true;
this.MaterialEditorButton.Click += new System.EventHandler(this.MaterialEditorButton_Click);
//
// TextureViewerButton
//
this.TextureViewerButton.Location = new System.Drawing.Point(111, 6);
this.TextureViewerButton.Name = "TextureViewerButton";
this.TextureViewerButton.Size = new System.Drawing.Size(91, 23);
this.TextureViewerButton.TabIndex = 2;
this.TextureViewerButton.Text = "Texture viewer";
this.TextureViewerButton.UseVisualStyleBackColor = true;
this.TextureViewerButton.Click += new System.EventHandler(this.TextureViewerButton_Click);
//
// TexturesTreeView
//
this.TexturesTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TexturesTreeView.Location = new System.Drawing.Point(0, 34);
this.TexturesTreeView.Name = "TexturesTreeView";
this.TexturesTreeView.ShowRootLines = false;
this.TexturesTreeView.Size = new System.Drawing.Size(205, 466);
this.TexturesTreeView.TabIndex = 1;
//
// ToolsDetailsTabPage
//
this.ToolsDetailsTabPage.Controls.Add(this.DetailsPropertyGrid);
this.ToolsDetailsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsDetailsTabPage.Name = "ToolsDetailsTabPage";
this.ToolsDetailsTabPage.Size = new System.Drawing.Size(205, 500);
this.ToolsDetailsTabPage.TabIndex = 2;
this.ToolsDetailsTabPage.Text = "Details";
this.ToolsDetailsTabPage.UseVisualStyleBackColor = true;
//
// DetailsPropertyGrid
//
this.DetailsPropertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DetailsPropertyGrid.HelpVisible = false;
this.DetailsPropertyGrid.Location = new System.Drawing.Point(0, 3);
this.DetailsPropertyGrid.Name = "DetailsPropertyGrid";
this.DetailsPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.NoSort;
this.DetailsPropertyGrid.ReadOnly = true;
this.DetailsPropertyGrid.Size = new System.Drawing.Size(205, 497);
this.DetailsPropertyGrid.TabIndex = 1;
this.DetailsPropertyGrid.ToolbarVisible = false;
//
// ToolsOptionsTabPage
//
this.ToolsOptionsTabPage.Controls.Add(this.HDTexturesCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.SkeletonsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.TimeOfDayLabel);
this.ToolsOptionsTabPage.Controls.Add(this.label19);
this.ToolsOptionsTabPage.Controls.Add(this.TimeOfDayTrackBar);
this.ToolsOptionsTabPage.Controls.Add(this.ControlLightDirCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ShowCollisionMeshesCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.GridCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.GridCountComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label2);
this.ToolsOptionsTabPage.Controls.Add(this.GridSizeComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label1);
this.ToolsOptionsTabPage.Controls.Add(this.StatusBarCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ErrorConsoleCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.HDRRenderingCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.SkydomeCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ShadowsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.WireframeCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.RenderModeComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label11);
this.ToolsOptionsTabPage.Controls.Add(this.TextureSamplerComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.TextureCoordsComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label10);
this.ToolsOptionsTabPage.Controls.Add(this.AnisotropicFilteringCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.label14);
this.ToolsOptionsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsOptionsTabPage.Name = "ToolsOptionsTabPage";
this.ToolsOptionsTabPage.Size = new System.Drawing.Size(205, 500);
this.ToolsOptionsTabPage.TabIndex = 3;
this.ToolsOptionsTabPage.Text = "Options";
this.ToolsOptionsTabPage.UseVisualStyleBackColor = true;
//
// HDTexturesCheckBox
//
this.HDTexturesCheckBox.AutoSize = true;
this.HDTexturesCheckBox.Checked = true;
this.HDTexturesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.HDTexturesCheckBox.Location = new System.Drawing.Point(19, 242);
this.HDTexturesCheckBox.Name = "HDTexturesCheckBox";
this.HDTexturesCheckBox.Size = new System.Drawing.Size(82, 17);
this.HDTexturesCheckBox.TabIndex = 10;
this.HDTexturesCheckBox.Text = "HD textures";
this.HDTexturesCheckBox.UseVisualStyleBackColor = true;
this.HDTexturesCheckBox.CheckedChanged += new System.EventHandler(this.HDTexturesCheckBox_CheckedChanged);
//
// SkeletonsCheckBox
//
this.SkeletonsCheckBox.AutoSize = true;
this.SkeletonsCheckBox.Location = new System.Drawing.Point(19, 444);
this.SkeletonsCheckBox.Name = "SkeletonsCheckBox";
this.SkeletonsCheckBox.Size = new System.Drawing.Size(103, 17);
this.SkeletonsCheckBox.TabIndex = 22;
this.SkeletonsCheckBox.Text = "Show Skeletons";
this.SkeletonsCheckBox.UseVisualStyleBackColor = true;
this.SkeletonsCheckBox.CheckedChanged += new System.EventHandler(this.SkeletonsCheckBox_CheckedChanged);
//
// TimeOfDayLabel
//
this.TimeOfDayLabel.AutoSize = true;
this.TimeOfDayLabel.Location = new System.Drawing.Point(78, 109);
this.TimeOfDayLabel.Name = "TimeOfDayLabel";
this.TimeOfDayLabel.Size = new System.Drawing.Size(34, 13);
this.TimeOfDayLabel.TabIndex = 5;
this.TimeOfDayLabel.Text = "12:00";
//
// label19
//
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(7, 109);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(65, 13);
this.label19.TabIndex = 4;
this.label19.Text = "Time of day:";
//
// TimeOfDayTrackBar
//
this.TimeOfDayTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TimeOfDayTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.TimeOfDayTrackBar.LargeChange = 60;
this.TimeOfDayTrackBar.Location = new System.Drawing.Point(9, 125);
this.TimeOfDayTrackBar.Maximum = 1440;
this.TimeOfDayTrackBar.Name = "TimeOfDayTrackBar";
this.TimeOfDayTrackBar.Size = new System.Drawing.Size(188, 45);
this.TimeOfDayTrackBar.TabIndex = 6;
this.TimeOfDayTrackBar.TickFrequency = 60;
this.TimeOfDayTrackBar.Value = 720;
this.TimeOfDayTrackBar.Scroll += new System.EventHandler(this.TimeOfDayTrackBar_Scroll);
//
// ControlLightDirCheckBox
//
this.ControlLightDirCheckBox.AutoSize = true;
this.ControlLightDirCheckBox.Location = new System.Drawing.Point(19, 83);
this.ControlLightDirCheckBox.Name = "ControlLightDirCheckBox";
this.ControlLightDirCheckBox.Size = new System.Drawing.Size(124, 17);
this.ControlLightDirCheckBox.TabIndex = 3;
this.ControlLightDirCheckBox.Text = "Control light direction";
this.ControlLightDirCheckBox.UseVisualStyleBackColor = true;
this.ControlLightDirCheckBox.CheckedChanged += new System.EventHandler(this.ControlLightDirCheckBox_CheckedChanged);
//
// ShowCollisionMeshesCheckBox
//
this.ShowCollisionMeshesCheckBox.AutoSize = true;
this.ShowCollisionMeshesCheckBox.Location = new System.Drawing.Point(19, 173);
this.ShowCollisionMeshesCheckBox.Name = "ShowCollisionMeshesCheckBox";
this.ShowCollisionMeshesCheckBox.Size = new System.Drawing.Size(132, 17);
this.ShowCollisionMeshesCheckBox.TabIndex = 7;
this.ShowCollisionMeshesCheckBox.Text = "Show collision meshes";
this.ShowCollisionMeshesCheckBox.UseVisualStyleBackColor = true;
this.ShowCollisionMeshesCheckBox.CheckedChanged += new System.EventHandler(this.ShowCollisionMeshesCheckBox_CheckedChanged);
//
// GridCheckBox
//
this.GridCheckBox.AutoSize = true;
this.GridCheckBox.Location = new System.Drawing.Point(19, 364);
this.GridCheckBox.Name = "GridCheckBox";
this.GridCheckBox.Size = new System.Drawing.Size(45, 17);
this.GridCheckBox.TabIndex = 17;
this.GridCheckBox.Text = "Grid";
this.GridCheckBox.UseVisualStyleBackColor = true;
this.GridCheckBox.CheckedChanged += new System.EventHandler(this.GridCheckBox_CheckedChanged);
//
// GridCountComboBox
//
this.GridCountComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.GridCountComboBox.FormattingEnabled = true;
this.GridCountComboBox.Items.AddRange(new object[] {
"20",
"40",
"60",
"100"});
this.GridCountComboBox.Location = new System.Drawing.Point(83, 411);
this.GridCountComboBox.Name = "GridCountComboBox";
this.GridCountComboBox.Size = new System.Drawing.Size(114, 21);
this.GridCountComboBox.TabIndex = 21;
this.GridCountComboBox.SelectedIndexChanged += new System.EventHandler(this.GridCountComboBox_SelectedIndexChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 414);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(59, 13);
this.label2.TabIndex = 20;
this.label2.Text = "Grid count:";
//
// GridSizeComboBox
//
this.GridSizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.GridSizeComboBox.FormattingEnabled = true;
this.GridSizeComboBox.Items.AddRange(new object[] {
"0.1",
"1.0",
"10",
"100"});
this.GridSizeComboBox.Location = new System.Drawing.Point(83, 384);
this.GridSizeComboBox.Name = "GridSizeComboBox";
this.GridSizeComboBox.Size = new System.Drawing.Size(114, 21);
this.GridSizeComboBox.TabIndex = 19;
this.GridSizeComboBox.SelectedIndexChanged += new System.EventHandler(this.GridSizeComboBox_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(7, 387);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(70, 13);
this.label1.TabIndex = 18;
this.label1.Text = "Grid unit size:";
//
// StatusBarCheckBox
//
this.StatusBarCheckBox.AutoSize = true;
this.StatusBarCheckBox.Checked = true;
this.StatusBarCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.StatusBarCheckBox.Location = new System.Drawing.Point(19, 480);
this.StatusBarCheckBox.Name = "StatusBarCheckBox";
this.StatusBarCheckBox.Size = new System.Drawing.Size(74, 17);
this.StatusBarCheckBox.TabIndex = 23;
this.StatusBarCheckBox.Text = "Status bar";
this.StatusBarCheckBox.UseVisualStyleBackColor = true;
this.StatusBarCheckBox.CheckedChanged += new System.EventHandler(this.StatusBarCheckBox_CheckedChanged);
//
// ErrorConsoleCheckBox
//
this.ErrorConsoleCheckBox.AutoSize = true;
this.ErrorConsoleCheckBox.Location = new System.Drawing.Point(105, 480);
this.ErrorConsoleCheckBox.Name = "ErrorConsoleCheckBox";
this.ErrorConsoleCheckBox.Size = new System.Drawing.Size(88, 17);
this.ErrorConsoleCheckBox.TabIndex = 24;
this.ErrorConsoleCheckBox.Text = "Error console";
this.ErrorConsoleCheckBox.UseVisualStyleBackColor = true;
this.ErrorConsoleCheckBox.CheckedChanged += new System.EventHandler(this.ErrorConsoleCheckBox_CheckedChanged);
//
// HDRRenderingCheckBox
//
this.HDRRenderingCheckBox.AutoSize = true;
this.HDRRenderingCheckBox.Checked = true;
this.HDRRenderingCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.HDRRenderingCheckBox.Location = new System.Drawing.Point(19, 14);
this.HDRRenderingCheckBox.Name = "HDRRenderingCheckBox";
this.HDRRenderingCheckBox.Size = new System.Drawing.Size(97, 17);
this.HDRRenderingCheckBox.TabIndex = 0;
this.HDRRenderingCheckBox.Text = "HDR rendering";
this.HDRRenderingCheckBox.UseVisualStyleBackColor = true;
this.HDRRenderingCheckBox.CheckedChanged += new System.EventHandler(this.HDRRenderingCheckBox_CheckedChanged);
//
// SkydomeCheckBox
//
this.SkydomeCheckBox.AutoSize = true;
this.SkydomeCheckBox.Location = new System.Drawing.Point(19, 60);
this.SkydomeCheckBox.Name = "SkydomeCheckBox";
this.SkydomeCheckBox.Size = new System.Drawing.Size(70, 17);
this.SkydomeCheckBox.TabIndex = 2;
this.SkydomeCheckBox.Text = "Skydome";
this.SkydomeCheckBox.UseVisualStyleBackColor = true;
this.SkydomeCheckBox.CheckedChanged += new System.EventHandler(this.SkydomeCheckBox_CheckedChanged);
//
// ShadowsCheckBox
//
this.ShadowsCheckBox.AutoSize = true;
this.ShadowsCheckBox.Checked = true;
this.ShadowsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.ShadowsCheckBox.Location = new System.Drawing.Point(19, 37);
this.ShadowsCheckBox.Name = "ShadowsCheckBox";
this.ShadowsCheckBox.Size = new System.Drawing.Size(70, 17);
this.ShadowsCheckBox.TabIndex = 1;
this.ShadowsCheckBox.Text = "Shadows";
this.ShadowsCheckBox.UseVisualStyleBackColor = true;
this.ShadowsCheckBox.CheckedChanged += new System.EventHandler(this.ShadowsCheckBox_CheckedChanged);
//
// WireframeCheckBox
//
this.WireframeCheckBox.AutoSize = true;
this.WireframeCheckBox.Location = new System.Drawing.Point(19, 196);
this.WireframeCheckBox.Name = "WireframeCheckBox";
this.WireframeCheckBox.Size = new System.Drawing.Size(74, 17);
this.WireframeCheckBox.TabIndex = 8;
this.WireframeCheckBox.Text = "Wireframe";
this.WireframeCheckBox.UseVisualStyleBackColor = true;
this.WireframeCheckBox.CheckedChanged += new System.EventHandler(this.WireframeCheckBox_CheckedChanged);
//
// RenderModeComboBox
//
this.RenderModeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.RenderModeComboBox.FormattingEnabled = true;
this.RenderModeComboBox.Items.AddRange(new object[] {
"Default",
"Single texture",
"Vertex normals",
"Vertex tangents",
"Vertex colour 1",
"Vertex colour 2",
"Texture coord 1",
"Texture coord 2",
"Texture coord 3"});
this.RenderModeComboBox.Location = new System.Drawing.Point(83, 274);
this.RenderModeComboBox.Name = "RenderModeComboBox";
this.RenderModeComboBox.Size = new System.Drawing.Size(114, 21);
this.RenderModeComboBox.TabIndex = 12;
this.RenderModeComboBox.SelectedIndexChanged += new System.EventHandler(this.RenderModeComboBox_SelectedIndexChanged);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(7, 304);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(67, 13);
this.label11.TabIndex = 13;
this.label11.Text = "Tex sampler:";
//
// TextureSamplerComboBox
//
this.TextureSamplerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TextureSamplerComboBox.Enabled = false;
this.TextureSamplerComboBox.FormattingEnabled = true;
this.TextureSamplerComboBox.Location = new System.Drawing.Point(83, 301);
this.TextureSamplerComboBox.Name = "TextureSamplerComboBox";
this.TextureSamplerComboBox.Size = new System.Drawing.Size(114, 21);
this.TextureSamplerComboBox.TabIndex = 14;
this.TextureSamplerComboBox.SelectedIndexChanged += new System.EventHandler(this.TextureSamplerComboBox_SelectedIndexChanged);
//
// TextureCoordsComboBox
//
this.TextureCoordsComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TextureCoordsComboBox.Enabled = false;
this.TextureCoordsComboBox.FormattingEnabled = true;
this.TextureCoordsComboBox.Items.AddRange(new object[] {
"Texture coord 1",
"Texture coord 2",
"Texture coord 3"});
this.TextureCoordsComboBox.Location = new System.Drawing.Point(83, 328);
this.TextureCoordsComboBox.Name = "TextureCoordsComboBox";
this.TextureCoordsComboBox.Size = new System.Drawing.Size(114, 21);
this.TextureCoordsComboBox.TabIndex = 16;
this.TextureCoordsComboBox.SelectedIndexChanged += new System.EventHandler(this.TextureCoordsComboBox_SelectedIndexChanged);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(7, 277);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(74, 13);
this.label10.TabIndex = 11;
this.label10.Text = "Render mode:";
//
// AnisotropicFilteringCheckBox
//
this.AnisotropicFilteringCheckBox.AutoSize = true;
this.AnisotropicFilteringCheckBox.Checked = true;
this.AnisotropicFilteringCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.AnisotropicFilteringCheckBox.Location = new System.Drawing.Point(19, 219);
this.AnisotropicFilteringCheckBox.Name = "AnisotropicFilteringCheckBox";
this.AnisotropicFilteringCheckBox.Size = new System.Drawing.Size(114, 17);
this.AnisotropicFilteringCheckBox.TabIndex = 9;
this.AnisotropicFilteringCheckBox.Text = "Anisotropic filtering";
this.AnisotropicFilteringCheckBox.UseVisualStyleBackColor = true;
this.AnisotropicFilteringCheckBox.CheckedChanged += new System.EventHandler(this.AnisotropicFilteringCheckBox_CheckedChanged);
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(7, 331);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(63, 13);
this.label14.TabIndex = 15;
this.label14.Text = "Tex coords:";
//
// ToolsPanelHideButton
//
this.ToolsPanelHideButton.Location = new System.Drawing.Point(3, 3);
this.ToolsPanelHideButton.Name = "ToolsPanelHideButton";
this.ToolsPanelHideButton.Size = new System.Drawing.Size(30, 23);
this.ToolsPanelHideButton.TabIndex = 0;
this.ToolsPanelHideButton.Text = "<<";
this.ToolsPanelHideButton.UseVisualStyleBackColor = true;
this.ToolsPanelHideButton.Click += new System.EventHandler(this.ToolsPanelHideButton_Click);
//
// ToolsDragPanel
//
this.ToolsDragPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.ToolsDragPanel.Cursor = System.Windows.Forms.Cursors.VSplit;
this.ToolsDragPanel.Location = new System.Drawing.Point(227, 0);
this.ToolsDragPanel.Name = "ToolsDragPanel";
this.ToolsDragPanel.Size = new System.Drawing.Size(4, 559);
this.ToolsDragPanel.TabIndex = 17;
this.ToolsDragPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseDown);
this.ToolsDragPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseMove);
this.ToolsDragPanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseUp);
//
// ToolsPanelShowButton
//
this.ToolsPanelShowButton.Location = new System.Drawing.Point(15, 15);
this.ToolsPanelShowButton.Name = "ToolsPanelShowButton";
this.ToolsPanelShowButton.Size = new System.Drawing.Size(30, 23);
this.ToolsPanelShowButton.TabIndex = 0;
this.ToolsPanelShowButton.Text = ">>";
this.ToolsPanelShowButton.UseVisualStyleBackColor = true;
this.ToolsPanelShowButton.Click += new System.EventHandler(this.ToolsPanelShowButton_Click);
//
// SaveFileDialog
//
this.SaveFileDialog.Filter = "All files|*.*";
//
// EnableRootMotionCheckBox
//
this.EnableRootMotionCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@ -770,6 +321,468 @@
this.ClipDictComboBox.TabIndex = 33;
this.ClipDictComboBox.TextChanged += new System.EventHandler(this.ClipDictComboBox_TextChanged);
//
// ModelsTreeView
//
this.ModelsTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ModelsTreeView.CheckBoxes = true;
this.ModelsTreeView.Location = new System.Drawing.Point(0, 3);
this.ModelsTreeView.Name = "ModelsTreeView";
this.ModelsTreeView.ShowRootLines = false;
this.ModelsTreeView.Size = new System.Drawing.Size(217, 422);
this.ModelsTreeView.TabIndex = 1;
this.ModelsTreeView.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.ModelsTreeView_AfterCheck);
this.ModelsTreeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.ModelsTreeView_NodeMouseDoubleClick);
this.ModelsTreeView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.ModelsTreeView_KeyPress);
//
// ToolsMaterialsTabPage
//
this.ToolsMaterialsTabPage.Controls.Add(this.MaterialEditorButton);
this.ToolsMaterialsTabPage.Controls.Add(this.TextureViewerButton);
this.ToolsMaterialsTabPage.Controls.Add(this.TexturesTreeView);
this.ToolsMaterialsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsMaterialsTabPage.Name = "ToolsMaterialsTabPage";
this.ToolsMaterialsTabPage.Padding = new System.Windows.Forms.Padding(3);
this.ToolsMaterialsTabPage.Size = new System.Drawing.Size(217, 500);
this.ToolsMaterialsTabPage.TabIndex = 1;
this.ToolsMaterialsTabPage.Text = "Materials";
this.ToolsMaterialsTabPage.UseVisualStyleBackColor = true;
//
// MaterialEditorButton
//
this.MaterialEditorButton.Location = new System.Drawing.Point(3, 6);
this.MaterialEditorButton.Name = "MaterialEditorButton";
this.MaterialEditorButton.Size = new System.Drawing.Size(91, 23);
this.MaterialEditorButton.TabIndex = 3;
this.MaterialEditorButton.Text = "Material editor";
this.MaterialEditorButton.UseVisualStyleBackColor = true;
this.MaterialEditorButton.Click += new System.EventHandler(this.MaterialEditorButton_Click);
//
// TextureViewerButton
//
this.TextureViewerButton.Location = new System.Drawing.Point(111, 6);
this.TextureViewerButton.Name = "TextureViewerButton";
this.TextureViewerButton.Size = new System.Drawing.Size(91, 23);
this.TextureViewerButton.TabIndex = 2;
this.TextureViewerButton.Text = "Texture viewer";
this.TextureViewerButton.UseVisualStyleBackColor = true;
this.TextureViewerButton.Click += new System.EventHandler(this.TextureViewerButton_Click);
//
// TexturesTreeView
//
this.TexturesTreeView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TexturesTreeView.Location = new System.Drawing.Point(0, 34);
this.TexturesTreeView.Name = "TexturesTreeView";
this.TexturesTreeView.ShowRootLines = false;
this.TexturesTreeView.Size = new System.Drawing.Size(205, 466);
this.TexturesTreeView.TabIndex = 1;
//
// ToolsDetailsTabPage
//
this.ToolsDetailsTabPage.Controls.Add(this.DetailsPropertyGrid);
this.ToolsDetailsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsDetailsTabPage.Name = "ToolsDetailsTabPage";
this.ToolsDetailsTabPage.Size = new System.Drawing.Size(217, 500);
this.ToolsDetailsTabPage.TabIndex = 2;
this.ToolsDetailsTabPage.Text = "Details";
this.ToolsDetailsTabPage.UseVisualStyleBackColor = true;
//
// DetailsPropertyGrid
//
this.DetailsPropertyGrid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DetailsPropertyGrid.HelpVisible = false;
this.DetailsPropertyGrid.Location = new System.Drawing.Point(0, 3);
this.DetailsPropertyGrid.Name = "DetailsPropertyGrid";
this.DetailsPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.NoSort;
this.DetailsPropertyGrid.ReadOnly = true;
this.DetailsPropertyGrid.Size = new System.Drawing.Size(205, 497);
this.DetailsPropertyGrid.TabIndex = 1;
this.DetailsPropertyGrid.ToolbarVisible = false;
//
// ToolsOptionsTabPage
//
this.ToolsOptionsTabPage.Controls.Add(this.FragGlassCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.HDTexturesCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.SkeletonsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.TimeOfDayLabel);
this.ToolsOptionsTabPage.Controls.Add(this.label19);
this.ToolsOptionsTabPage.Controls.Add(this.TimeOfDayTrackBar);
this.ToolsOptionsTabPage.Controls.Add(this.ControlLightDirCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ShowCollisionMeshesCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.GridCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.GridCountComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label2);
this.ToolsOptionsTabPage.Controls.Add(this.GridSizeComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label1);
this.ToolsOptionsTabPage.Controls.Add(this.StatusBarCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ErrorConsoleCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.HDRRenderingCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.SkydomeCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.ShadowsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.WireframeCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.RenderModeComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label11);
this.ToolsOptionsTabPage.Controls.Add(this.TextureSamplerComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.TextureCoordsComboBox);
this.ToolsOptionsTabPage.Controls.Add(this.label10);
this.ToolsOptionsTabPage.Controls.Add(this.AnisotropicFilteringCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.label14);
this.ToolsOptionsTabPage.Location = new System.Drawing.Point(4, 22);
this.ToolsOptionsTabPage.Name = "ToolsOptionsTabPage";
this.ToolsOptionsTabPage.Size = new System.Drawing.Size(217, 500);
this.ToolsOptionsTabPage.TabIndex = 3;
this.ToolsOptionsTabPage.Text = "Options";
this.ToolsOptionsTabPage.UseVisualStyleBackColor = true;
//
// HDTexturesCheckBox
//
this.HDTexturesCheckBox.AutoSize = true;
this.HDTexturesCheckBox.Checked = true;
this.HDTexturesCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.HDTexturesCheckBox.Location = new System.Drawing.Point(19, 231);
this.HDTexturesCheckBox.Name = "HDTexturesCheckBox";
this.HDTexturesCheckBox.Size = new System.Drawing.Size(82, 17);
this.HDTexturesCheckBox.TabIndex = 10;
this.HDTexturesCheckBox.Text = "HD textures";
this.HDTexturesCheckBox.UseVisualStyleBackColor = true;
this.HDTexturesCheckBox.CheckedChanged += new System.EventHandler(this.HDTexturesCheckBox_CheckedChanged);
//
// SkeletonsCheckBox
//
this.SkeletonsCheckBox.AutoSize = true;
this.SkeletonsCheckBox.Location = new System.Drawing.Point(19, 426);
this.SkeletonsCheckBox.Name = "SkeletonsCheckBox";
this.SkeletonsCheckBox.Size = new System.Drawing.Size(103, 17);
this.SkeletonsCheckBox.TabIndex = 22;
this.SkeletonsCheckBox.Text = "Show Skeletons";
this.SkeletonsCheckBox.UseVisualStyleBackColor = true;
this.SkeletonsCheckBox.CheckedChanged += new System.EventHandler(this.SkeletonsCheckBox_CheckedChanged);
//
// TimeOfDayLabel
//
this.TimeOfDayLabel.AutoSize = true;
this.TimeOfDayLabel.Location = new System.Drawing.Point(78, 99);
this.TimeOfDayLabel.Name = "TimeOfDayLabel";
this.TimeOfDayLabel.Size = new System.Drawing.Size(34, 13);
this.TimeOfDayLabel.TabIndex = 5;
this.TimeOfDayLabel.Text = "12:00";
//
// label19
//
this.label19.AutoSize = true;
this.label19.Location = new System.Drawing.Point(7, 99);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(65, 13);
this.label19.TabIndex = 4;
this.label19.Text = "Time of day:";
//
// TimeOfDayTrackBar
//
this.TimeOfDayTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.TimeOfDayTrackBar.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.TimeOfDayTrackBar.LargeChange = 60;
this.TimeOfDayTrackBar.Location = new System.Drawing.Point(9, 115);
this.TimeOfDayTrackBar.Maximum = 1440;
this.TimeOfDayTrackBar.Name = "TimeOfDayTrackBar";
this.TimeOfDayTrackBar.Size = new System.Drawing.Size(188, 45);
this.TimeOfDayTrackBar.TabIndex = 6;
this.TimeOfDayTrackBar.TickFrequency = 60;
this.TimeOfDayTrackBar.Value = 720;
this.TimeOfDayTrackBar.Scroll += new System.EventHandler(this.TimeOfDayTrackBar_Scroll);
//
// ControlLightDirCheckBox
//
this.ControlLightDirCheckBox.AutoSize = true;
this.ControlLightDirCheckBox.Location = new System.Drawing.Point(19, 77);
this.ControlLightDirCheckBox.Name = "ControlLightDirCheckBox";
this.ControlLightDirCheckBox.Size = new System.Drawing.Size(124, 17);
this.ControlLightDirCheckBox.TabIndex = 3;
this.ControlLightDirCheckBox.Text = "Control light direction";
this.ControlLightDirCheckBox.UseVisualStyleBackColor = true;
this.ControlLightDirCheckBox.CheckedChanged += new System.EventHandler(this.ControlLightDirCheckBox_CheckedChanged);
//
// ShowCollisionMeshesCheckBox
//
this.ShowCollisionMeshesCheckBox.AutoSize = true;
this.ShowCollisionMeshesCheckBox.Location = new System.Drawing.Point(19, 162);
this.ShowCollisionMeshesCheckBox.Name = "ShowCollisionMeshesCheckBox";
this.ShowCollisionMeshesCheckBox.Size = new System.Drawing.Size(132, 17);
this.ShowCollisionMeshesCheckBox.TabIndex = 7;
this.ShowCollisionMeshesCheckBox.Text = "Show collision meshes";
this.ShowCollisionMeshesCheckBox.UseVisualStyleBackColor = true;
this.ShowCollisionMeshesCheckBox.CheckedChanged += new System.EventHandler(this.ShowCollisionMeshesCheckBox_CheckedChanged);
//
// GridCheckBox
//
this.GridCheckBox.AutoSize = true;
this.GridCheckBox.Location = new System.Drawing.Point(19, 345);
this.GridCheckBox.Name = "GridCheckBox";
this.GridCheckBox.Size = new System.Drawing.Size(45, 17);
this.GridCheckBox.TabIndex = 17;
this.GridCheckBox.Text = "Grid";
this.GridCheckBox.UseVisualStyleBackColor = true;
this.GridCheckBox.CheckedChanged += new System.EventHandler(this.GridCheckBox_CheckedChanged);
//
// GridCountComboBox
//
this.GridCountComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.GridCountComboBox.FormattingEnabled = true;
this.GridCountComboBox.Items.AddRange(new object[] {
"20",
"40",
"60",
"100"});
this.GridCountComboBox.Location = new System.Drawing.Point(83, 392);
this.GridCountComboBox.Name = "GridCountComboBox";
this.GridCountComboBox.Size = new System.Drawing.Size(114, 21);
this.GridCountComboBox.TabIndex = 21;
this.GridCountComboBox.SelectedIndexChanged += new System.EventHandler(this.GridCountComboBox_SelectedIndexChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 395);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(59, 13);
this.label2.TabIndex = 20;
this.label2.Text = "Grid count:";
//
// GridSizeComboBox
//
this.GridSizeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.GridSizeComboBox.FormattingEnabled = true;
this.GridSizeComboBox.Items.AddRange(new object[] {
"0.1",
"1.0",
"10",
"100"});
this.GridSizeComboBox.Location = new System.Drawing.Point(83, 365);
this.GridSizeComboBox.Name = "GridSizeComboBox";
this.GridSizeComboBox.Size = new System.Drawing.Size(114, 21);
this.GridSizeComboBox.TabIndex = 19;
this.GridSizeComboBox.SelectedIndexChanged += new System.EventHandler(this.GridSizeComboBox_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(7, 368);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(70, 13);
this.label1.TabIndex = 18;
this.label1.Text = "Grid unit size:";
//
// StatusBarCheckBox
//
this.StatusBarCheckBox.AutoSize = true;
this.StatusBarCheckBox.Checked = true;
this.StatusBarCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.StatusBarCheckBox.Location = new System.Drawing.Point(19, 480);
this.StatusBarCheckBox.Name = "StatusBarCheckBox";
this.StatusBarCheckBox.Size = new System.Drawing.Size(74, 17);
this.StatusBarCheckBox.TabIndex = 23;
this.StatusBarCheckBox.Text = "Status bar";
this.StatusBarCheckBox.UseVisualStyleBackColor = true;
this.StatusBarCheckBox.CheckedChanged += new System.EventHandler(this.StatusBarCheckBox_CheckedChanged);
//
// ErrorConsoleCheckBox
//
this.ErrorConsoleCheckBox.AutoSize = true;
this.ErrorConsoleCheckBox.Location = new System.Drawing.Point(105, 480);
this.ErrorConsoleCheckBox.Name = "ErrorConsoleCheckBox";
this.ErrorConsoleCheckBox.Size = new System.Drawing.Size(88, 17);
this.ErrorConsoleCheckBox.TabIndex = 24;
this.ErrorConsoleCheckBox.Text = "Error console";
this.ErrorConsoleCheckBox.UseVisualStyleBackColor = true;
this.ErrorConsoleCheckBox.CheckedChanged += new System.EventHandler(this.ErrorConsoleCheckBox_CheckedChanged);
//
// HDRRenderingCheckBox
//
this.HDRRenderingCheckBox.AutoSize = true;
this.HDRRenderingCheckBox.Checked = true;
this.HDRRenderingCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.HDRRenderingCheckBox.Location = new System.Drawing.Point(19, 14);
this.HDRRenderingCheckBox.Name = "HDRRenderingCheckBox";
this.HDRRenderingCheckBox.Size = new System.Drawing.Size(97, 17);
this.HDRRenderingCheckBox.TabIndex = 0;
this.HDRRenderingCheckBox.Text = "HDR rendering";
this.HDRRenderingCheckBox.UseVisualStyleBackColor = true;
this.HDRRenderingCheckBox.CheckedChanged += new System.EventHandler(this.HDRRenderingCheckBox_CheckedChanged);
//
// SkydomeCheckBox
//
this.SkydomeCheckBox.AutoSize = true;
this.SkydomeCheckBox.Location = new System.Drawing.Point(19, 56);
this.SkydomeCheckBox.Name = "SkydomeCheckBox";
this.SkydomeCheckBox.Size = new System.Drawing.Size(70, 17);
this.SkydomeCheckBox.TabIndex = 2;
this.SkydomeCheckBox.Text = "Skydome";
this.SkydomeCheckBox.UseVisualStyleBackColor = true;
this.SkydomeCheckBox.CheckedChanged += new System.EventHandler(this.SkydomeCheckBox_CheckedChanged);
//
// ShadowsCheckBox
//
this.ShadowsCheckBox.AutoSize = true;
this.ShadowsCheckBox.Checked = true;
this.ShadowsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.ShadowsCheckBox.Location = new System.Drawing.Point(19, 35);
this.ShadowsCheckBox.Name = "ShadowsCheckBox";
this.ShadowsCheckBox.Size = new System.Drawing.Size(70, 17);
this.ShadowsCheckBox.TabIndex = 1;
this.ShadowsCheckBox.Text = "Shadows";
this.ShadowsCheckBox.UseVisualStyleBackColor = true;
this.ShadowsCheckBox.CheckedChanged += new System.EventHandler(this.ShadowsCheckBox_CheckedChanged);
//
// WireframeCheckBox
//
this.WireframeCheckBox.AutoSize = true;
this.WireframeCheckBox.Location = new System.Drawing.Point(19, 185);
this.WireframeCheckBox.Name = "WireframeCheckBox";
this.WireframeCheckBox.Size = new System.Drawing.Size(74, 17);
this.WireframeCheckBox.TabIndex = 8;
this.WireframeCheckBox.Text = "Wireframe";
this.WireframeCheckBox.UseVisualStyleBackColor = true;
this.WireframeCheckBox.CheckedChanged += new System.EventHandler(this.WireframeCheckBox_CheckedChanged);
//
// RenderModeComboBox
//
this.RenderModeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.RenderModeComboBox.FormattingEnabled = true;
this.RenderModeComboBox.Items.AddRange(new object[] {
"Default",
"Single texture",
"Vertex normals",
"Vertex tangents",
"Vertex colour 1",
"Vertex colour 2",
"Texture coord 1",
"Texture coord 2",
"Texture coord 3"});
this.RenderModeComboBox.Location = new System.Drawing.Point(83, 255);
this.RenderModeComboBox.Name = "RenderModeComboBox";
this.RenderModeComboBox.Size = new System.Drawing.Size(114, 21);
this.RenderModeComboBox.TabIndex = 12;
this.RenderModeComboBox.SelectedIndexChanged += new System.EventHandler(this.RenderModeComboBox_SelectedIndexChanged);
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(7, 285);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(67, 13);
this.label11.TabIndex = 13;
this.label11.Text = "Tex sampler:";
//
// TextureSamplerComboBox
//
this.TextureSamplerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TextureSamplerComboBox.Enabled = false;
this.TextureSamplerComboBox.FormattingEnabled = true;
this.TextureSamplerComboBox.Location = new System.Drawing.Point(83, 282);
this.TextureSamplerComboBox.Name = "TextureSamplerComboBox";
this.TextureSamplerComboBox.Size = new System.Drawing.Size(114, 21);
this.TextureSamplerComboBox.TabIndex = 14;
this.TextureSamplerComboBox.SelectedIndexChanged += new System.EventHandler(this.TextureSamplerComboBox_SelectedIndexChanged);
//
// TextureCoordsComboBox
//
this.TextureCoordsComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.TextureCoordsComboBox.Enabled = false;
this.TextureCoordsComboBox.FormattingEnabled = true;
this.TextureCoordsComboBox.Items.AddRange(new object[] {
"Texture coord 1",
"Texture coord 2",
"Texture coord 3"});
this.TextureCoordsComboBox.Location = new System.Drawing.Point(83, 309);
this.TextureCoordsComboBox.Name = "TextureCoordsComboBox";
this.TextureCoordsComboBox.Size = new System.Drawing.Size(114, 21);
this.TextureCoordsComboBox.TabIndex = 16;
this.TextureCoordsComboBox.SelectedIndexChanged += new System.EventHandler(this.TextureCoordsComboBox_SelectedIndexChanged);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(7, 258);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(74, 13);
this.label10.TabIndex = 11;
this.label10.Text = "Render mode:";
//
// AnisotropicFilteringCheckBox
//
this.AnisotropicFilteringCheckBox.AutoSize = true;
this.AnisotropicFilteringCheckBox.Checked = true;
this.AnisotropicFilteringCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.AnisotropicFilteringCheckBox.Location = new System.Drawing.Point(19, 208);
this.AnisotropicFilteringCheckBox.Name = "AnisotropicFilteringCheckBox";
this.AnisotropicFilteringCheckBox.Size = new System.Drawing.Size(114, 17);
this.AnisotropicFilteringCheckBox.TabIndex = 9;
this.AnisotropicFilteringCheckBox.Text = "Anisotropic filtering";
this.AnisotropicFilteringCheckBox.UseVisualStyleBackColor = true;
this.AnisotropicFilteringCheckBox.CheckedChanged += new System.EventHandler(this.AnisotropicFilteringCheckBox_CheckedChanged);
//
// label14
//
this.label14.AutoSize = true;
this.label14.Location = new System.Drawing.Point(7, 312);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(63, 13);
this.label14.TabIndex = 15;
this.label14.Text = "Tex coords:";
//
// ToolsPanelHideButton
//
this.ToolsPanelHideButton.Location = new System.Drawing.Point(3, 3);
this.ToolsPanelHideButton.Name = "ToolsPanelHideButton";
this.ToolsPanelHideButton.Size = new System.Drawing.Size(30, 23);
this.ToolsPanelHideButton.TabIndex = 0;
this.ToolsPanelHideButton.Text = "<<";
this.ToolsPanelHideButton.UseVisualStyleBackColor = true;
this.ToolsPanelHideButton.Click += new System.EventHandler(this.ToolsPanelHideButton_Click);
//
// ToolsDragPanel
//
this.ToolsDragPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.ToolsDragPanel.Cursor = System.Windows.Forms.Cursors.VSplit;
this.ToolsDragPanel.Location = new System.Drawing.Point(227, 0);
this.ToolsDragPanel.Name = "ToolsDragPanel";
this.ToolsDragPanel.Size = new System.Drawing.Size(4, 559);
this.ToolsDragPanel.TabIndex = 17;
this.ToolsDragPanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseDown);
this.ToolsDragPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseMove);
this.ToolsDragPanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.ToolsDragPanel_MouseUp);
//
// ToolsPanelShowButton
//
this.ToolsPanelShowButton.Location = new System.Drawing.Point(15, 15);
this.ToolsPanelShowButton.Name = "ToolsPanelShowButton";
this.ToolsPanelShowButton.Size = new System.Drawing.Size(30, 23);
this.ToolsPanelShowButton.TabIndex = 0;
this.ToolsPanelShowButton.Text = ">>";
this.ToolsPanelShowButton.UseVisualStyleBackColor = true;
this.ToolsPanelShowButton.Click += new System.EventHandler(this.ToolsPanelShowButton_Click);
//
// SaveFileDialog
//
this.SaveFileDialog.Filter = "All files|*.*";
//
// FragGlassCheckBox
//
this.FragGlassCheckBox.AutoSize = true;
this.FragGlassCheckBox.Location = new System.Drawing.Point(19, 449);
this.FragGlassCheckBox.Name = "FragGlassCheckBox";
this.FragGlassCheckBox.Size = new System.Drawing.Size(175, 17);
this.FragGlassCheckBox.TabIndex = 25;
this.FragGlassCheckBox.Text = "Show Fragments Glass Outlines";
this.FragGlassCheckBox.UseVisualStyleBackColor = true;
this.FragGlassCheckBox.CheckedChanged += new System.EventHandler(this.FragGlassCheckBox_CheckedChanged);
//
// ModelForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -872,5 +885,6 @@
private System.Windows.Forms.ComboBox ClipComboBox;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.ComboBox ClipDictComboBox;
private System.Windows.Forms.CheckBox FragGlassCheckBox;
}
}

View File

@ -138,6 +138,7 @@ namespace CodeWalker.Forms
Renderer.renderclouds = false;
Renderer.rendermoon = false;
Renderer.renderskeletons = false;
Renderer.renderfragwindows = false;
Renderer.SelectionFlagsTestAll = true;
//var timeofday = 13.6f;
@ -272,6 +273,7 @@ namespace CodeWalker.Forms
Renderer.RenderQueued();
Renderer.RenderSelectionGeometry(MapSelectionMode.Entity);
Renderer.RenderFinalPass();
@ -1877,6 +1879,11 @@ namespace CodeWalker.Forms
Renderer.renderskeletons = SkeletonsCheckBox.Checked;
}
private void FragGlassCheckBox_CheckedChanged(object sender, EventArgs e)
{
Renderer.renderfragwindows = FragGlassCheckBox.Checked;
}
private void ErrorConsoleCheckBox_CheckedChanged(object sender, EventArgs e)
{
ConsolePanel.Visible = ErrorConsoleCheckBox.Checked;

View File

@ -111,6 +111,7 @@ namespace CodeWalker.Rendering
public bool renderlodlights = true; //render LOD lights from ymaps
public bool renderdistlodlights = true; //render distant lod lights (coronas)
public bool rendercars = false;
public bool renderfragwindows = false; //render selection geometry for window glass data in fragments
public bool rendercollisionmeshes = Settings.Default.ShowCollisionMeshes;
public bool rendercollisionmeshlayerdrawable = true;
@ -921,6 +922,20 @@ namespace CodeWalker.Rendering
SelectionLineVerts.Add(new VertexTypePC() { Position = p2, Colour = col });
}
public void RenderSelectionQuad(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, uint col)
{
var v1 = new VertexTypePC() { Position = p1, Colour = col };
var v2 = new VertexTypePC() { Position = p2, Colour = col };
var v3 = new VertexTypePC() { Position = p3, Colour = col };
var v4 = new VertexTypePC() { Position = p4, Colour = col };
SelectionTriVerts.Add(v1);
SelectionTriVerts.Add(v2);
SelectionTriVerts.Add(v3);
SelectionTriVerts.Add(v3);
SelectionTriVerts.Add(v4);
SelectionTriVerts.Add(v1);
}
public void RenderSelectionCone(Vector3 position, Vector3 ax, Vector3 ay, Vector3 dir, float radius, float height, uint col)
{
const int Reso = 36;
@ -2887,6 +2902,123 @@ namespace CodeWalker.Rendering
}
if (renderfragwindows)
{
var colblu = (uint)(new Color(0, 0, 255, 255).ToRgba());
var colred = (uint)(new Color(255, 0, 0, 255).ToRgba());
var eori = Quaternion.Identity;
var epos = Vector3.Zero;
if (ent != null)
{
eori = ent.Orientation;
epos = ent.Position;
}
if (f.GlassWindows?.data_items != null)
{
for (int i = 0; i < f.GlassWindows.data_items.Length; i++)
{
var gw = f.GlassWindows.data_items[i];
var projt = new Vector3(gw.UnkFloat1, gw.UnkFloat2, gw.UnkFloat3);//row0? or row3? maybe investigate more
var proju = new Vector3(gw.UnkFloat5, gw.UnkFloat6, gw.UnkFloat7);//row1 of XYZ>UV projection
var projv = new Vector3(gw.UnkFloat9, gw.UnkFloat10, gw.UnkFloat11);//row2 of XYZ>UV projection
//var unk01 = new Vector2(gw.UnkFloat13, gw.UnkFloat14);//offset?
//var unk02 = new Vector2(gw.UnkFloat15, gw.UnkFloat16);//scale? sum of this and above often gives integers eg 1, 6
//var thick = gw.UnkFloat17; //thickness of the glass
//var unkuv = new Vector2(gw.UnkFloat18, gw.UnkFloat19); //another scale in UV space..?
//var tangt = new Vector3(gw.UnkFloat20, gw.UnkFloat21, gw.UnkFloat22);//direction of surface tangent
//var bones = f.Drawable?.Skeleton?.Bones?.Items; //todo: use bones instead?
var grp = gw.Group;
var grplod = gw.GroupLOD;
var xforms = grplod?.FragTransforms?.Matrices;
var xoffs = Vector3.Zero;
if ((grp != null) && (xforms != null) && (grp.Index < xforms.Length) && (grplod != null))
{
var xform = xforms[grp.Index];
xoffs = xform.TranslationVector + grplod.Unknown_30h;
}
var m = new Matrix();
m.Row1 = new Vector4(projt, 0);
m.Row2 = new Vector4(proju, 0);
m.Row3 = new Vector4(projv, 0);
m.Row4 = new Vector4(xoffs, 1);
var v0 = m.Multiply(new Vector3(1, 0, 0));
var v1 = m.Multiply(new Vector3(1, 0, 1));
var v2 = m.Multiply(new Vector3(1, 1, 1));
var v3 = m.Multiply(new Vector3(1, 1, 0));
var c0 = eori.Multiply(v0) + epos;
var c1 = eori.Multiply(v1) + epos;
var c2 = eori.Multiply(v2) + epos;
var c3 = eori.Multiply(v3) + epos;
RenderSelectionLine(c0, c1, colblu);
RenderSelectionLine(c1, c2, colblu);
RenderSelectionLine(c2, c3, colblu);
RenderSelectionLine(c3, c0, colblu);
//RenderSelectionLine(c0, c0 + tangt, colred);
}
}
if (f.VehicleGlassWindows?.Windows != null)
{
for (int i = 0; i < f.VehicleGlassWindows.Windows.Length; i++)
{
var vgw = f.VehicleGlassWindows.Windows[i];
var projt = new Vector3(vgw.UnkFloat1, vgw.UnkFloat2, vgw.UnkFloat3);//row1
var proju = new Vector3(vgw.UnkFloat5, vgw.UnkFloat6, vgw.UnkFloat7);//row2
var projv = new Vector3(vgw.UnkFloat9, vgw.UnkFloat10, vgw.UnkFloat11);//row3
var projw = new Vector3(vgw.UnkFloat13, vgw.UnkFloat14, vgw.UnkFloat15);//row4
//var grp = vgw.Group;
//var grplod = vgw.GroupLOD;
var m = new Matrix();
m.Row1 = new Vector4(projt, 0);
m.Row2 = new Vector4(proju, 0);
m.Row3 = new Vector4(projv, 0);
m.Row4 = new Vector4(projw, 1);
m.Invert();//ouch
var min = (new Vector3(0, 0, 0));
var max = (new Vector3(vgw.ShatterMapWidth, vgw.ItemDataCount, 1));
var v0 = m.MultiplyW(new Vector3(min.X, min.Y, 0));
var v1 = m.MultiplyW(new Vector3(min.X, max.Y, 0));
var v2 = m.MultiplyW(new Vector3(max.X, max.Y, 0));
var v3 = m.MultiplyW(new Vector3(max.X, min.Y, 0));
var c0 = eori.Multiply(v0) + epos;
var c1 = eori.Multiply(v1) + epos;
var c2 = eori.Multiply(v2) + epos;
var c3 = eori.Multiply(v3) + epos;
RenderSelectionLine(c0, c1, colblu);
RenderSelectionLine(c1, c2, colblu);
RenderSelectionLine(c2, c3, colblu);
RenderSelectionLine(c3, c0, colblu);
if (vgw.ShatterMap != null)
{
var width = vgw.ShatterMapWidth;
var height = vgw.ShatterMap.Length;
for (int y = 0; y < height; y++)
{
var smr = vgw.ShatterMap[y];
for (int x = 0; x < width; x++)
{
var v = smr.GetValue(x);
if ((v < 0) || (v > 255)) continue;
var col = (uint)(new Color(v, v, v, 127).ToRgba());
v0 = m.MultiplyW(new Vector3(x, y, 0));
v1 = m.MultiplyW(new Vector3(x, y+1, 0));
v2 = m.MultiplyW(new Vector3(x+1, y+1, 0));
v3 = m.MultiplyW(new Vector3(x+1, y, 0));
c0 = eori.Multiply(v0) + epos;
c1 = eori.Multiply(v1) + epos;
c2 = eori.Multiply(v2) + epos;
c3 = eori.Multiply(v3) + epos;
RenderSelectionQuad(c0, c1, c2, c3, col);//extra ouch
}
}
}
}
}
}
return true;
}

View File

@ -90,6 +90,7 @@
this.ToolsPanelShowButton = new System.Windows.Forms.Button();
this.ConsolePanel = new System.Windows.Forms.Panel();
this.ConsoleTextBox = new CodeWalker.WinForms.TextBoxFix();
this.ShatterMapsCheckBox = new System.Windows.Forms.CheckBox();
this.StatusStrip.SuspendLayout();
this.ToolsPanel.SuspendLayout();
this.ToolsTabControl.SuspendLayout();
@ -419,6 +420,7 @@
//
// ToolsOptionsTabPage
//
this.ToolsOptionsTabPage.Controls.Add(this.ShatterMapsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.HDTexturesCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.SkeletonsCheckBox);
this.ToolsOptionsTabPage.Controls.Add(this.TimeOfDayLabel);
@ -594,7 +596,7 @@
this.StatusBarCheckBox.AutoSize = true;
this.StatusBarCheckBox.Checked = true;
this.StatusBarCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
this.StatusBarCheckBox.Location = new System.Drawing.Point(19, 480);
this.StatusBarCheckBox.Location = new System.Drawing.Point(19, 519);
this.StatusBarCheckBox.Name = "StatusBarCheckBox";
this.StatusBarCheckBox.Size = new System.Drawing.Size(74, 17);
this.StatusBarCheckBox.TabIndex = 23;
@ -605,7 +607,7 @@
// ErrorConsoleCheckBox
//
this.ErrorConsoleCheckBox.AutoSize = true;
this.ErrorConsoleCheckBox.Location = new System.Drawing.Point(105, 480);
this.ErrorConsoleCheckBox.Location = new System.Drawing.Point(105, 519);
this.ErrorConsoleCheckBox.Name = "ErrorConsoleCheckBox";
this.ErrorConsoleCheckBox.Size = new System.Drawing.Size(88, 17);
this.ErrorConsoleCheckBox.TabIndex = 24;
@ -804,6 +806,17 @@
this.ConsoleTextBox.Size = new System.Drawing.Size(695, 95);
this.ConsoleTextBox.TabIndex = 0;
//
// ShatterMapsCheckBox
//
this.ShatterMapsCheckBox.AutoSize = true;
this.ShatterMapsCheckBox.Location = new System.Drawing.Point(19, 467);
this.ShatterMapsCheckBox.Name = "ShatterMapsCheckBox";
this.ShatterMapsCheckBox.Size = new System.Drawing.Size(161, 17);
this.ShatterMapsCheckBox.TabIndex = 25;
this.ShatterMapsCheckBox.Text = "Show Window Shatter Maps";
this.ShatterMapsCheckBox.UseVisualStyleBackColor = true;
this.ShatterMapsCheckBox.CheckedChanged += new System.EventHandler(this.ShatterMapsCheckBox_CheckedChanged);
//
// VehicleForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -908,5 +921,6 @@
private System.Windows.Forms.Button ConvRoofButton;
private System.Windows.Forms.Label ConvRoofNameLabel;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.CheckBox ShatterMapsCheckBox;
}
}

View File

@ -101,6 +101,7 @@ namespace CodeWalker
//Renderer.individualcloudfrag = "Contrails";
Renderer.rendermoon = false;
Renderer.renderskeletons = false;
Renderer.renderfragwindows = false;
Renderer.SelectionFlagsTestAll = true;
}
@ -202,7 +203,7 @@ namespace CodeWalker
//Renderer.RenderBounds(MapSelectionMode.Entity);
//Renderer.RenderSelectionGeometry(MapSelectionMode.Entity);
Renderer.RenderSelectionGeometry(MapSelectionMode.Entity);
//RenderMoused();
@ -1351,6 +1352,11 @@ namespace CodeWalker
Renderer.renderskeletons = SkeletonsCheckBox.Checked;
}
private void ShatterMapsCheckBox_CheckedChanged(object sender, EventArgs e)
{
Renderer.renderfragwindows = ShatterMapsCheckBox.Checked;
}
private void ErrorConsoleCheckBox_CheckedChanged(object sender, EventArgs e)
{
ConsolePanel.Visible = ErrorConsoleCheckBox.Checked;