Helix Sharp DX 中的灯无法正常工作

Lights not working properly in Helix Sharp DX

我正在尝试使用 Helix Toolkit (https://github.com/helix-toolkit/helix-toolkit) 和 SharpDX 构建一个 obj 文件查看器。到目前为止,我能够加载目标文件并将其内容呈现给 Helix Viewport3DX。一些 obj 文件的模型看起来不错,但对于其他文件,存在一些闪电问题,背面总是黑色。我不确定我做错了什么。这个灯的问题是不是因为SharpDX不支持背料??请帮忙。

使用 Helix Sharp DX 时出现问题:

Adobe DC 中的原始模型 Reader 如下所示:

Viewport3DX 设置为:

<Window.Resources>
    <DataTemplate x:Key="Template1">
        <hx:MyMeshGeometryModel3D Geometry="{Binding Geometry}" Transform="{Binding Transform}" Material="{Binding Material}"/>
    </DataTemplate>
    <hx:RenderTechniqueConverter x:Key="RenderTechniqueConverter"/>
</Window.Resources>
<hx:Viewport3DX x:Name="helixViewport" Camera="{Binding Camera}" CameraRotationMode="Trackball" RenderTechnique="{Binding RenderTechnique}" RenderTechniquesManager="{Binding RenderTechniquesManager}" EffectsManager="{Binding EffectsManager}" BackgroundColor="{Binding BackgroundColor}" UseDefaultGestures="False">
    <hx:Viewport3DX.InputBindings>
        <MouseBinding Gesture="LeftClick" Command="hx:ViewportCommands.Rotate"/>
        <MouseBinding Gesture="MiddleClick" Command="hx:ViewportCommands.Zoom"/>
        <MouseBinding Gesture="RightClick" Command="hx:ViewportCommands.Pan"/>
    </hx:Viewport3DX.InputBindings>
    <hx:AmbientLight3D Color="{Binding AmbientLightColor}"/>
    <hx:DirectionalLight3D Color="{Binding DirectionalLightColor1}" Direction="-1,-1,-1"/>
    <hx:DirectionalLight3D Color="{Binding DirectionalLightColor2}" Direction="1,-1,-0.1"/>
    <hx:DirectionalLight3D Color="{Binding DirectionalLightColor3}" Direction="0.1,1,-1"/>
    <hx:DirectionalLight3D Color="{Binding DirectionalLightColor4}" Direction="0.1,0.1,1"/>
    <hx:ItemsModel3D x:Name="itemsModel3d" ItemTemplate="{StaticResource Template1}" ItemsSource="{Binding Items}"/>
</hx:Viewport3DX>

我不确定你所说的 "back materials" 是什么意思。

SharpDX 支持你想要的任何东西,因为它只是 DirectX 的包装器,这个问题可能与 helix 有关,但我真的不知道,因为 helix 是一个基于 sharpDX 的框架,我我只是使用 sharpDX 构建我自己的框架。

您永远不会绘制网格的背面,因为无论如何您都看不到它,所以为什么还要发送绘图呢?

它几乎看起来像是在光线上有某种衰减,但因为它是一种没有用的定向光。

有时在 max 中我必须翻转法线以便在游戏中绘制正确的东西或者我在使用 assimp 导入网格时更改缠绕顺序。