gpt4 book ai didi

c# - WPF 模型使用 helix viewer 3d c# 显示为黑色

转载 作者:行者123 更新时间:2023-12-05 06:53:03 25 4
gpt4 key购买 nike

我是 WPF 和模型的新手,我想制作一个可以打开各种 obj 文件并显示模型的界面。

目前所有这些在视口(viewport)中都显示为黑色,如下所示:

black model

不知道为什么,我觉得是闪电的问题,因为所有模型的位置都不一样,不知道怎么换位置。我不认为它与它自己的对象有关,因为在 Windows 的查看器中,它看起来是彩色的:

colored model

这是我的 xaml 部分:

<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>

<ListBox x:Name="Groupfiles" SelectionChanged="Groupfiles_Selected" Grid.Column="0"></ListBox>
<StackPanel Grid.Column="1">
<Button x:Name="ClickThebutton" Click="ClickThebutton_Click" >Click Me</Button>
</StackPanel>
<helix:HelixViewport3D x:Name="viewPort3d" ZoomExtentsWhenLoaded="true" Grid.Column="2" >
</helix:HelixViewport3D>
</Grid>

这是 C# 部分:

ModelVisual3D device3D = new ModelVisual3D();
string file_to_open = null;
file_to_open = Groupfiles.SelectedItem.ToString();
string obj_file = Path.ChangeExtension(file_to_open, ".obj");
if (!File.Exists(obj_file))
{
/// converts original file to obj file
}

device3D.Content = Display3d(obj_file);

viewPort3d.Children.Clear();
viewPort3d.Children.Add(device3D);
viewPort3d.ZoomExtents();

显示方法是这样的(来 self 看到的 helix3d 教程):

public static Model3D Display3d(string model)
{
Model3D device = null;
try
{
//Adding a gesture here
viewPort3d.RotateGesture =new MouseGesture(MouseAction.LeftClick));

//Import 3D model file
ModelImporter import = new ModelImporter();

//Load the 3D model file
device= import.Load(model);
}
catch (Exception e)
{
// Handle exception in case can not find the 3D model file
MessageBox.Show("Exception Error : " + e.StackTrace);
}
return device;
}

我试图找到这个问题的答案,但无济于事。你能帮帮我吗?

最佳答案

我没有看到您在代码中设置任何灯光。

关于c# - WPF 模型使用 helix viewer 3d c# 显示为黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65848524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com