{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 Rendering","link":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/rendering\/","description":"Recent content in Rendering on Documentation","generator":"Hugo -- gohugo.io","language":"fr","item":[{"title":"Python-Net: Lancer et recevoir des ombres sur les g\u00e9om\u00e9tries 3D","link":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/cast-and-receive-shadows-on-3d-geometries\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/cast-and-receive-shadows-on-3d-geometries\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nG\u00e9n\u00e9ralement, certains formats de fichiers 3D peuvent stocker des param\u00e8tres li\u00e9s \u00e0 l&rsquo;ombre dans la g\u00e9om\u00e9trie comme FBX. En utilisant <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a>, les d\u00e9veloppeurs peuvent rendre une image en cartographiant les ombres du point de vue d&rsquo;une source de lumi\u00e8re. La qualit\u00e9 d&rsquo;image d\u00e9pend de la source lumineuse, de l&rsquo;angle d&rsquo;\u00e9l\u00e9vation et de la distance entre la cam\u00e9ra et les objets g\u00e9om\u00e9triques.\n<\/div>\n\n<h2 id=\"cast-et-recevoir-de-lombre\"><strong>Cast et recevoir de l&rsquo;ombre<\/strong><\/h2>\n<p>Par d\u00e9faut, tous les objets de la sc\u00e8ne projettent des ombres \u00e0 partir d&rsquo;une source lumineuse. Les d\u00e9veloppeurs peuvent \u00e9galement recevoir des ombres par objet dans la surface de l&rsquo;objet. Cet exemple de code r\u00e9v\u00e8le comment d\u00e9finir la position de la lumi\u00e8re et des objets de l&rsquo;appareil photo. Il cr\u00e9e \u00e9galement un plan et place trois objets avec des couleurs et des param\u00e8tres d&rsquo;ombre diff\u00e9rents.<\/p>\n<p>Toutes les g\u00e9om\u00e9tries ont <code>cast_shadows = True<\/code> et <code>receive_shadows = True<\/code>, les ombres de la bo\u00eete rouge et du tore coul\u00e9es sur le plan, la bo\u00eete rouge ne recevra pas d&rsquo;ombres et la bo\u00eete bleue ne jettera pas d&rsquo;ombres.<\/p>\n<h3 id=\"\u00e9chantillon-de-programmation\"><strong>\u00c9chantillon de programmation<\/strong><\/h3>\n<p>Cet exemple de code jette et re\u00e7oit des ombres sur les g\u00e9om\u00e9tries 3D.<\/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>Render R\u00e9sultat<\/strong><\/p>\n<p>! <a href=\"cast-and-receive-shadows-on-3d-geometries_1.png\">Tout le monde: image_alt_text<\/a><\/p>\n\n      "},{"title":"Python-Net: Cr\u00e9ez un effet d'objectif Fish-eye sur la sc\u00e8ne 3D et enregistrez dans une image","link":"https:\/\/docs.aspose.com\/3d\/fr\/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\/fr\/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\nEn utilisant <a href=\"https:#products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET API<\/a>, les d\u00e9veloppeurs peuvent cr\u00e9er un effet d&rsquo;objectif Fisheye sur la sc\u00e8ne 3D et enregistrer cette vue dans les formats d&rsquo;image pris en charge.\n<\/div>\n\n<h2 id=\"cr\u00e9er-un-effet-de-lentille-fisheye\"><strong>Cr\u00e9er un effet de lentille Fisheye<\/strong><\/h2>\n<p>Dans cet article, nous cr\u00e9ons une cam\u00e9ra et deux objets Light pour capturer la sc\u00e8ne, \u00e9galement cr\u00e9er une cible de rendu, cr\u00e9er un viewport et ex\u00e9cuter le post-traitement de la projection Fisheye avec la carte cube en entr\u00e9e et enfin enregistrer la texture Fisheye. La m\u00e9thode <code>execute<\/code> de la classe <code>Renderer<\/code> permet d&rsquo;ex\u00e9cuter l&rsquo;effet de post-traitement et de sauvegarder le r\u00e9sultat dans la cible de rendu.<\/p>\n<h3 id=\"\u00e9chantillon-de-programmation\"><strong>\u00c9chantillon de programmation<\/strong><\/h3>\n<p>Cet exemple de code cr\u00e9e un effet de lentille Fisheye sur 3D sc\u00e8ne et enregistrer dans le format de l&rsquo;image.<\/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: Rendu mat\u00e9riel bas\u00e9 sur la g\u00e9om\u00e9trie 3D","link":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/hardware-based-rendering-of-3d-geometry\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/hardware-based-rendering-of-3d-geometry\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nEn utilisant <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a> API, les d\u00e9veloppeurs peuvent programmer le GPU (unit\u00e9 de traitement graphique) et configurer le mat\u00e9riel graphique pour rendre la g\u00e9om\u00e9trie 3D au lieu du pipeline de fonctions fixes. Dans cet article, nous nous concentrons sur le rendu mat\u00e9riel en utilisant <a href=\"https:\/\/www.opengl.org\/sdk\/docs\/man\/html\/glEnable.xhtml\">OpenGL 4.0<\/a>, <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/hh404489(v=vs.85).aspx\">DirectX 11<\/a>, [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 et <a href=\"https:\/\/www.khronos.org\/registry\/vulkan\/specs\/1.0\/xhtml\/vkspec.html#VkPipelineRasterizationStateCreateInfo\">Vulkan<\/a>.\n<\/div>\n\n<h2 id=\"cr\u00e9er-du-mat\u00e9riel-et-rendre-une-g\u00e9om\u00e9trie-3d\"><strong>Cr\u00e9er du mat\u00e9riel et rendre une g\u00e9om\u00e9trie 3D<\/strong><\/h2>\n<p>Pour rendre une g\u00e9om\u00e9trie 3D, un shader, des tampons et un \u00e9tat de rendu sont requis. Aucun d&rsquo;entre eux ne peut travailler l&rsquo;un sans l&rsquo;autre.<\/p>\n<ul>\n<li><strong>Tampons<\/strong>-Les listes de triangles sont des triangles individuels sp\u00e9cifi\u00e9s dans un tableau parfois appel\u00e9 tampon. Dans une liste de triangle, chaque triangle est sp\u00e9cifi\u00e9 individuellement. Les points d&rsquo;un triangle peuvent \u00eatre partag\u00e9s en utilisant des indices pour r\u00e9duire la quantit\u00e9 de donn\u00e9es qui doivent \u00eatre transmises au mat\u00e9riel graphique.<\/li>\n<li><strong>Omandeurs<\/strong>-Il d\u00e9finit comment transformer les triangles de l&rsquo;espace du monde dans l&rsquo;espace de l&rsquo;\u00e9cran et calculer la couleur finale du pixel dans le c\u00f4t\u00e9 GPU<\/li>\n<li><strong>Rendre les \u00c9tats<\/strong>-Il fournit des param\u00e8tres pour le GPU pour rast\u00e9riser les triangles en pixels.<\/li>\n<\/ul>\n\n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nNous avons pr\u00e9par\u00e9 un projet d\u00e9mo. Veuillez vous r\u00e9f\u00e9rer \u00e0 <a href=\"https:\/\/github.com\/aspose-3d\/Aspose.3D-for-.NET\/tree\/master\/HardwareBasedRendering\">Cette URL de t\u00e9l\u00e9chargement<\/a>.\n<\/div>\n\n<p>OpenGL Shading Language (GLSL) est le langage d&rsquo;ombrage standard de haut niveau pour les graphiques OpenGL API. Il existe trois types de shader couramment utilis\u00e9s: Vertex Shaders, Fragment Shaders et Geometry Shaders.<\/p>\n<p>La classe <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/glslsource\"><code>GLSLSource<\/code><\/a> indique au moteur de rendu, le code source est pour le langage d&rsquo;ombrage OpenGL, il peut \u00eatre compil\u00e9 en <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/shaderprogram\"><code>ShaderProgram<\/code><\/a> classe. La classe <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed.render\/shadervariable\"><code>ShaderVariable<\/code><\/a> d\u00e9finit les variables utilis\u00e9es dans le shader. La classe <code>VariableSemantic<\/code> est utilis\u00e9e pour identifier la s\u00e9mantique de la variable shader, le rendu Aspose.3D pr\u00e9parera automatiquement les valeurs des variables shader en fonction de la s\u00e9mantique.<\/p>\n<h3 id=\"\u00e9chantillon-de-programmation-pour-shader\"><strong>\u00c9chantillon de programmation pour Shader<\/strong><\/h3>\n<p>Cet exemple de code initialise le rendu et le shader pour la grille. Vous pouvez t\u00e9l\u00e9charger le projet de travail complet de cet exemple \u00e0 partir de <a href=\"https:\/\/github.com\/aspose-3d\/Aspose.3D-for-.NET\/tree\/master\/HardwareBasedRendering\">Ici<\/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=\"\u00e9chantillon-de-programmation-pour-l\u00e9tat-du-tampon-et-du-d\u00e9posant\"><strong>\u00c9chantillon de programmation pour l&rsquo;\u00e9tat du tampon et du d\u00e9posant<\/strong><\/h3>\n<p>Cet exemple de code initialise l&rsquo;\u00e9tat de m\u00e9moire tampon et de rendu pour la grille.<\/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: Rendre 3D Voir au format Image depuis la cam\u00e9ra","link":"https:\/\/docs.aspose.com\/3d\/fr\/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\/fr\/python-net\/render-3d-view-in-image-format-from-camera\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nEn utilisant <a href=\"https:\/\/products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET<\/a>, les d\u00e9veloppeurs peuvent rendre une image pour afficher une image r\u00e9aliste du mod\u00e8le 3D, avec ou sans le fond am\u00e9lior\u00e9, les textures, les ombres et \u00e9galement ajuster la taille de l&rsquo;image.\n<\/div>\n\n<h2 id=\"prenez-une-photo-du-mod\u00e8le-de-3d-de-lappareil-photo\"><strong>Prenez une photo du mod\u00e8le de 3D de l&rsquo;appareil photo<\/strong><\/h2>\n<p>La m\u00e9thode Render expos\u00e9e par la classe <a href=\"https:\/\/reference.aspose.com\/3d\/net\/aspose.threed\/scene\"><code>Scene<\/code><\/a> peut \u00eatre utilis\u00e9e pour prendre une photo \u00e0 partir de la cam\u00e9ra active. Les d\u00e9veloppeurs peuvent \u00e9galement utiliser les diff\u00e9rentes fa\u00e7ons de naviguer et de positionner la cam\u00e9ra dans la sc\u00e8ne. Dans cet exemple de code, nous cr\u00e9ons une cam\u00e9ra \u00e0 la position (10,10,10) dans une sc\u00e8ne 3D existante et regardons le point d&rsquo;origine pour le rendu.<\/p>\n<h3 id=\"\u00e9chantillon-de-programmation\"><strong>\u00c9chantillon de programmation<\/strong><\/h3>\n<p>Cet exemple de code cr\u00e9e une cam\u00e9ra dans une sc\u00e8ne 3D, d\u00e9finit sa cible et rend une image.<\/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: Rendre une vue Panorama de 3D sc\u00e8ne","link":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/render-a-panorama-view-of-3d-scene\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/fr\/python-net\/render-a-panorama-view-of-3d-scene\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nEn utilisant <a href=\"https:#products.aspose.com\/3d\/python-net\/\">Aspose.3D for Python via .NET API<\/a>, les d\u00e9veloppeurs peuvent rendre une vue panoramique de la sc\u00e8ne 3D et enregistrer cette vue dans les formats d&rsquo;image pris en charge.\n<\/div>\n\n<h2 id=\"cr\u00e9er-une-vue-panorama\"><strong>Cr\u00e9er une vue Panorama<\/strong><\/h2>\n<p>Dans cet article, nous cr\u00e9ons une cam\u00e9ra et deux objets Light pour capturer la sc\u00e8ne, \u00e9galement cr\u00e9er une cible de rendu, cr\u00e9er un viewport et ex\u00e9cuter le post-traitement de projection \u00e9quirectangulaire avec la carte cube en entr\u00e9e et enfin enregistrer la texture Panorama. La m\u00e9thode <code>execute<\/code> de la classe <code>Renderer<\/code> permet d&rsquo;ex\u00e9cuter l&rsquo;effet de post-traitement et de sauvegarder le r\u00e9sultat dans la cible de rendu.<\/p>\n<h3 id=\"\u00e9chantillon-de-programmation\"><strong>\u00c9chantillon de programmation<\/strong><\/h3>\n<p>Cet exemple de code rend une vue Panorama de la sc\u00e8ne 3D et la sauvegarde dans le format d&rsquo;image.<\/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      "}]}}