Uma cena 3D simples é uma representação gráfica tridimensional de dados geométricos. Neste artigo, aprenderemos como criar uma cena 3D usando C# do zero sem precisar instalar nenhum software de modelagem ou renderização 3D. Salvaremos a cena 3D no formato de arquivo FBX, um formato de arquivo 3D popular usado para trocar formatos 3D. O FBX pode ser salvo em um disco como um arquivo de dados binário ou ASCII.
Os seguintes tópicos serão abordados neste artigo:
- API C# para criar cena 3D - download gratuito
- Criar uma cena 3D simples em C#
- Leia a cena 3D usando C#
API C# para criar cena 3D - Download grátis
Para criar e ler uma cena 3D, usaremos a API Aspose.3D for .NET. Ele permite criar e salvar uma cena 3D nos formatos suportados. Ele também permite trabalhar com geometria e hierarquia de cena, animar objetos em uma cena e conversão de formatos de arquivo 3D.
A API fornece a classe Scene que é um objeto de nível superior que contém os nós, geometrias, materiais, texturas, animação, poses, sub-cenas, etc. O método CreateChildNode(Entity) cria um novo nó filho com uma determinada entidade anexada. A API fornece o modelo de sombreamento para LambertMaterial, PhongMaterial e ShaderMaterial. A luz ilumina a cena, a classe Light da API permite a adição de alguma luz à cena.
Por favor, faça o download da DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.3D
Crie uma cena 3D simples em C#
Podemos criar uma cena 3D simples seguindo os passos abaixo:
- Crie uma instância da classe Scene.
- Chame o método CreateChildNode() para adicionar alguma geometria, uma forma para mostrar na tela, por exemplo, Cilindro.
- Defina as propriedades do nó filho, como Material.
- Inicialize um objeto da classe Light.
- Chame o método CreateChildNode() para adicionar a entidade Light.
- Finalmente, salve a cena como FBX usando o método Save(). Ele usa o caminho do arquivo de saída e FileFormat.FBX7500ASCII como argumentos.
O exemplo de código a seguir mostra como criar uma cena 3D simples usando C#.
// Este exemplo de código demonstra como criar uma cena 3D simples no arquivo FBX.
// Inicialize a cena 3D
var scene = new Scene();
// Inicializar o objeto Cilindro
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";
// Crie um nó filho e adicione o objeto Cylinder
var node = scene.RootNode.CreateChildNode(cylinder);
// Definir as propriedades do nó filho
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;
// Adicionar entidade Light
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);
// Caminho do arquivo de saída
var output = @"C:\Files\3D\document.fbx";
// Salvar documento de cena 3D
scene.Save(output, FileFormat.FBX7500ASCII);
Ler cena 3D usando C#
Podemos ler uma cena 3D do documento FBX seguindo os passos abaixo:
- Crie uma instância da classe Scene.
- Carregue um documento 3D existente usando o método Open().
- Percorrer as propriedades ChildNodes
- Por fim, exiba os valores das propriedades.
O exemplo de código a seguir mostra como carregar e ler uma cena 3D usando C#.
// Este exemplo de código demonstra como ler uma cena 3D do arquivo FBX
// Inicializar um objeto da classe Scene
Scene scene = new Scene();
// Carregar um documento 3D existente
scene.Open(@"C:\Files\3D\document.fbx");
foreach(var node in scene.RootNode.ChildNodes)
{
var entity = node.Entity;
Console.WriteLine("{0}", entity.Name);
if (node.Material != null)
{
Material material = node.Material;
Console.WriteLine("{0}", material.Name);
PropertyCollection props = material.Properties;
//Listar todas as propriedades usando foreach
foreach (var prop in props)
{
Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
}
//ou usando ordinal for loop
for (int i = 0; i < props.Count; i++)
{
var prop = props[i];
Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
}
}
}
Obtenha Licença Temporária Gratuita
Você pode obter uma licença temporária gratuita para experimentar o Aspose.3D para .NET sem limitações de avaliação.
Conclusão
Neste artigo, aprendemos como:
- criar uma cena 3D programaticamente;
- adicionar objetos/entidades à cena 3D como Cilindro, material, luz, etc.;
- leia as notas e propriedades filhas da cena 3D em C#.
Além disso, você pode aprender mais sobre Aspose.3D para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no nosso fórum.