Použití vizuálních efektů ve 3D výřezech

Úvod

Vylepšení vizuální přitažlivosti 3D scén je zásadním aspektem vytváření pohlcujících zážitků. Aspose.3D for .NET poskytuje výkonnou sadu nástrojů pro aplikaci vizuálních efektů na 3D výřezy. V tomto tutoriálu si projdeme procesem aplikace různých efektů na 3D scénu, včetně pixelace, stupňů šedi, detekce hran a rozostření.

Předpoklady

Než se pustíte do výukového programu, ujistěte se, že máte následující:

  • Pracovní znalost vývoje C# a .NET.
  • Nainstalovaná knihovna Aspose.3D for .NET. Můžete si jej stáhnout z tady .
  • Soubor 3D scény (např. “scene.obj”) pro experimentování.

Importovat jmenné prostory

Chcete-li začít, importujte potřebné jmenné prostory pro Aspose.3D a další závislosti. Přidejte do kódu následující řádky:

using System;
using System.IO;
using System.Collections;
using Aspose.ThreeD;
using System.Drawing;
using System.Drawing.Imaging;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Render;
using Aspose.ThreeD.Utilities;

Krok 1: Načtěte existující 3D scénu

Scene scene = new Scene(RunExamples.GetDataFilePath("scene.obj"));

Načtěte svou 3D scénu pomocíScene třída.

Krok 2: Vytvořte kameru

Camera camera = new Camera();
scene.RootNode.CreateChildNode("camera", camera).Transform.Translation = new Vector3(2, 44, 66);
camera.LookAt = new Vector3(50, 12, 0);

Vytvořte instanci kamery a nastavte její polohu a cíl.

Krok 3: Přidejte světlo do scény

scene.RootNode.CreateChildNode("light", new Light() { Color = new Vector3(Color.White), LightType = LightType.Point }).Transform.Translation = new Vector3(26, 57, 43);

Zaveďte osvětlení pro zvýšení vizuálních efektů.

Krok 4: Vytvořte Renderer a Render Target

using (var renderer = Renderer.CreateRenderer())
{
    // Nakonfigurujte nastavení rendereru
    renderer.EnableShadows = false;

    // Vytvořte cíl vykreslení
    using (IRenderTexture rt = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(), 1, 1024, 1024))
    {
        // Nakonfigurujte výřez
        Viewport vp = rt.CreateViewport(camera, new RelativeRectangle() { ScaleWidth = 1, ScaleHeight = 1 });

        // Vykreslete scénu do textury
        renderer.Render(rt);

        // Uložte vykreslenou texturu do souboru
        ((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "Original_viewport_out.png", ImageFormat.Png);

        // Pokračujte s efekty následného zpracování...
    }
}

Vytvořte vykreslovací modul a cíl vykreslení pro zachycení scény.

Krok 5: Aplikujte efekty následného zpracování

Krok 5.1 Efekt pixelace

// Vytvořte efekt pixelace
PostProcessing pixelation = renderer.GetPostProcessing("pixelation");
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_pixelation_out.png", ImageFormat.Png);

Použijte efekt pixelace a uložte výsledek.

Krok 5.2 Efekt stupňů šedi

// Vytvořte efekt ve stupních šedi
PostProcessing grayscale = renderer.GetPostProcessing("grayscale");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_grayscale_out.png", ImageFormat.Png);

Použijte efekt ve stupních šedi a uložte výsledek.

Krok 5.3 Kombinovat efekty

// Kombinujte efekty ve stupních šedi a pixelace
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_grayscale+pixelation_out.png", ImageFormat.Png);

Kombinujte více efektů pro jedinečné výsledky.

Krok 5.4 Efekt detekce hran

// Vytvořte efekt detekce hran
PostProcessing edgedetection = renderer.GetPostProcessing("edge-detection");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(edgedetection);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_edgedetection_out.png", ImageFormat.Png);

Použijte efekt detekce hran a uložte výsledek.

Krok 5.5 Efekt rozostření

// Vytvořte efekt rozostření
PostProcessing blur = renderer.GetPostProcessing("blur");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(blur);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_blur_out.png", ImageFormat.Png);

Použijte efekt rozostření a uložte výsledek.

Závěr

Experimentování s vizuálními efekty ve 3D výřezech dodává vašim scénám hloubku a kreativitu. Aspose.3D for .NET tento proces zjednodušuje a nabízí řadu efektů následného zpracování pro povýšení vašich projektů.

FAQ

Q1: Mohu použít více efektů současně?

Odpověď 1: Ano, můžete kombinovat různé efekty následného zpracování pro jedinečné a komplexní výsledky.

Q2: Jak mohu upravit intenzitu vizuálních efektů?

A2: Každý efekt může mít parametry, které můžete vyladit, abyste řídili jeho intenzitu. Konkrétní podrobnosti naleznete v dokumentaci.

Q3: Je Aspose.3D vhodný pro vývoj her?

A3: Zatímco Aspose.3D je primárně navržen pro 3D modelování a vykreslování, lze jej použít v určitých aspektech vývoje her.

Q4: Jsou k dispozici další efekty následného zpracování?

A4: Aspose.3D poskytuje řadu vestavěných efektů následného zpracování a pomocí knihovny můžete vytvářet vlastní efekty.

Q5: Mohu použít Aspose.3D pro komerční projekty?

A5: Ano, můžete použít Aspose.3D pro komerční účely. Odkazovat na nákupní stránku pro podrobnosti o licencích.