ModelRenderer - Fix centering model after selecting

This commit is contained in:
miku-666
2024-10-09 12:52:34 +02:00
parent e3e2829a19
commit 4be6fba77d
2 changed files with 6 additions and 8 deletions

View File

@@ -246,6 +246,7 @@ namespace PckStudio.Forms.Editor
modelViewport.Texture = textures[0].Texture;
modelViewport.Model = modelNode.Model;
modelViewport.ResetCamera();
}
}

View File

@@ -117,10 +117,6 @@ namespace PckStudio.Rendering
_maxBounds = GetBounds(allBoxes);
Vector3 center = (_maxBounds.Start + _maxBounds.End) / 2f;
ResetCamera(center);
if (!GameModelImporter.ModelMetaData.TryGetValue(model.Name, out JsonModelMetaData modelMetaData))
{
Trace.TraceError($"[{nameof(ModelRenderer)}@{nameof(InitModelRender)}] : Couldn't get meta data for model: '{model.Name}'");
@@ -159,14 +155,15 @@ namespace PckStudio.Rendering
MakeCurrent();
ShaderProgram shader = GetShader("CubeShader");
shader.Bind();
shader.SetUniform2("TexSize", model.TextureSize);
}
public override void ResetCamera(Vector3 defaultPosition)
public override void ResetCamera(Vector3 offset)
{
Camera.FocalPoint = defaultPosition;
Camera.Distance = _maxBounds.Volume.Length * 1.3f;
Vector3 center = (_maxBounds.Start + _maxBounds.End) / 2f;
Camera.FocalPoint = Vector3.TransformPosition(center + offset, Matrix4.CreateScale(-1f, 1f, 1f));
Camera.Distance = _maxBounds.Volume.Length;
Camera.Yaw = 45f;
Camera.Pitch = 25f;
}