diff --git a/FModel/ViewModels/ModelViewerViewModel.cs b/FModel/ViewModels/ModelViewerViewModel.cs
index f7f987ef..0c8c6847 100644
--- a/FModel/ViewModels/ModelViewerViewModel.cs
+++ b/FModel/ViewModels/ModelViewerViewModel.cs
@@ -13,7 +13,6 @@ using FModel.Framework;
using HelixToolkit.SharpDX.Core;
using HelixToolkit.Wpf.SharpDX;
using SharpDX;
-using SharpDX.Direct3D11;
using Camera = HelixToolkit.Wpf.SharpDX.Camera;
using Geometry3D = HelixToolkit.SharpDX.Core.Geometry3D;
using PerspectiveCamera = HelixToolkit.Wpf.SharpDX.PerspectiveCamera;
@@ -57,22 +56,6 @@ namespace FModel.ViewModels
set => SetProperty(ref _zAxis, value);
}
- private bool _showWireframe;
- public bool ShowWireframe
- {
- get => _showWireframe;
- set
- {
- SetProperty(ref _showWireframe, value);
- foreach (var g in Group3d)
- {
- if (g is not MeshGeometryModel3D geometryModel)
- continue;
- geometryModel.RenderWireframe = !_showWireframe;
- }
- }
- }
-
private bool _appendModeEnabled;
public bool AppendModeEnabled
{
@@ -112,7 +95,7 @@ namespace FModel.ViewModels
}
}
- public void HideToggleAll()
+ public void RenderingToggle()
{
foreach (var g in Group3d)
{
@@ -123,7 +106,18 @@ namespace FModel.ViewModels
}
}
- public void ToggleDiffuseOnly()
+ public void WirefreameToggle()
+ {
+ foreach (var g in Group3d)
+ {
+ if (g is not MeshGeometryModel3D geometryModel)
+ continue;
+
+ geometryModel.RenderWireframe = !geometryModel.RenderWireframe;
+ }
+ }
+
+ public void DiffuseOnlyToggle()
{
foreach (var g in Group3d)
{
@@ -134,7 +128,7 @@ namespace FModel.ViewModels
{
mat.RenderAmbientOcclusionMap = !mat.RenderAmbientOcclusionMap;
mat.RenderDisplacementMap = !mat.RenderDisplacementMap;
- mat.RenderEmissiveMap = !mat.RenderEmissiveMap;
+ // mat.RenderEmissiveMap = !mat.RenderEmissiveMap;
mat.RenderEnvironmentMap = !mat.RenderEnvironmentMap;
mat.RenderIrradianceMap = !mat.RenderIrradianceMap;
mat.RenderRoughnessMetallicMap = !mat.RenderRoughnessMetallicMap;
@@ -203,7 +197,6 @@ namespace FModel.ViewModels
continue;
var m = new PBRMaterial { RenderShadowMap = true, EnableAutoTangent = true };
-
var parameters = new CMaterialParams();
unrealMaterial.GetParams(parameters);
@@ -215,11 +208,17 @@ namespace FModel.ViewModels
if (parameters.Normal is UTexture2D normal)
m.NormalMap = new TextureModel(normal.Decode()?.Encode().AsStream());
// if (parameters.Specular is UTexture2D specular)
- // m.SpecularColorMap = new TextureModel(specular.Decode()?.Encode().AsStream());
- // if (parameters.UseMobileSpecular)
- // m.SpecularShininess = parameters.MobileSpecularPower;
+ // m.AmbientOcculsionMap = new TextureModel(specular.Decode()?.Encode().AsStream());
+ // if (parameters.Specular is UTexture2D specularPower)
+ // {
+ // m.RoughnessFactor = parameters.MobileSpecularPower;
+ // m.RoughnessMetallicMap = new TextureModel(specularPower.Decode()?.Encode().AsStream());
+ // }
// if (parameters.Emissive is UTexture2D emissive)
+ // {
+ // m.EmissiveColor = Color4.White; // FortniteGame/Content/Characters/Player/Female/Medium/Bodies/F_MED_Obsidian/Meshes/F_MED_Obsidian.uasset
// m.EmissiveMap = new TextureModel(emissive.Decode()?.Encode().AsStream());
+ // }
}
else
{
@@ -231,8 +230,7 @@ namespace FModel.ViewModels
Name = unrealMaterial.Name,
Geometry = builder.ToMeshGeometry3D(),
Material = m,
- IsRendering = isRendering,
- FillMode = FillMode.Solid
+ IsRendering = isRendering
});
}
}
diff --git a/FModel/Views/ModelViewer.xaml b/FModel/Views/ModelViewer.xaml
index d10822b0..9d7319e0 100644
--- a/FModel/Views/ModelViewer.xaml
+++ b/FModel/Views/ModelViewer.xaml
@@ -4,9 +4,8 @@
xmlns:converters="clr-namespace:FModel.Views.Resources.Converters"
xmlns:adonisUi="clr-namespace:AdonisUI;assembly=AdonisUI"
xmlns:adonisControls="clr-namespace:AdonisUI.Controls;assembly=AdonisUI"
- xmlns:adonisExtensions="clr-namespace:AdonisUI.Extensions;assembly=AdonisUI"
xmlns:helix="http://helix-toolkit.org/wpf/SharpDX"
- WindowStartupLocation="CenterScreen" ResizeMode="CanResize" IconVisibility="Collapsed" Background="#262630"
+ WindowStartupLocation="CenterScreen" ResizeMode="CanResize" IconVisibility="Collapsed"
PreviewKeyDown="OnWindowKeyDown" Closing="OnClosing"
Height="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenHeight}, Converter={converters:RatioConverter}, ConverterParameter='0.60'}"
Width="{Binding Source={x:Static SystemParameters.MaximizedPrimaryScreenWidth}, Converter={converters:RatioConverter}, ConverterParameter='0.60'}">
@@ -29,7 +28,7 @@
-
+
@@ -41,7 +40,7 @@
+ Background="{DynamicResource {x:Static adonisUi:Brushes.Layer3BackgroundBrush}}" />
_applicationView.ModelViewer.LoadExport(export);
- private void OnClosing(object sender, CancelEventArgs e) => MyAntiCrashGroup.ItemsSource = null; // <3
+ private void OnClosing(object sender, CancelEventArgs e)
+ {
+ _applicationView.ModelViewer.AppendModeEnabled = false;
+ MyAntiCrashGroup.ItemsSource = null; // <3
+ }
private void OnWindowKeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.W:
- _applicationView.ModelViewer.ShowWireframe = !_applicationView.ModelViewer.ShowWireframe;
+ _applicationView.ModelViewer.WirefreameToggle();
break;
case Key.H:
- _applicationView.ModelViewer.HideToggleAll();
+ _applicationView.ModelViewer.RenderingToggle();
break;
case Key.D:
- _applicationView.ModelViewer.ToggleDiffuseOnly();
+ _applicationView.ModelViewer.DiffuseOnlyToggle();
break;
}
}