Como Renderizar Cenas 3D para Imagens em .NET

Como Renderizar Cenas 3D para Imagens em .NET

Como Renderizar Cenas 3D em Imagens no .NET

Este artigo explica como produzir uma imagem raster a partir de uma cena 3D usando Aspose.3D para .NET. A configuração mínima requer um Camera, pelo menos um Light e uma chamada a Scene.Render.


Passo 1 — Instalar o Pacote

dotnet add package Aspose.3D.FOSS

Passo 2 — Carregar ou Construir uma Cena

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;

// Load an existing model
var scene = Scene.FromFile("model.fbx");

// Or build a scene in code
var scene = new Scene();
scene.RootNode.CreateChildNode("box", new Box(1, 1, 1));

Passo 3 — Adicionar uma Câmera

using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;

var camera = new Camera(ProjectionType.Perspective);
camera.FieldOfViewY = 45.0;
camera.NearPlane = 0.1;
camera.FarPlane = 500.0;

Node camNode = scene.RootNode.CreateChildNode("camera", camera);
camNode.Transform.Translation = new Vector3(0, 5, 10);
camNode.Transform.EulerAngles = new Vector3(-30, 0, 0); // tilt down toward origin

Passo 4 — Adicionar Luzes

var sun = new Light("sun") { LightType = LightType.Directional };
Node sunNode = scene.RootNode.CreateChildNode("sun", sun);
sunNode.Transform.EulerAngles = new Vector3(45, -30, 0);

var fill = new Light("fill") { LightType = LightType.Point, Intensity = 100 };
Node fillNode = scene.RootNode.CreateChildNode("fill", fill);
fillNode.Transform.Translation = new Vector3(-4, 6, 4);

Etapa 5 — Renderizar para um Arquivo de Imagem

using Aspose.ThreeD.Utilities;

// size is Vector2; format is a string ("png", "jpg", "bmp")
scene.Render(camera, "output.png", new Vector2(1280, 720), "png");

Console.WriteLine("Rendered: output.png");

Dica: JPEG produz arquivos menores para capturas de tela. Use "jpg" em vez de "png" quando a qualidade sem perdas não é necessária.


Troubleshooting

SymptomCausa ProvávelCorreção
Imagem de saída pretaNenhuma luz na cenaAdicione ao menos um nó Light
Objeto não visívelCâmera apontando na direção erradaVerifique as coordenadas do alvo LookAt
A cena renderiza vaziaGeometria não anexada a um nóChame CreateChildNode(name, entity)

Recursos Relacionados

Ver também

 Português