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?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
.
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)
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.