Cómo renderizar escenas 3D a imágenes en .NET

Cómo renderizar escenas 3D a imágenes en .NET

Cómo renderizar escenas 3D a imágenes en .NET

Este artículo explica cómo producir una imagen rasterizada a partir de una escena 3D usando Aspose.3D para .NET. La configuración mínima requiere un Camera, al menos un Light, y una llamada a Scene.Render.


Paso 1 — Instalar el paquete

dotnet add package Aspose.3D.FOSS

Paso 2 — Cargar o crear una escena

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));

Paso 3 — Añadir una cámara

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

Paso 4 — Añadir luces

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);

Paso 5 — Renderizar a un archivo de imagen

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");

Consejo: JPEG produce archivos más pequeños para capturas de pantalla. Use "jpg" en lugar de "png" cuando no se requiere calidad sin pérdida.


Troubleshooting

SymptomCausa probableSolución
Imagen de salida negraNo hay luces en la escenaAgrega al menos un nodo Light
Objeto no visibleLa cámara apunta en la dirección equivocadaVerifica las coordenadas objetivo de LookAt
La escena se renderiza vacíaLa geometría no está adjunta a un nodoLlama a CreateChildNode(name, entity)

Recursos relacionados

Ver también

 Español