mirror of
https://github.com/4sval/FModel.git
synced 2026-03-22 01:34:37 -05:00
nothing important
This commit is contained in:
parent
2a6c42d15f
commit
f3c1103b0c
|
|
@ -1 +1 @@
|
|||
Subproject commit 8f70ce981ed65ee9dcb4948905a58da2f3730a82
|
||||
Subproject commit dd9a2706022676a8bf529a31e6d311124e58942f
|
||||
|
|
@ -135,19 +135,19 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="AdonisUI" Version="1.17.1" />
|
||||
<PackageReference Include="AdonisUI.ClassicTheme" Version="1.17.1" />
|
||||
<PackageReference Include="Autoupdater.NET.Official" Version="1.7.3" />
|
||||
<PackageReference Include="AvalonEdit" Version="6.1.3.50" />
|
||||
<PackageReference Include="Autoupdater.NET.Official" Version="1.7.6" />
|
||||
<PackageReference Include="AvalonEdit" Version="6.2.0.78" />
|
||||
<PackageReference Include="CSCore" Version="1.2.1.2" />
|
||||
<PackageReference Include="DiscordRichPresence" Version="1.0.175" />
|
||||
<PackageReference Include="ImGui.NET" Version="1.88.0" />
|
||||
<PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.2.16" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="NVorbis" Version="0.10.4" />
|
||||
<PackageReference Include="DiscordRichPresence" Version="1.1.3.18" />
|
||||
<PackageReference Include="ImGui.NET" Version="1.89.4" />
|
||||
<PackageReference Include="K4os.Compression.LZ4.Streams" Version="1.3.5" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
||||
<PackageReference Include="NVorbis" Version="0.10.5" />
|
||||
<PackageReference Include="Oodle.NET" Version="1.0.1" />
|
||||
<PackageReference Include="Ookii.Dialogs.Wpf" Version="5.0.1" />
|
||||
<PackageReference Include="OpenTK" Version="4.7.5" />
|
||||
<PackageReference Include="RestSharp" Version="108.0.1" />
|
||||
<PackageReference Include="Serilog" Version="2.11.0" />
|
||||
<PackageReference Include="RestSharp" Version="108.0.3" />
|
||||
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
|
||||
<PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
|
||||
<PackageReference Include="SkiaSharp.HarfBuzz" Version="2.88.0" />
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public class BufferObject<TDataType> : 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)
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user