Tillämpa Fisheye Lens Effect med Aspose.3D för .NET

Introduktion

Är du ute efter att förbättra den visuella dragningen av dina 3D-scener? Dyk in i den fascinerande världen av fisheye-linseffekter med Aspose.3D för .NET. Denna handledning guidar dig steg för steg om hur du applicerar en fisheye-linseffekt på dina 3D-scener, vilket ger dem ett unikt och fängslande perspektiv.

Förutsättningar

Innan vi börjar, se till att du har följande förutsättningar på plats:

  • Aspose.3D för .NET: Se till att du har Aspose.3D-biblioteket för .NET installerat. Om inte kan du ladda ner den här .
  • Exempel på 3D-scen: Vi kommer att arbeta med ett exempel på en 3D-scenfil (VirtualCity.glb). Du kan använda din egen scen eller ladda ner provet från Aspose.3D-dokumentation .

Importera namnområden

I ditt .NET-projekt, inkludera de nödvändiga namnområdena för att komma åt Aspose.3D-funktionerna. Lägg till följande namnrymder i början av din kod:

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;

Steg 1: Ladda 3D-scenen

Ladda 3D-scenfilen i ditt projekt med följande kod:

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

Steg 2: Konfigurera kamera och lampor

Skapa en kamera och ljus för att förbättra de visuella aspekterna av din scen. Justera parametrar som NearPlane, FarPlane och RotationMode efter behov:

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

Steg 3: Skapa renderare och rendera mål

Ställ in renderaren och skapa renderingsmål för kubkarta och 2D-textur:

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, 1024);
    rt.CreateViewport(cam, RelativeRectangle.FromScale(0, 0, 1, 1));
    renderer.Render(rt);

Steg 4: Applicera Fisheye Lens Effect

Utför efterbearbetningen av fisheye-linseffekten på den renderade kubkartan:

PostProcessing fisheye = renderer.GetPostProcessing("fisheye");
fisheye.FindProperty("fov").Value = 360.0;
fisheye.Input = rt.Targets[0];
renderer.Execute(fisheye, final);
((ITexture2D)final.Targets[0]).Save("Your Output Directory" + "fisheye.png", ImageFormat.Png);

Slutsats

Grattis! Du har framgångsrikt tillämpat en fisheye-linseffekt på din 3D-scen med Aspose.3D för .NET. Experimentera med olika scener och parametrar för att släppa loss din kreativitet.

Vanliga frågor

Kan jag använda fisheye-effekten på vilken 3D-scen som helst?

Ja, du kan använda fisheye-effekten på vilken 3D-scen som helst. Se till att scenen är korrekt laddad och upplyst för optimala resultat.

Vad är betydelsen av att justera synfältet (fov) till 360 grader?

Ett synfält på 360 grader säkerställer en fullständig sfärisk projektion, vilket skapar en fantastisk fisheye-effekt.

Hur kan jag anpassa belysningen i min 3D-scen?

Du kan justera lampornas egenskaper, såsom position, typ och färg, för att uppnå önskade ljuseffekter.

Finns det en gräns för storleken på 3D-scenen som kan bearbetas?

Storleken på 3D-scenen begränsas främst av systemresurser. Se till att din hårdvara kan hantera storleken på din scen.

Kan jag använda ett annat utdataformat istället för PNG för fisheye-effektresultatet?

Ja, du kan ändra koden för att spara utdata i olika bildformat baserat på dina krav.