public ProbeLightingEntryWrapper(ProbeLighting.Entry config) { Text = config.Name; Checked = true; entry = config; }
private void LoadDataBuffer(aampv1.ParamEntry[] paramEntries, ProbeLighting.Entry probeEntry) { foreach (var entry in paramEntries) { if (entry.HashString == "type") { probeEntry.DataType = (uint)entry.Value; } if (entry.HashString == "used_data_num") { probeEntry.UsedShDataNum = (uint)entry.Value; } if (entry.HashString == "max_sh_data_num") { probeEntry.MaxShDataNum = (uint)entry.Value; } if (entry.HashString == "data_buffer") { if (entry.ParamType == aampv1.ParamType.BufferFloat) { probeEntry.DataBuffer = (float[])entry.Value; } } } }
private void LoadIndexBuffer(aampv1.ParamEntry[] paramEntries, ProbeLighting.Entry probeEntry) { foreach (var entry in paramEntries) { if (entry.HashString == "type") { probeEntry.IndexType = (uint)entry.Value; } if (entry.HashString == "used_index_num") { probeEntry.UsedIndexNum = (uint)entry.Value; } if (entry.HashString == "max_index_num") { probeEntry.MaxIndexNum = (uint)entry.Value; } if (entry.HashString == "index_buffer") { if (entry.ParamType == aampv1.ParamType.BufferUint) { probeEntry.IndexBuffer = (uint[])entry.Value; } //Experimental, just fill in indices uint[] values = (uint[])entry.Value; for (int i = 0; i < values.Length; i++) { values[i] = 0; } entry.Value = values; } } }
private void LoadParameters(aampv1.AampFile aamp) { if (aamp.EffectType == "Probe Data") { probeLightingConfig = new ProbeLighting(); viewport.AddDrawable(probeLightingConfig); var probeRoot = new ProbeLightingWrapper(probeLightingConfig); treeView1.Nodes.Add(probeRoot); uint index = 0; foreach (var val in aamp.RootNode.childParams) { var entry = new ProbeLighting.Entry(); entry.Index = index++; probeLightingConfig.Entries.Add(entry); probeRoot.Nodes.Add(new ProbeLightingEntryWrapper(entry)); foreach (var param in val.paramObjects) { switch (param.HashString) { case "param_obj": foreach (var data in param.paramEntries) { if (data.HashString == "index") { entry.Index = (uint)data.Value; } if (data.HashString == "type") { entry.Type = (uint)data.Value; } } break; case "grid": entry.Grid = LoadGridData(param.paramEntries); break; case "sh_index_buffer": LoadIndexBuffer(param.paramEntries, entry); break; case "sh_data_buffer": LoadDataBuffer(param.paramEntries, entry); break; } } } aamp.Save($"{CourseFolder}/DEBUG_PROBE.aamp"); foreach (var entry in probeLightingConfig.Entries) { Console.WriteLine(entry.Name); Console.WriteLine($"IndexType {entry.IndexType}"); Console.WriteLine($"DataType {entry.DataType}"); Console.WriteLine($"MaxIndexNum {entry.MaxIndexNum}"); Console.WriteLine($"UsedIndexNum {entry.UsedIndexNum}"); Console.WriteLine($"MaxShDataNum {entry.MaxShDataNum}"); Console.WriteLine($"UsedShDataNum {entry.UsedShDataNum}"); Console.WriteLine($"AABB_Max_Position {entry.Grid.AABB_Max_Position}"); Console.WriteLine($"AABB_Min_Position {entry.Grid.AABB_Min_Position}"); Console.WriteLine($"Voxel_Step_Position {entry.Grid.Voxel_Step_Position}"); Console.WriteLine($"DataBuffer {entry.DataBuffer.Length}"); Console.WriteLine($"IndexBuffer {entry.IndexBuffer.Length}"); } } }