Z łatwością renderuj panoramy 3D za pomocą Aspose.3D dla .NET

Wstęp

Tworzenie urzekających scen 3D i renderowanie ich w widokach panoramicznych stało się istotnym aspektem nowoczesnych aplikacji. Aspose.3D dla .NET zapewnia solidne rozwiązanie dla programistów, którzy chcą bezproblemowo zintegrować możliwości renderowania 3D ze swoimi projektami. W tym samouczku omówimy proces renderowania widoku panoramicznego sceny 3D przy użyciu Aspose.3D dla .NET.

Warunki wstępne

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

  • Aspose.3D dla .NET: Pobierz i zainstaluj bibliotekę Aspose.3D. Możesz znaleźć bibliotekę i dokumentację Tutaj .
  • Środowisko programistyczne .NET: Upewnij się, że na komputerze jest skonfigurowane działające środowisko programistyczne .NET.
  • Przykładowa scena 3D: Pobierz przykładowy plik sceny 3D, na przykład „VirtualCity.glb”, którego użyjemy do renderowania widoku panoramicznego.

Importuj przestrzenie nazw

W projekcie .NET zaimportuj przestrzenie nazw niezbędne do pracy z Aspose.3D:

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ę 3D

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

Załaduj scenę 3D za pomocą Aspose.3D. Zastąp plik „VirtualCity.glb” ścieżką do żądanego pliku sceny 3D.

Krok 2: Skonfiguruj kamerę i światła

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

Skonfiguruj kamerę i oświetlenie, aby odpowiednio uchwycić scenę 3D.

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

using (var renderer = Renderer.CreateRenderer())
{
    IRenderTexture rt = renderer.RenderFactory.CreateCubeRenderTexture(new RenderParameters(false), 512, 512);
    IRenderTexture final = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(false, 32, 0, 0), 1024 * 3, 1024);

Utwórz moduł renderujący i zdefiniuj cele renderowania dla mapy sześcianu i końcowego obrazu panoramicznego.

Krok 4: Skonfiguruj rzutnię i renderowanie

rt.CreateViewport(cam, RelativeRectangle.FromScale(0, 0, 1, 1));
renderer.Render(rt);

Skonfiguruj rzutnię za pomocą kamery i wyrenderuj mapę kostki.

Krok 5: Zastosuj przetwarzanie końcowe dla widoku panoramicznego

PostProcessing equirectangular = renderer.GetPostProcessing("equirectangular");
equirectangular.Input = rt.Targets[0];
renderer.Execute(equirectangular, final);

Zastosuj obróbkę końcową projekcji równoprostokątnej, aby wygenerować widok panoramiczny.

Krok 6: Zapisz wyrenderowaną panoramę

((ITexture2D)final.Targets[0]).Save("Your Output Directory" + "panorama.png", ImageFormat.Png);

Zapisz wyrenderowany obraz panoramiczny w określonym katalogu wyjściowym.

Wniosek

Dzięki Aspose.3D dla .NET renderowanie widoku panoramicznego sceny 3D staje się prostym procesem. Ulepsz swoje aplikacje, płynnie włączając wciągające wizualizacje 3D.

Często Zadawane Pytania

P: Czy mogę używać mojej niestandardowej sceny 3D do renderowania panoram?

Tak, wystarczy zastąpić ścieżkę pliku przykładowej sceny ścieżką do niestandardowej sceny 3D.

P: Czy dostępne są dodatkowe efekty przetwarzania końcowego?

Aspose.3D dla .NET zapewnia różne efekty przetwarzania końcowego w celu ulepszenia renderowanych obrazów.

P: Jak mogę zoptymalizować wydajność renderowania?

Dostosuj parametry renderowania i wymiary docelowe w oparciu o wymagania aplikacji.

P: Czy mogę zintegrować ten samouczek z aplikacją internetową?

Tak, włączając Aspose.3D for .NET do swojego projektu internetowego .NET.

P: Czy istnieje forum społecznościowe dotyczące obsługi Aspose.3D?

Tak, odwiedź Forum Aspose.3D za wsparcie społeczności.