Renderowanie sceny do mapy kostki z sześcioma ścianami

Wstęp

Witamy w tym przewodniku krok po kroku dotyczącym renderowania sceny do mapy sześcianu z sześcioma ścianami przy użyciu Aspose.3D dla .NET. W tym samouczku przeprowadzimy Cię przez proces tworzenia wspaniałej mapy sześcianu poprzez renderowanie sceny 3D. Aspose.3D to potężny interfejs API .NET, który upraszcza manipulację grafiką 3D, a dzięki temu przewodnikowi wykorzystasz jego możliwości do tworzenia wciągających map sześcianów.

Warunki wstępne

Zanim przejdziemy do samouczka, upewnij się, że spełniasz następujące wymagania wstępne:

  • Praktyczna znajomość programowania w C# i .NET.
  • Zainstalowany Aspose.3D dla .NET. Możesz go pobrać Tutaj .
  • Plik sceny 3D w formacie GLB (np. „VirtualCity.glb”) do renderowania.

Importuj przestrzenie nazw

Zacznij od zaimportowania niezbędnych przestrzeni nazw dla Aspose.3D do swojego kodu C#:

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Render;
using Aspose.ThreeD.Utilities;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;

Krok 1: Załaduj scenę

Załaduj plik sceny 3D, używając następującego kodu:

Scene scene = new Scene(RunExamples.GetDataFilePath("VirtualCity.glb"));

Krok 2: Utwórz kamerę i światła

Utwórz kamerę i dwa światła, aby oświetlić scenę:

Camera cam = new Camera(ProjectionType.Perspective)
{
    NearPlane = 0.1,
    FarPlane = 200,
    RotationMode = RotationMode.FixedDirection
};
scene.RootNode.CreateChildNode(cam).Transform.Translation = new Vector3(5, 6, 0);
scene.RootNode.CreateChildNode(new Light() { LightType = LightType.Point }).Transform.Translation = new Vector3(-10, 7, -10);
scene.RootNode.CreateChildNode(new Light()
{
    Color = new Vector3(Color.CadetBlue)
}).Transform.Translation = new Vector3(49, 0, 49);

Krok 3: Utwórz moduł renderujący i cel renderowania

Utwórz moduł renderujący i cel renderowania mapy kostki z teksturą głębi:

using (var renderer = Renderer.CreateRenderer())
{
    IRenderTexture rt = renderer.RenderFactory.CreateCubeRenderTexture(new RenderParameters(false), 512, 512);
    rt.CreateViewport(cam, RelativeRectangle.FromScale(0, 0, 1, 1));
    renderer.Render(rt);
    ITextureCubemap cubemap = rt.Targets[0] as ITextureCubemap;

Krok 4: Zapisz twarze Cubemap

Zapisz każdą ścianę sześcianu na dysku z określonymi nazwami plików:

CubeFaceData<string> fileNames = new CubeFaceData<string>()
{
    Right = "Your Output Directory" + "right.png",
    Left = "Your Output Directory" + "left.png",
    Back = "Your Output Directory" + "back.png",
    Front = "Your Output Directory" + "front.png",
    Bottom = "Your Output Directory" + "bottom.png",
    Top = "Your Output Directory" + "top.png"
};
cubemap.Save(fileNames, ImageFormat.Png);

Wniosek

Gratulacje! Pomyślnie wyrenderowałeś scenę 3D do mapy sześcianu przy użyciu Aspose.3D dla .NET. Odkryj dalsze opcje dostosowywania i ulepszaj swoje projekty grafiki 3D dzięki temu potężnemu interfejsowi API.

Często Zadawane Pytania

P: Czy mogę używać Aspose.3D dla .NET z innymi formatami plików 3D?

Tak, Aspose.3D obsługuje różne formaty plików 3D, zapewniając elastyczność w Twoich projektach.

P: Jak mogę uzyskać wsparcie dla Aspose.3D?

Odwiedzić Forum Aspose.3D za wsparcie społeczności i dyskusje.

P: Czy dostępny jest bezpłatny okres próbny?

Tak, możesz uzyskać dostęp do bezpłatnego okresu próbnego Tutaj .

P: Czy mogę renderować sceny z animacjami przy użyciu Aspose.3D?

Absolutnie! Aspose.3D obsługuje renderowanie animowanych scen 3D.

P: Gdzie mogę znaleźć szczegółową dokumentację?

Patrz Dokumentacja Aspose.3D w celu uzyskania szczegółowych informacji.