mirror of
https://github.com/4sval/FModel.git
synced 2026-04-04 16:15:52 -05:00
emissive has a problem with some skins
This commit is contained in:
parent
cdf629e1e7
commit
577b82e86f
|
|
@ -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
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 @@
|
|||
<ColumnDefinition Width="4*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid Grid.Column="0" Background="#2A2B34">
|
||||
<Grid Grid.Column="0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*" />
|
||||
<RowDefinition Height="Auto" />
|
||||
|
|
@ -41,7 +40,7 @@
|
|||
</Grid>
|
||||
|
||||
<GridSplitter Grid.Column="1" ResizeDirection="Columns" Width="4" VerticalAlignment="Stretch" ResizeBehavior="PreviousAndNext"
|
||||
Background="{DynamicResource {x:Static adonisUi:Brushes.Layer0BackgroundBrush}}" />
|
||||
Background="{DynamicResource {x:Static adonisUi:Brushes.Layer3BackgroundBrush}}" />
|
||||
|
||||
<helix:Viewport3DX Grid.Column="2" EffectsManager="{Binding ModelViewer.EffectManager}" Camera="{Binding ModelViewer.Cam}"
|
||||
IsChangeFieldOfViewEnabled="False" IsMoveEnabled="False" UseDefaultGestures="False" ShowViewCube="False"
|
||||
|
|
|
|||
|
|
@ -17,20 +17,24 @@ namespace FModel.Views
|
|||
}
|
||||
|
||||
public void Load(UObject export) => _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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user