{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Rendering","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/rendering\/","description":"Recent content in Rendering on Documentation","generator":"Hugo -- gohugo.io","language":"sv","item":[{"title":"Python-Net: Kasta och ta emot skuggor p\u00e5 3D Geometrier","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/cast-and-receive-shadows-on-3d-geometries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/cast-and-receive-shadows-on-3d-geometries\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nGenerellt kan vissa 3D filformat lagra skuggrelaterade inst\u00e4llningar i geometri som FBX. Med <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a> kan utvecklare g\u00f6ra en bild genom att kartl\u00e4gga skuggor fr\u00e5n en ljusk\u00e4llas synpunkt. Bildkvaliteten beror p\u00e5 ljusk\u00e4llan, h\u00f6jdvinkeln och avst\u00e5ndet mellan kameran och geometriska objekt.\n<\/div>\n\n<h2 id=\"kasta-och-ta-emot-skugga\"><strong>Kasta och ta emot skugga<\/strong><\/h2>\n<p>Som standard kastar alla objekt i scenen skuggor fr\u00e5n en ljusk\u00e4lla. Utvecklare kan ocks\u00e5 ta emot skuggor per objekt base i objektytan. Detta kodexempel avsl\u00f6jar hur ljus- och kameraobjekt ska st\u00e4llas in. Den skapar ocks\u00e5 ett plan och placerar tre objekt med olika f\u00e4rger och skugginst\u00e4llningar.<\/p>\n<p>Alla geometrier har <code>cast_shadows = True<\/code> och <code>receive_shadows = True<\/code>, skuggorna av r\u00f6d ruta och torus kastade till planet, Den r\u00f6da l\u00e5dan tar inte emot skuggor och bl\u00e5 l\u00e5dan kastar inte skuggor.<\/p>\n<h3 id=\"programmeringsprova\"><strong>Programmeringsprova<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet kastar och tar emot skuggor p\u00e5 3D geometries.<\/p>\n<script type=\"application\/javascript\" src=\"https:\/\/gist.github.com\/aspose-3d-gists\/cfde9f76113134443c76608c1d19453a.js?file=Rendering-CastAndReceiveShadow-CastAndReceiveShadow.py\"><\/script>\n\n<p><strong>Redigeringsresultat<\/strong><\/p>\n<p><img src=\"cast-and-receive-shadows-on-3d-geometries_1.png\" alt=\"todo:image_alt_text\"><\/p>\n\n      "},{"title":"Python-Net: Skapa en objektiveffekt p\u00e5 3D och spara i en bild","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/create-a-fisheye-lens-effect-on-3d-scene-and-save-in-an-image\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/create-a-fisheye-lens-effect-on-3d-scene-and-save-in-an-image\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nGenom att anv\u00e4nda <a href=\"https:#products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET API<\/a> kan utvecklare skapa en Fisheye-linseffekt p\u00e5 3D-scenen och spara den vyn i de bildformat som st\u00f6ds.\n<\/div>\n\n<h2 id=\"skapa-en-fisheye-linseffekt\"><strong>Skapa en Fisheye-linseffekt<\/strong><\/h2>\n<p>I den h\u00e4r artikeln skapar vi en kamera och tv\u00e5 Ljus objekt f\u00f6r att f\u00e5nga scenen, ocks\u00e5 skapa en rendering m\u00e5l, skapa en visningsplats och utf\u00f6r Fisheye projektion efter bearbetning med kubenkartan som inmatning och slutligen spara texten Fisheye. - Ja, jag vet inte. <code>execute<\/code>-metoden f\u00f6r <code>Renderer<\/code>-klassen g\u00f6r det m\u00f6jligt att k\u00f6ra efterbehandlingseffekten och spara resultatet f\u00f6r att visa m\u00e5let.<\/p>\n<h3 id=\"programmeringsprova\"><strong>Programmeringsprova<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet skapar en Fisheye linseffekt p\u00e5 3D-scenen och sparar i bildformatet.<\/p>\n<p><strong>Python<\/strong><\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-py\" data-lang=\"py\">\n<span class=\"kn\">import<\/span> <span class=\"nn\">aspose.threed<\/span> <span class=\"kn\">as<\/span> <span class=\"nn\">a3d<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Color<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing.imaging<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ImageFormat<\/span>\n\n<span class=\"c1\">#load the scene<\/span>\n\n<span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">Scene<\/span><span class=\"o\">.<\/span><span class=\"n\">from_file<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;test.glb&#34;<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">#create a camera for capturing the cube map<\/span>\n\n<span class=\"n\">cam<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Camera<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">ProjectionType<\/span><span class=\"o\">.<\/span><span class=\"n\">PERSPECTIVE<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">near_plane<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.1<\/span>\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">far_plane<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">200<\/span>\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">rotation_mode<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">RotationMode<\/span><span class=\"o\">.<\/span><span class=\"n\">FIXED_DIRECTION<\/span>\n\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">cam<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span>\n\n\n\n<span class=\"c1\">#create two lights to illuminate the scene<\/span>\n\n<span class=\"n\">light<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Light<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">light<\/span><span class=\"o\">.<\/span><span class=\"n\">light_type<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">LightType<\/span><span class=\"o\">.<\/span><span class=\"n\">POINT<\/span>\n\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">light<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">7<\/span><span class=\"p\">,<\/span> <span class=\"o\">-<\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"n\">light<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Light<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">light<\/span><span class=\"o\">.<\/span><span class=\"n\">color<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">utilities<\/span><span class=\"o\">.<\/span><span class=\"n\">Vector3<\/span><span class=\"p\">(<\/span><span class=\"n\">Color<\/span><span class=\"o\">.<\/span><span class=\"n\">cadet_blue<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">light<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"mi\">49<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">49<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"c1\">#create a renderer<\/span>\n\n<span class=\"k\">with<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">Renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">create_renderer<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"n\">renderer<\/span><span class=\"p\">:<\/span>\n\n    <span class=\"c1\">#Create a cube map render target with depth texture, depth is required when rendering a scene.<\/span>\n    <span class=\"n\">rt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">render_factory<\/span><span class=\"o\">.<\/span><span class=\"n\">create_cube_render_texture<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">RenderParameters<\/span><span class=\"p\">(<\/span><span class=\"bp\">False<\/span><span class=\"p\">),<\/span> <span class=\"mi\">512<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">#create a 2D texture render target with no depth texture used for image processing<\/span>\n    <span class=\"n\">final<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">rendere_factory<\/span><span class=\"o\">.<\/span><span class=\"n\">create_render_texture<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">RenderParameters<\/span><span class=\"p\">(<\/span><span class=\"bp\">False<\/span><span class=\"p\">,<\/span> <span class=\"mi\">32<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"mi\">1024<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1024<\/span><span class=\"p\">)<\/span>\n\n\n\n    <span class=\"c1\">#a viewport is required on the render target<\/span>\n    <span class=\"n\">rt<\/span><span class=\"o\">.<\/span><span class=\"n\">create_viewport<\/span><span class=\"p\">(<\/span><span class=\"n\">cam<\/span><span class=\"p\">,<\/span> <span class=\"n\">RelativeRectangle<\/span><span class=\"o\">.<\/span><span class=\"n\">from_scale<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\n\n    <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">rt<\/span><span class=\"p\">)<\/span>\n\n\n    <span class=\"c1\">#execute the fisheye projection post-processing with the previous rendered cube map as input<\/span>\n    <span class=\"c1\">#the fisheye can have field of view more than 180 degree, so a cube map with all direction is required.<\/span>\n\n    <span class=\"n\">fisheye<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">get_post_processing<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;fisheye&#34;<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\"># we can change the fov to 360 instead of the default value 180.<\/span>\n\n    <span class=\"n\">fisheye<\/span><span class=\"o\">.<\/span><span class=\"n\">find_property<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;fov&#34;<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Value<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">360.0<\/span>\n\n    <span class=\"c1\">#Specify the cube map rendered from the scene as this post processing&#39;s input<\/span>\n\n    <span class=\"n\">fisheye<\/span><span class=\"o\">.<\/span><span class=\"n\">input<\/span> <span class=\"o\">=<\/span> <span class=\"n\">rt<\/span><span class=\"o\">.<\/span><span class=\"n\">targets<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\n\n    <span class=\"c1\">#Execute the post processing effect and save the result to render target final<\/span>\n\n    <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">execute<\/span><span class=\"p\">(<\/span><span class=\"n\">fisheye<\/span><span class=\"p\">,<\/span> <span class=\"n\">final<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">#save the texture into disk<\/span>\n\n    <span class=\"n\">final<\/span><span class=\"o\">.<\/span><span class=\"n\">targets<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;fisheye.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">ImageFormat<\/span><span class=\"o\">.<\/span><span class=\"n\">PNG<\/span><span class=\"p\">)<\/span>\n\n\n<\/code><\/pre><\/div>\n      "},{"title":"Python-Net: H\u00e5rdvarubaserad hyllning av 3D Geometria","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/hardware-based-rendering-of-3d-geometry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/hardware-based-rendering-of-3d-geometry\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nGenom att anv\u00e4nda <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a> API, kan utvecklare programmera GPU (grafikbehandlingsenheten) och st\u00e4lla in grafik h\u00e5rdvara f\u00f6r att visa 3D geometri ist\u00e4llet f\u00f6r den fasta funktionspipelinen I den h\u00e4r artikeln fokuserar vi p\u00e5 h\u00e5rdvarabaserad rendering med <a href=\"https:\/\/www.opengl.org\/sdk\/docs\/man\/html\/glEnable.xhtml\">OpenGL 4. 0<\/a>, [DirectX 11](<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/hh404489\">https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/hh404489<\/a>(v=vs.85). aspx), [DirectX 9](<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb147327\">https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb147327<\/a>(v=vs.85). aspx) och <a href=\"https:\/\/www.khronos.org\/registry\/vulkan\/specs\/1.0\/xhtml\/vkspec.html#VkPipelineRasterizationStateCreateInfo\">Vulkan Ordf\u00f6rande<\/a>.\n<\/div>\n\n<h2 id=\"skapa-h\u00e5rdvara-och-renter-a-3d-geometria\"><strong>Skapa h\u00e5rdvara och renter a 3D Geometria<\/strong><\/h2>\n<p>F\u00f6r att visa en 3D- geometri kr\u00e4vs en skuggar, buffertar och renderingstillst\u00e5nd. Ingen av dem kan arbeta utan varandra.<\/p>\n<ul>\n<li><strong>Buffertar<\/strong>- Triangellistor \u00e4r enskilda trianglar som anges i ett matris som ibland kallas buffert. I en triangellista, varje triangel anges individuellt. Punkter i en triangel kan delas genom att anv\u00e4nda index f\u00f6r att minska m\u00e4ngden data som m\u00e5ste skickas till grafik maskinvaran.<\/li>\n<li><strong>Skuggar<\/strong>- Det definierar hur man omvandlar trianglar fr\u00e5n v\u00e4rldsutrymme till sk\u00e4rm och ber\u00e4knar den slutliga pixelf\u00e4rgen i GPU sidan<\/li>\n<li><strong>Render stater<\/strong>- Det ger parametrar f\u00f6r GPU att rasterisera trianglarna i pixlar.<\/li>\n<\/ul>\n\n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nVi har f\u00f6rberett ett demoprojekt. Se <a href=\"https:\/\/github.com\/aspose-3d\/Aspose.3D-for-.NET\/tree\/master\/HardwareBasedRendering\">Den h\u00e4r webbadressen f\u00f6r nedladdning<\/a>.\n<\/div>\n\n<p>OpenGL-skuggande spr\u00e5k (GLSL) \u00e4r det standardiserade spr\u00e5ket p\u00e5 h\u00f6g niv\u00e5 f\u00f6r OpenGL-grafiken API. Det finns tre skugga typer som vanligen anv\u00e4nds: Vertex Shaders, Fragment Shaders och Geometri Shaders.<\/p>\n<p><a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/glslsource\"><code>GLSLSource<\/code><\/a> klassen talar om f\u00f6r renderare, k\u00e4llkoden \u00e4r f\u00f6r OpenGL- skuggningsspr\u00e5k, den kan kompileras till <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/shaderprogram\"><code>ShaderProgram<\/code><\/a> klass. <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/shadervariable\"><code>ShaderVariable<\/code><\/a>-klassen definierar de variabler som anv\u00e4nds i skuggarn. Klassen <code>VariableSemantic<\/code> anv\u00e4nds f\u00f6r att identifiera skuggarvariablens semantiska, Aspose. 3D renderare f\u00f6rbereder automatiskt skuggarvariabelv\u00e4rden beror p\u00e5 semantiken.<\/p>\n<h3 id=\"programmeringsprov-f\u00f6r-skuggar\"><strong>Programmeringsprov f\u00f6r skuggar<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet initierar renderare och Shader f\u00f6r rutn\u00e4tet. Du kan ladda ner komplett arbetsprojekt med detta exempel fr\u00e5n <a href=\"https:\/\/github.com\/aspose-3d\/Aspose.3D-for-.NET\/tree\/master\/HardwareBasedRendering\">H\u00e4r<\/a>.<\/p>\n<script type=\"application\/javascript\" src=\"https:\/\/gist.github.com\/aspose-3d-gists\/cfde9f76113134443c76608c1d19453a.js?file=HardwareBasedRendering-Controls-RenderView-RenderView.py\"><\/script>\n\n<h3 id=\"programmeringsprov-f\u00f6r-buffert--och-rendertillst\u00e5nden\"><strong>Programmeringsprov f\u00f6r buffert- och rendertillst\u00e5nden<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet initierar bufferten och renderingstillst\u00e5ndet f\u00f6r rutn\u00e4tet.<\/p>\n<script type=\"application\/javascript\" src=\"https:\/\/gist.github.com\/aspose-3d-gists\/cfde9f76113134443c76608c1d19453a.js?file=HardwareBasedRendering-Grid-ManualEntity.py\"><\/script>\n\n\n      "},{"title":"Python-Net: Rendera 3D Visa i bildformat fr\u00e5n kameran","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/render-3d-view-in-image-format-from-camera\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/render-3d-view-in-image-format-from-camera\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nMed <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a> kan utvecklare visa en bild f\u00f6r att visa en realistisk bild av 3D-modell, med eller utan den f\u00f6rb\u00e4ttrade bakgrunden, texturer, skuggor och justera bildstorleken.\n<\/div>\n\n<h2 id=\"ta-en-bild-av-3d-modell-fr\u00e5n-kameran\"><strong>Ta en bild av 3D Modell fr\u00e5n kameran<\/strong><\/h2>\n<p>Metoden Render som exponeras av klassen <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed\/scene\"><code>Scene<\/code><\/a> kan anv\u00e4ndas f\u00f6r att ta en bild fr\u00e5n den aktiva kameran. Utvecklare kan ocks\u00e5 anv\u00e4nda flera olika s\u00e4tt att navigera och placera kameran i scenen. I detta kodexempel skapar vi en kamera i position (10,10,10) i en befintlig 3D-scen och titta p\u00e5 ursprungspunkten f\u00f6r rendering.<\/p>\n<h3 id=\"programmeringsprova\"><strong>Programmeringsprova<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet skapar en kamera i en 3D-scen, st\u00e4ller in m\u00e5let och visar en bild.<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Color<\/span><span class=\"p\">,<\/span> <span class=\"n\">Size<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing.imaging<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ImageFormat<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.threed<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ImageRenderOptions<\/span><span class=\"p\">,<\/span> <span class=\"n\">Scene<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.threed.entities<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Camera<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.threed.utilities<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Vector3<\/span>\n\n<span class=\"c1\">#  For complete examples and data files, please go to https:# github.com\/aspose-3d\/Aspose.3D-for-.NET<\/span>\n<span class=\"c1\">#  Load scene from file<\/span>\n<span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Scene<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;data-dir&#34;<\/span>  <span class=\"o\">+<\/span> <span class=\"s2\">&#34;camera.3ds&#34;<\/span><span class=\"p\">)<\/span>\n<span class=\"c1\">#  Create a camera at (10,10,10) and look at the origin point for rendering,<\/span>\n<span class=\"c1\">#  It must be attached to the scene before render<\/span>\n<span class=\"n\">camera<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Camera<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;camera&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">camera<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">camera<\/span><span class=\"o\">.<\/span><span class=\"n\">parent_node<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">translation<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Vector3<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">camera<\/span><span class=\"o\">.<\/span><span class=\"n\">look_at<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Vector3<\/span><span class=\"o\">.<\/span><span class=\"n\">ORIGIN<\/span>\n<span class=\"c1\">#  Specify the image render option<\/span>\n<span class=\"n\">opt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ImageRenderOptions<\/span><span class=\"p\">()<\/span>\n<span class=\"c1\">#  Set the background color<\/span>\n<span class=\"n\">opt<\/span><span class=\"o\">.<\/span><span class=\"n\">background_color<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Color<\/span><span class=\"o\">.<\/span><span class=\"n\">alice_blue<\/span>\n<span class=\"c1\">#  Tells renderer where the it can find textures<\/span>\n<span class=\"n\">opt<\/span><span class=\"o\">.<\/span><span class=\"n\">asset_directories<\/span><span class=\"o\">.<\/span><span class=\"n\">append<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;data-dir&#34;<\/span>  <span class=\"o\">+<\/span> <span class=\"s2\">&#34;textures&#34;<\/span><span class=\"p\">)<\/span>\n<span class=\"c1\">#  Turn on shadow<\/span>\n<span class=\"n\">opt<\/span><span class=\"o\">.<\/span><span class=\"n\">enable_shadows<\/span> <span class=\"o\">=<\/span> <span class=\"bp\">True<\/span>\n<span class=\"c1\">#  Render the scene in given camera&#39;s perspective into specified png file with size 1024x1024<\/span>\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">camera<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;out&#34;<\/span>  <span class=\"o\">+<\/span> <span class=\"s2\">&#34;Render3DModelImageFromCamera.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">Size<\/span><span class=\"p\">(<\/span><span class=\"mi\">1024<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1024<\/span><span class=\"p\">),<\/span> <span class=\"n\">ImageFormat<\/span><span class=\"o\">.<\/span><span class=\"n\">png<\/span><span class=\"p\">,<\/span> <span class=\"n\">opt<\/span><span class=\"p\">)<\/span><\/code><\/pre><\/div>\n\n      "},{"title":"Python-Net: G\u00f6r en panoramavy f\u00f6r 3D.","link":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/render-a-panorama-view-of-3d-scene\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/python-net\/render-a-panorama-view-of-3d-scene\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nMed <a href=\"https:#products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET API<\/a> kan utvecklare visa en panoramavy av 3D-scenen och spara den i de bildformat som st\u00f6ds.\n<\/div>\n\n<h2 id=\"skapa-en-panoramavy\"><strong>Skapa en panoramavy<\/strong><\/h2>\n<p>I den h\u00e4r artikeln skapar vi en kamera och tv\u00e5 Ljus objekt f\u00f6r att f\u00e5nga scenen, ocks\u00e5 skapa en rendering m\u00e5l, skapa en visningsport och k\u00f6r den ekvattangul\u00e4ra projektionen efterbehandling med kubenkartan som inmatning och slutligen spara Panen Orama konsistens. <code>execute<\/code>-metoden f\u00f6r <code>Renderer<\/code>-klassen g\u00f6r det m\u00f6jligt att k\u00f6ra efterbehandlingseffekten och spara resultatet f\u00f6r att visa m\u00e5let.<\/p>\n<h3 id=\"programmeringsprova\"><strong>Programmeringsprova<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet visar en panoramavy av 3D och spara i bildformatet.<\/p>\n<p><strong>Python<\/strong><\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-py\" data-lang=\"py\">\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing.imaging<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">ImageFormat<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">aspose.pydrawing<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Color<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">aspose.threed<\/span> <span class=\"kn\">as<\/span> <span class=\"nn\">a3d<\/span>\n\n<span class=\"c1\">#load the scene<\/span>\n\n<span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">.<\/span><span class=\"n\">from_file<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;vc.glb&#34;<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\">#create a camera for capturing the cube map<\/span>\n\n<span class=\"n\">cam<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Camera<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">ProjectionType<\/span><span class=\"o\">.<\/span><span class=\"n\">PERSPECTIVE<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">near_plane<\/span> <span class=\"o\">=<\/span> <span class=\"mf\">0.1<\/span>\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">far_plane<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">200<\/span>\n<span class=\"n\">cam<\/span><span class=\"o\">.<\/span><span class=\"n\">rotation_mode<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">RotationMode<\/span><span class=\"o\">.<\/span><span class=\"n\">FIXED_DIRECTION<\/span>\n\n\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">cam<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">6<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n\n\n\n<span class=\"c1\">#create two lights to illuminate the scene<\/span>\n\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Light<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">LightType<\/span><span class=\"o\">.<\/span><span class=\"n\">POINT<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"o\">-<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">7<\/span><span class=\"p\">,<\/span> <span class=\"o\">-<\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span>\n\n<span class=\"n\">light<\/span> <span class=\"o\">=<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">entities<\/span><span class=\"o\">.<\/span><span class=\"n\">Light<\/span><span class=\"p\">()<\/span>\n<span class=\"n\">light<\/span><span class=\"o\">.<\/span><span class=\"n\">color<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Color<\/span><span class=\"o\">.<\/span><span class=\"n\">cadet_blue<\/span>\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"n\">root_node<\/span><span class=\"o\">.<\/span><span class=\"n\">create_child_node<\/span><span class=\"p\">(<\/span><span class=\"n\">light<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">transform<\/span><span class=\"o\">.<\/span><span class=\"n\">set_translation<\/span><span class=\"p\">(<\/span><span class=\"mi\">49<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">49<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\">#create a renderer<\/span>\n\n<span class=\"k\">with<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">Renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">create_renderer<\/span><span class=\"p\">()<\/span> <span class=\"k\">as<\/span> <span class=\"n\">renderer<\/span><span class=\"p\">:<\/span>\n\n    <span class=\"c1\">#Create a cube map render target with depth texture, depth is required when rendering a scene.<\/span>\n\n    <span class=\"n\">rt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">render_factory<\/span><span class=\"o\">.<\/span><span class=\"n\">create_cube_render_texture<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">RenderParameters<\/span><span class=\"p\">(<\/span><span class=\"bp\">False<\/span><span class=\"p\">),<\/span> <span class=\"mi\">512<\/span><span class=\"p\">,<\/span> <span class=\"mi\">512<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">#create a 2D texture render target with no depth texture used for image processing<\/span>\n\n    <span class=\"n\">final<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">render_factory<\/span><span class=\"o\">.<\/span><span class=\"n\">CreateRenderTexture<\/span><span class=\"p\">(<\/span><span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"o\">.<\/span><span class=\"n\">RenderParameters<\/span><span class=\"p\">(<\/span><span class=\"bp\">False<\/span><span class=\"p\">,<\/span> <span class=\"mi\">32<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"mi\">1024<\/span> <span class=\"o\">*<\/span> <span class=\"mi\">3<\/span> <span class=\"p\">,<\/span> <span class=\"mi\">1024<\/span><span class=\"p\">)<\/span>\n\n\n\n    <span class=\"c1\">#a viewport is required on the render target<\/span>\n\n    <span class=\"n\">rt<\/span><span class=\"o\">.<\/span><span class=\"n\">create_viewport<\/span><span class=\"p\">(<\/span><span class=\"n\">cam<\/span><span class=\"p\">,<\/span> <span class=\"n\">a3d<\/span><span class=\"o\">.<\/span><span class=\"n\">utilities<\/span><span class=\"o\">.<\/span><span class=\"n\">RelativeRectangle<\/span><span class=\"o\">.<\/span><span class=\"n\">from_scale<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">))<\/span>\n\n    <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">render<\/span><span class=\"p\">(<\/span><span class=\"n\">rt<\/span><span class=\"p\">)<\/span>\n\n\n\n    <span class=\"c1\">#execute the equirectangular projection post-processing with the previous rendered cube map as input<\/span>\n\n    <span class=\"n\">equirectangular<\/span> <span class=\"o\">=<\/span> <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">get_post_processing<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;equirectangular&#34;<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">#Specify the cube map rendered from the scene as this post processing&#39;s input<\/span>\n\n    <span class=\"n\">equirectangular<\/span><span class=\"o\">.<\/span><span class=\"n\">input<\/span> <span class=\"o\">=<\/span> <span class=\"n\">rt<\/span><span class=\"o\">.<\/span><span class=\"n\">targets<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\n\n    <span class=\"c1\">#Execute the post processing effect and save the result to render target final<\/span>\n\n    <span class=\"n\">renderer<\/span><span class=\"o\">.<\/span><span class=\"n\">execute<\/span><span class=\"p\">(<\/span><span class=\"n\">equirectangular<\/span><span class=\"p\">,<\/span> <span class=\"n\">final<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\">#save the texture into disk<\/span>\n\n    <span class=\"n\">final<\/span><span class=\"o\">.<\/span><span class=\"n\">targets<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"o\">.<\/span><span class=\"n\">save<\/span><span class=\"p\">(<\/span><span class=\"s2\">&#34;panorama.png&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">ImageFormat<\/span><span class=\"o\">.<\/span><span class=\"n\">PNG<\/span><span class=\"p\">)<\/span>\n\n\n<\/code><\/pre><\/div>\n      "}]}}