From f3c1103b0cf57ffd91bb688297b18829dfd65d0a Mon Sep 17 00:00:00 2001 From: 4sval Date: Thu, 9 Feb 2023 20:06:58 +0100 Subject: [PATCH] nothing important --- CUE4Parse | 2 +- FModel/FModel.csproj | 18 +++++++++--------- FModel/Views/Snooper/Buffers/BufferObject.cs | 2 +- .../Snooper/Models/Animations/Animation.cs | 4 ++-- .../Snooper/Models/Animations/Skeleton.cs | 4 +--- FModel/Views/Snooper/Models/Model.cs | 7 +++---- FModel/Views/Snooper/Renderer.cs | 5 +++++ FModel/Views/Snooper/Shading/Texture.cs | 6 ------ FModel/Views/Snooper/SnimGui.cs | 7 +++++-- FModel/Views/Snooper/Snooper.cs | 4 ++-- 10 files changed, 29 insertions(+), 30 deletions(-) diff --git a/CUE4Parse b/CUE4Parse index 8f70ce98..dd9a2706 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 8f70ce981ed65ee9dcb4948905a58da2f3730a82 +Subproject commit dd9a2706022676a8bf529a31e6d311124e58942f diff --git a/FModel/FModel.csproj b/FModel/FModel.csproj index ccd409ae..350dc4ac 100644 --- a/FModel/FModel.csproj +++ b/FModel/FModel.csproj @@ -135,19 +135,19 @@ - - + + - - - - - + + + + + - - + + diff --git a/FModel/Views/Snooper/Buffers/BufferObject.cs b/FModel/Views/Snooper/Buffers/BufferObject.cs index 58a6cc54..743f4cfa 100644 --- a/FModel/Views/Snooper/Buffers/BufferObject.cs +++ b/FModel/Views/Snooper/Buffers/BufferObject.cs @@ -23,7 +23,7 @@ public class BufferObject : IDisposable where TDataType : unmanaged public unsafe BufferObject(int length, BufferTarget bufferTarget) : this(bufferTarget) { - GL.BufferData(bufferTarget, length * sizeof(TDataType), IntPtr.Zero, BufferUsageHint.StaticDraw); + GL.BufferData(bufferTarget, length * sizeof(TDataType), IntPtr.Zero, BufferUsageHint.DynamicDraw); } public unsafe void Update(int offset, TDataType data) diff --git a/FModel/Views/Snooper/Models/Animations/Animation.cs b/FModel/Views/Snooper/Models/Animations/Animation.cs index c64a0be4..3553c565 100644 --- a/FModel/Views/Snooper/Models/Animations/Animation.cs +++ b/FModel/Views/Snooper/Models/Animations/Animation.cs @@ -30,10 +30,10 @@ public class Animation : IDisposable Sequences[CurrentSequence].Update(deltaSeconds); } - public Matrix4x4 InterpolateBoneTransform(int trackIndex) + public Matrix4x4 InterpolateBoneTransform(int boneIndex) { // interpolate here - return Sequences[CurrentSequence].BonesTransform[trackIndex][Sequences[CurrentSequence].Frame].Matrix; + return Sequences[CurrentSequence].BonesTransform[boneIndex][Sequences[CurrentSequence].Frame].Matrix; } public void CheckForNextSequence() diff --git a/FModel/Views/Snooper/Models/Animations/Skeleton.cs b/FModel/Views/Snooper/Models/Animations/Skeleton.cs index 15d71227..651eb882 100644 --- a/FModel/Views/Snooper/Models/Animations/Skeleton.cs +++ b/FModel/Views/Snooper/Models/Animations/Skeleton.cs @@ -1,12 +1,10 @@ -using System; +using System; using System.Collections.Generic; -using System.Linq; using System.Numerics; using CUE4Parse_Conversion.Animations; using CUE4Parse.UE4.Assets.Exports.Animation; using CUE4Parse.UE4.Objects.UObject; using FModel.Views.Snooper.Buffers; -using FModel.Views.Snooper.Shading; using OpenTK.Graphics.OpenGL4; using Serilog; diff --git a/FModel/Views/Snooper/Models/Model.cs b/FModel/Views/Snooper/Models/Model.cs index 44bef470..84df5065 100644 --- a/FModel/Views/Snooper/Models/Model.cs +++ b/FModel/Views/Snooper/Models/Model.cs @@ -254,10 +254,9 @@ public class Model : IDisposable var boneMatrix = Matrix4x4.Identity; if (HasSkeleton && Skeleton.BonesIndicesByLoweredName.TryGetValue(socket.BoneName.Text.ToLower(), out var boneIndices)) { - if (Skeleton.HasAnim) - boneMatrix = Skeleton.Anim.InterpolateBoneTransform(boneIndices.Index); - else if (Skeleton.BonesTransformByIndex.TryGetValue(boneIndices.Index, out var boneTransform)) - boneMatrix = boneTransform.Matrix; + boneMatrix = Skeleton.HasAnim + ? Skeleton.Anim.InterpolateBoneTransform(boneIndices.Index) + : Skeleton.BonesTransformByIndex[boneIndices.Index].Matrix; } var socketRelation = boneMatrix * worldMatrix; diff --git a/FModel/Views/Snooper/Renderer.cs b/FModel/Views/Snooper/Renderer.cs index a89897bc..179d79f2 100644 --- a/FModel/Views/Snooper/Renderer.cs +++ b/FModel/Views/Snooper/Renderer.cs @@ -415,6 +415,11 @@ public class Renderer : IDisposable public void Save() { + Options.ResetModelsAndLights(); + Options.SelectModel(Guid.Empty); + Options.SwapMaterial(false); + Options.AnimateMesh(false); + if (_saveCameraMode) UserSettings.Default.CameraMode = CameraOp.Mode; UserSettings.Default.ShowSkybox = ShowSkybox; UserSettings.Default.ShowGrid = ShowGrid; diff --git a/FModel/Views/Snooper/Shading/Texture.cs b/FModel/Views/Snooper/Shading/Texture.cs index 915e31e7..9a65aa14 100644 --- a/FModel/Views/Snooper/Shading/Texture.cs +++ b/FModel/Views/Snooper/Shading/Texture.cs @@ -46,12 +46,6 @@ public class Texture : IDisposable Bind(TextureUnit.Texture0); GL.TexImage2DMultisample(TextureTargetMultisample.Texture2DMultisample, Constants.SAMPLES_COUNT, PixelInternalFormat.Rgb, Width, Height, true); - - GL.TexParameter(_target, TextureParameterName.TextureMinFilter, (int) TextureMinFilter.Nearest); - GL.TexParameter(_target, TextureParameterName.TextureMagFilter, (int) TextureMinFilter.Nearest); - GL.TexParameter(_target, TextureParameterName.TextureWrapS, (int) TextureWrapMode.ClampToEdge); - GL.TexParameter(_target, TextureParameterName.TextureWrapT, (int) TextureWrapMode.ClampToEdge); - GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, _target, _handle, 0); } diff --git a/FModel/Views/Snooper/SnimGui.cs b/FModel/Views/Snooper/SnimGui.cs index 5be9e080..6dc35745 100644 --- a/FModel/Views/Snooper/SnimGui.cs +++ b/FModel/Views/Snooper/SnimGui.cs @@ -417,8 +417,10 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio var i = 0; foreach (var socket in model.Sockets) { + var isAttached = socket.AttachedModels.Contains(selectedGuid); ImGui.PushID(i); - switch (socket.AttachedModels.Contains(selectedGuid)) + ImGui.BeginDisabled(selectedModel.IsAttached && !isAttached); + switch (isAttached) { case false when ImGui.Button($"Attach to '{socket.Name}'"): socket.AttachedModels.Add(selectedGuid); @@ -429,6 +431,7 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio selectedModel.DetachModel(model); break; } + ImGui.EndDisabled(); ImGui.PopID(); i++; } @@ -688,7 +691,7 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio var size = new Vector2(largest.X, largest.Y); s.Renderer.CameraOp.AspectRatio = size.X / size.Y; - ImGui.ImageButton(s.Framebuffer.GetPointer(), size, new Vector2(0, 1), new Vector2(1, 0), 0); + ImGui.Image(s.Framebuffer.GetPointer(), size, new Vector2(0, 1), new Vector2(1, 0), Vector4.One); if (ImGui.IsItemHovered()) { diff --git a/FModel/Views/Snooper/Snooper.cs b/FModel/Views/Snooper/Snooper.cs index e812f226..a182e9fe 100644 --- a/FModel/Views/Snooper/Snooper.cs +++ b/FModel/Views/Snooper/Snooper.cs @@ -45,8 +45,6 @@ public class Snooper : GameWindow if (clear) { Renderer.CameraOp.Speed = 0; - Renderer.Options.ResetModelsAndLights(); - Renderer.Options.SelectModel(Guid.Empty); Renderer.Save(); } @@ -156,6 +154,8 @@ public class Snooper : GameWindow Renderer.CameraOp.Modify(KeyboardState, (float) e.Time); + if (KeyboardState.IsKeyPressed(Keys.Delete)) + Renderer.Options.Models.Remove(Renderer.Options.SelectedModel); if (KeyboardState.IsKeyPressed(Keys.H)) WindowShouldClose(true, false); if (KeyboardState.IsKeyPressed(Keys.Escape))