2016-01-17 4 views
1

J'essaie de créer un visualisateur de fichiers obj en utilisant Helix Toolkit() avec SharpDX. Jusqu'à présent, je suis capable de charger un fichier objet et de rendre son contenu à Helix Viewport3DX. Le modèle a l'air bien avec certains fichiers obj mais pour d'autres il y a un problème de foudre et les surfaces arrières sont toujours noires. Je ne suis pas sûr de ce que je fais mal. Ce problème de lumière est-il dû au fait que SharpDX ne prend pas en charge les matériaux de dos? S'il vous plaît aider.Les lumières ne fonctionnent pas correctement dans Helix Sharp DX

Problème d'utilisation Helix de Sharp DX: enter image description here

Modèle original dans Adobe DC lecteur ressemble à ceci: enter image description here

paramètres Viewport3DX sont:

<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> 
+0

Des indices sur ce qui ne va pas dans le modèle ci-dessus? Merci. – amit

+0

Peut-il s'agir des problèmes avec les Shaders? – amit

Répondre

1

Je ne suis pas sûr de ce que u signifie avec "matériaux de retour". SharpDX supporte tout ce que vous voulez car c'est juste un wrapper autour de DirectX, le problème pourrait avoir quelque chose à voir avec helix mais encore une fois je ne sais pas parce que l'hélice est un framework basé sur sharpDX et I ' J'utilise juste sharpDX pour construire mon propre framework.

Vous ne dessinez jamais la face arrière d'un maillage car vous ne pouvez pas le voir de toute façon, alors pourquoi envoyer un dessin? Il semble presque qu'il y ait une sorte de coupure sur la lumière, mais parce que c'est une lumière directionnelle qui ne serait d'aucune utilité.

Parfois, dans max, je dois retourner la normale pour que les choses se dessinent bien dans le jeu ou que je change l'ordre de virage lorsque j'importe le maillage avec assimp.