Biblioteca gráfica 3D C#/. NET para criar cubos coloridos

Preciso de ser capaz de fazer o seguinte:

  • mostrar uma série de cubos coloridos no ecrã
  • ajustar a transparência de cada cubo com base num valor de intensidade
  • ajustar/pan/zoom / navegar na vista

Eu gostaria de usar uma biblioteca que tem a curva de aprendizagem mais rasa para criar tal aplicação, idealmente algo que é fácil de usar no mundo C#/. NET.

Olhei para o DirectX e alguns dos seus invólucros de rede, tais como SharpDX e SlimDX.

mas pergunto-me se um motor de jogo, como MonoGame, seria mais fácil de usar para requisitos tão simples?

Alguma sugestão?

 0
Author: digital_fate, 2016-11-18

3 answers

Podes usar o FSM para estas coisas. O quão difícil é depende do que seus modelos 3d são, mas se você só precisa de cubos, isso não deve ser um grande problema.
Assinale esta ligação por exemplo - https://stuff.seans.com/2008/08/13/drawing-a-cube-in-wpf/

O código é bastante auto-explicativo, mas basicamente você tem {[[0]} que é a cena completa e, em seguida, lá você definiu a câmera (o que a câmera "vê" é o que será exibido) e alguns objetos ModelVisual3D. O primeiro. contém luz (sem ela, cubo seria completamente preto) e o segundo é o seu cubo.
Cubo é definido por malha e material. Mash tem vértices (Positions propriedade) e triângulos. As posições são pontos definidos por coordenadas e os triângulos são trigémeos de pontos acima mencionados. Você pode fazer outras formas 3D desta forma, não apenas cubos. Agora, na forma mais simples, a única coisa que você precisa se preocupar é a propriedade. Mudando números lá você pode mudar o tamanho e posição do cubo.
Para adicionar mais cubos, você precisará de mais objetos ModelVisual3D.

Uma vez que você se familiarize alterando manualmente esses valores, não deve haver problema em programaticamente fazer o que quiser.
 1
Author: Shadowed, 2016-11-18 14:07:02

O OpenTK permite as chamadas do OpenGL numa linguagem. net. Está bastante bem estabelecido e presta-se a portar-se para Mono, etc. Ele também permite que você tenha (relativamente) controle de baixo nível da renderização.

Alternativamente, se você só quer o Controle c# de renderização, que tal Unidade {[3] } que irá abstrair a maioria dos detalhes para você e apenas deixá-lo concentrar-se no código (também portátil para diferentes SO's)

 1
Author: elaverick, 2016-11-18 14:28:43
Eu gostaria de usar uma biblioteca que tem a curva de aprendizagem mais baixa para criar tal aplicação, idealmente algo que é fácil de usar no mundo C#/. NET.

Baseado no acima eu iria para o MonoGame que implementa a API Microsoft XNA 4 e deve ser muito fácil de pegar e ir. Ele foi projetado especificamente para o framework. NET e como tal deve ser fácil de pegar para alguém que já programas em. NET e sabe um pouco sobre grafico. Ir para uma abordagem de nível mais baixo, como OpenGL ou DirectX é provável que leve mais tempo e esforço para não mencionar uma curva de aprendizagem mais íngreme.

 1
Author: T_Bacon, 2016-11-18 14:45:21