From d7dac033cb6404a2f10ddcfdeed347e51b5c5f42 Mon Sep 17 00:00:00 2001 From: Asval Date: Sat, 18 May 2024 21:09:11 +0200 Subject: [PATCH] bump --- CUE4Parse | 2 +- FModel/Resources/default.frag | 2 +- FModel/Resources/default.vert | 2 ++ FModel/Resources/outline.vert | 5 +++-- FModel/Views/Snooper/Shading/Material.cs | 2 +- FModel/Views/Snooper/SnimGui.cs | 13 ++++++++----- 6 files changed, 16 insertions(+), 10 deletions(-) diff --git a/CUE4Parse b/CUE4Parse index 3fe4665c..ef969ec1 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 3fe4665cb0d824fd54d92c980bb03488ccb234b1 +Subproject commit ef969ec1d5e2078233d042d61570bbfe5eaf2573 diff --git a/FModel/Resources/default.frag b/FModel/Resources/default.frag index 3225bdf8..e41a6b9b 100644 --- a/FModel/Resources/default.frag +++ b/FModel/Resources/default.frag @@ -164,7 +164,7 @@ vec3 CalcLight(int layer, vec3 normals, vec3 position, vec3 color, float attenua float nDotH = max(dot(n, h), 0.0); float hDotv = max(dot(h, v), 0.0); - float nDotL = max(dot(n, l), 0.4); + float nDotL = max(dot(n, l), 0.0); float nDotV = max(dot(n, v), 0.0); vec3 f = schlickFresnel(fLambert, specular_masks.g, hDotv); diff --git a/FModel/Resources/default.vert b/FModel/Resources/default.vert index b73bc5ef..6fa19706 100644 --- a/FModel/Resources/default.vert +++ b/FModel/Resources/default.vert @@ -78,6 +78,8 @@ void main() } } finalPos = normalize(finalPos); + finalNormal = normalize(finalNormal); + finalTangent = normalize(finalTangent); } else { diff --git a/FModel/Resources/outline.vert b/FModel/Resources/outline.vert index 11cc1037..396b6b14 100644 --- a/FModel/Resources/outline.vert +++ b/FModel/Resources/outline.vert @@ -54,6 +54,7 @@ void main() } } finalPos = normalize(finalPos); + finalNormal = normalize(finalNormal); } else { @@ -62,8 +63,8 @@ void main() } vec4 worldPos = vInstanceMatrix * finalPos; - float scaleFactor = distance(worldPos.xyz, uViewPos) * 0.0035; - vec4 nor = transpose(inverse(vInstanceMatrix)) * normalize(finalNormal) * scaleFactor; + float scaleFactor = length(uViewPos - worldPos.xyz) * 0.0035; + vec4 nor = transpose(inverse(vInstanceMatrix)) * finalNormal * scaleFactor; finalPos.xyz += nor.xyz; gl_Position = uProjection * uView * vInstanceMatrix * finalPos; diff --git a/FModel/Views/Snooper/Shading/Material.cs b/FModel/Views/Snooper/Shading/Material.cs index a63a0e58..eefbf38a 100644 --- a/FModel/Views/Snooper/Shading/Material.cs +++ b/FModel/Views/Snooper/Shading/Material.cs @@ -76,7 +76,7 @@ public class Material : IDisposable if (uvCount < 1 || Parameters.IsNull) { - Diffuse = [new Texture(new FLinearColor(1f, 1f, 1f, 1f))]; + Diffuse = [new Texture(new FLinearColor(.6f, .6f, .6f, 1f))]; Normals = [new Texture(new FLinearColor(0.498f, 0.498f, 0.996f, 1f))]; SpecularMasks = [new Texture(new FLinearColor(1f, 0.5f, 0.5f, 1f))]; Emissive = new Texture[1]; diff --git a/FModel/Views/Snooper/SnimGui.cs b/FModel/Views/Snooper/SnimGui.cs index 30a78f9b..28812c71 100644 --- a/FModel/Views/Snooper/SnimGui.cs +++ b/FModel/Views/Snooper/SnimGui.cs @@ -414,9 +414,11 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio ImGui.TableNextColumn(); ImGui.Text(model.UvCount.ToString("D")); ImGui.TableNextColumn(); - if (ImGui.Selectable(model.Name, s.Renderer.Options.SelectedModel == guid, ImGuiSelectableFlags.SpanAllColumns)) + var doubleClick = false; + if (ImGui.Selectable(model.Name, s.Renderer.Options.SelectedModel == guid, ImGuiSelectableFlags.SpanAllColumns | ImGuiSelectableFlags.AllowDoubleClick)) { s.Renderer.Options.SelectModel(guid); + doubleClick = ImGui.IsMouseDoubleClicked(ImGuiMouseButton.Left); } Popup(() => { @@ -456,16 +458,17 @@ Snooper aims to give an accurate preview of models, materials, skeletal animatio s.Renderer.IsSkeletonTreeOpen = true; ImGui.SetWindowFocus("Skeleton Tree"); } - if (ImGui.MenuItem("Teleport To")) - { - s.Renderer.CameraOp.Teleport(model.GetTransform().Matrix.Translation, model.Box); - } + doubleClick = ImGui.MenuItem("Teleport To"); if (ImGui.MenuItem("Delete")) s.Renderer.Options.RemoveModel(guid); if (ImGui.MenuItem("Deselect")) s.Renderer.Options.SelectModel(Guid.Empty); ImGui.Separator(); if (ImGui.MenuItem("Copy Path to Clipboard")) ImGui.SetClipboardText(model.Path); }); + if (doubleClick) + { + s.Renderer.CameraOp.Teleport(model.GetTransform().Matrix.Translation, model.Box); + } ImGui.TableNextColumn(); ImGui.Image(s.Renderer.Options.Icons[model.Attachments.Icon].GetPointer(), new Vector2(_tableWidth));