{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 3D Modellering","link":"https:\/\/docs.aspose.com\/3d\/sv\/java\/3d-modeling\/","description":"Recent content in 3D Modellering on Documentation","generator":"Hugo -- gohugo.io","language":"sv","item":[{"title":"Java: L\u00e4gg till information om tillg\u00e5ngar i 3D.","link":"https:\/\/docs.aspose.com\/3d\/sv\/java\/add-asset-information-to-3d-document\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/java\/add-asset-information-to-3d-document\/","description":"\n        \n        \n        <h2 id=\"l\u00e4gg-till-information-om-tillg\u00e5ngar-i-3d\"><strong>L\u00e4gg till information om tillg\u00e5ngar i 3D.<\/strong><\/h2>\n<p>Metadata \u00e4r strukturerad information som beskriver, f\u00f6rklarar, lokaliserar eller g\u00f6r det l\u00e4ttare att h\u00e4mta, anv\u00e4nda eller hantera en informationsresurs. Aspose.3D for Java API har st\u00f6d f\u00f6r att definiera metadata f\u00f6r scenen.<\/p>\n<h3 id=\"definiera-en-metadata-f\u00f6r-scenen\"><strong>Definiera en metadata f\u00f6r scenen<\/strong><\/h3>\n<p>3D visar tillverkar stora m\u00e4ngder av metadata och bildinformation. Metadata \u00e4r en tillg\u00e5ng och en del av showen.<\/p>\n<ol>\n<li>Initiera en 3D scen med <code>Scene<\/code> klass.<\/li>\n<li>Ange program\/verktygsnamn.<\/li>\n<li>Ange ans\u00f6kan\/verktygsleverant\u00f6rens namn.<\/li>\n<li>St\u00e4ll in m\u00e5ttenhet.<\/li>\n<li>Ange m\u00e5ttenhetsskalfaktor.<\/li>\n<li>Spara 3D-scenen i det st\u00f6dda filformatet.<\/li>\n<\/ol>\n<p>I det h\u00e4r exemplet antar vi att scenen \u00e4r skapad av ett CAD-verktyg som heter \u201cEgypt\u201d och det \u00e4r designat av \u201cManualdesk\u201d:<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ Initialize a 3D scene\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Set application\/tool name\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setApplicationName<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Egypt&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ Set application\/tool vendor name\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setApplicationVendor<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;Manualdesk&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ We use ancient egyption measurement unit Pole\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setUnitName<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;pole&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ One Pole equals to 60cm\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getAssetInfo<\/span><span class=\"o\">().<\/span><span class=\"na\">setUnitScaleFactor<\/span><span class=\"o\">(<\/span><span class=\"n\">0<\/span><span class=\"o\">.<\/span><span class=\"na\">6<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getOutputFilePath<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;InformationToScene.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"c1\">\/\/ Save scene to 3D supported file formats\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">FileFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">FBX7500ASCII<\/span><span class=\"o\">);<\/span><\/code><\/pre><\/div>\n\n      "},{"title":"Java: Skapa scen med primitiv 3D Formar","link":"https:\/\/docs.aspose.com\/3d\/sv\/java\/create-scene-with-primitive-3d-shapes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/java\/create-scene-with-primitive-3d-shapes\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nAspose.3D for Java API har st\u00f6d f\u00f6r primitiva 3D former. Alla parameteriserade primitive kommer att konverteras till mesh automatiskt medan spara i n\u00e5gon utdatafilformat som st\u00f6ds.\n<\/div>\n\n<h2 id=\"bygg-scen-fr\u00e5n-primitiv-3d-formar\"><strong>Bygg scen fr\u00e5n primitiv 3D Formar<\/strong><\/h2>\n<p>Modellering \u00e4r processen f\u00f6r ren skapande och Aspose.3D API st\u00f6der att skapa en scen med primitiva 3D former.<\/p>\n<h3 id=\"programmeringsprova\"><strong>Programmeringsprova<\/strong><\/h3>\n<p>Det h\u00e4r kodexemplet skapar en scen med primitiva 3D-former och sparar i filen FBX.<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Initialize a Scene object\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ Create a Box model\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">createChildNode<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;box&#34;<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Box<\/span><span class=\"o\">());<\/span>\n<span class=\"c1\">\/\/ Create a Cylinder model\n<\/span><span class=\"c1\"><\/span><span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">createChildNode<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;cylinder&#34;<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Cylinder<\/span><span class=\"o\">());<\/span>\n<span class=\"c1\">\/\/ Save drawing in the FBX format\n<\/span><span class=\"c1\"><\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getOutputFilePath<\/span><span class=\"o\">(<\/span><span class=\"s\">&#34;test.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">save<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span><span class=\"o\">,<\/span> <span class=\"n\">FileFormat<\/span><span class=\"o\">.<\/span><span class=\"na\">FBX7500ASCII<\/span><span class=\"o\">);<\/span><\/code><\/pre><\/div>\n\n      "},{"title":"Java: Spara 3D i egna bin\u00e4rformat","link":"https:\/\/docs.aspose.com\/3d\/sv\/java\/save-3d-meshes-in-custom-binary-format\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/sv\/java\/save-3d-meshes-in-custom-binary-format\/","description":"\n        \n        \n        \n\n<div class=\"alert alert-primary\" role=\"alert\">\n\nAspose. 3D for Java API har st\u00f6d f\u00f6r att \u00f6ppna alla dokument som st\u00f6ds 3D, och sedan skriva maskor i bin\u00e4rfilen.\n<\/div>\n\n<h2 id=\"ladda-3d-arkiv-och-skriva-meshes-i-egna-bin\u00e4rformatprogrammeringsprov\"><strong>Ladda 3D Arkiv och skriva meshes i egna bin\u00e4rformatprogrammeringsprov.<\/strong><\/h2>\n<p>Acceptera metod som exponeras av RootNode-medlem i klassen <code>Scene<\/code> till\u00e5ter att bes\u00f6ka varje subnod. Kodsnippet nedan till\u00e5ter att endast konvertera maskor.<\/p>\n<div class=\"highlight\"><pre class=\"chroma\"><code class=\"language-java\" data-lang=\"java\"><span class=\"c1\">\/\/ The path to the documents directory.\n<\/span><span class=\"c1\"><\/span><span class=\"n\">String<\/span> <span class=\"n\">MyDir<\/span> <span class=\"o\">=<\/span> <span class=\"n\">RunExamples<\/span><span class=\"o\">.<\/span><span class=\"na\">getDataDir<\/span><span class=\"o\">();<\/span>\n<span class=\"c1\">\/\/ load a 3D file\n<\/span><span class=\"c1\"><\/span><span class=\"n\">Scene<\/span> <span class=\"n\">scene<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">Scene<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"s\">&#34;test.fbx&#34;<\/span><span class=\"o\">);<\/span>\n<span class=\"cm\">\/*\n<\/span><span class=\"cm\">* 3D format demonstration is simple\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct File {\n<\/span><span class=\"cm\">*   MeshBlock blocks[];\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct Vertex {\n<\/span><span class=\"cm\">*   float x;\n<\/span><span class=\"cm\">*   float y;\n<\/span><span class=\"cm\">*   float z;\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct Triangle {\n<\/span><span class=\"cm\">*   int a;\n<\/span><span class=\"cm\">*   int b;\n<\/span><span class=\"cm\">*   int c;\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\n<\/span><span class=\"cm\">* struct MeshBlock {\n<\/span><span class=\"cm\">*   int numControlPoints;\n<\/span><span class=\"cm\">*   int numTriangles;\n<\/span><span class=\"cm\">*   Vertex vertices[numControlPoints];\n<\/span><span class=\"cm\">*   Triangle faces[numTriangles];\n<\/span><span class=\"cm\">* };\n<\/span><span class=\"cm\">*\/<\/span>\n<span class=\"c1\">\/\/ open file for writing in binary mode\n<\/span><span class=\"c1\"><\/span><span class=\"k\">try<\/span> <span class=\"o\">(<\/span><span class=\"n\">DataOutputStream<\/span> <span class=\"n\">writer<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"n\">DataOutputStream<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">BufferedOutputStream<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">FileOutputStream<\/span><span class=\"o\">(<\/span><span class=\"n\">MyDir<\/span> <span class=\"o\">+<\/span> <span class=\"s\">&#34;Save3DMeshesInCustomBinaryFormat_out&#34;<\/span><span class=\"o\">))))<\/span>\n<span class=\"o\">{<\/span>\n    <span class=\"c1\">\/\/ visit each descent nodes\n<\/span><span class=\"c1\"><\/span>    <span class=\"n\">scene<\/span><span class=\"o\">.<\/span><span class=\"na\">getRootNode<\/span><span class=\"o\">().<\/span><span class=\"na\">accept<\/span><span class=\"o\">(<\/span><span class=\"k\">new<\/span> <span class=\"n\">NodeVisitor<\/span><span class=\"o\">(){<\/span>\n        <span class=\"nd\">@Override<\/span>\n        <span class=\"kd\">public<\/span> <span class=\"kt\">boolean<\/span> <span class=\"nf\">call<\/span><span class=\"o\">(<\/span><span class=\"n\">Node<\/span> <span class=\"n\">node<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">try<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"n\">Entity<\/span> <span class=\"n\">entity<\/span> <span class=\"o\">:<\/span> <span class=\"n\">node<\/span><span class=\"o\">.<\/span><span class=\"na\">getEntities<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"c1\">\/\/ only convert meshes, lights\/camera and other stuff will be ignored\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">if<\/span> <span class=\"o\">(!(<\/span><span class=\"n\">entity<\/span> <span class=\"k\">instanceof<\/span> <span class=\"n\">IMeshConvertible<\/span><span class=\"o\">))<\/span>\n                    <span class=\"k\">continue<\/span><span class=\"o\">;<\/span>\n                <span class=\"n\">Mesh<\/span> <span class=\"n\">m<\/span> <span class=\"o\">=<\/span> <span class=\"o\">((<\/span><span class=\"n\">IMeshConvertible<\/span><span class=\"o\">)<\/span> <span class=\"n\">entity<\/span><span class=\"o\">).<\/span><span class=\"na\">toMesh<\/span><span class=\"o\">();<\/span>\n                <span class=\"n\">List<\/span><span class=\"o\">&lt;<\/span><span class=\"n\">Vector4<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">controlPoints<\/span> <span class=\"o\">=<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getControlPoints<\/span><span class=\"o\">();<\/span>\n                <span class=\"c1\">\/\/ triangulate the mesh, so triFaces will only store triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"kt\">int<\/span><span class=\"o\">[][]<\/span> <span class=\"n\">triFaces<\/span> <span class=\"o\">=<\/span> <span class=\"n\">PolygonModifier<\/span><span class=\"o\">.<\/span><span class=\"na\">triangulate<\/span><span class=\"o\">(<\/span><span class=\"n\">controlPoints<\/span><span class=\"o\">,<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getPolygons<\/span><span class=\"o\">());<\/span>\n                <span class=\"c1\">\/\/ gets the global transform matrix\n<\/span><span class=\"c1\"><\/span>                <span class=\"n\">Matrix4<\/span> <span class=\"n\">transform<\/span> <span class=\"o\">=<\/span> <span class=\"n\">node<\/span><span class=\"o\">.<\/span><span class=\"na\">getGlobalTransform<\/span><span class=\"o\">().<\/span><span class=\"na\">getTransformMatrix<\/span><span class=\"o\">();<\/span>\n                <span class=\"c1\">\/\/ write number of control points and triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">());<\/span>\n                <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">.<\/span><span class=\"na\">length<\/span><span class=\"o\">);<\/span>\n                <span class=\"c1\">\/\/ write control points\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">size<\/span><span class=\"o\">();<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"c1\">\/\/ calculate the control points in world space and save them to file\n<\/span><span class=\"c1\"><\/span>                    <span class=\"n\">Vector4<\/span> <span class=\"n\">cp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Matrix4<\/span><span class=\"o\">.<\/span><span class=\"na\">mul<\/span><span class=\"o\">(<\/span><span class=\"n\">transform<\/span><span class=\"o\">,<\/span> <span class=\"n\">controlPoints<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"n\">i<\/span><span class=\"o\">));<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">x<\/span><span class=\"o\">);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">y<\/span><span class=\"o\">);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeFloat<\/span><span class=\"o\">((<\/span><span class=\"kt\">float<\/span><span class=\"o\">)<\/span> <span class=\"n\">cp<\/span><span class=\"o\">.<\/span><span class=\"na\">z<\/span><span class=\"o\">);<\/span>\n                <span class=\"o\">}<\/span>\n                <span class=\"c1\">\/\/ write triangle indices\n<\/span><span class=\"c1\"><\/span>                <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"n\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">triFaces<\/span><span class=\"o\">.<\/span><span class=\"na\">length<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">0<\/span><span class=\"o\">]);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">1<\/span><span class=\"o\">]);<\/span>\n                    <span class=\"n\">writer<\/span><span class=\"o\">.<\/span><span class=\"na\">writeInt<\/span><span class=\"o\">(<\/span><span class=\"n\">triFaces<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">2<\/span><span class=\"o\">]);<\/span>\n                <span class=\"o\">}<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span> <span class=\"k\">catch<\/span><span class=\"o\">(<\/span><span class=\"n\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">e<\/span><span class=\"o\">.<\/span><span class=\"na\">printStackTrace<\/span><span class=\"o\">();<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">});<\/span>\n<span class=\"o\">}<\/span><\/code><\/pre><\/div>\n\n      "}]}}