{"@attributes":{"version":"2.0"},"channel":{"title":"Documentation \u2013 3D \u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","link":"https:\/\/docs.aspose.com\/3d\/ru\/java\/3d-modeling\/","description":"Recent content in 3D \u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 on Documentation","generator":"Hugo -- gohugo.io","language":"ru","item":[{"title":"Java: \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 3D","link":"https:\/\/docs.aspose.com\/3d\/ru\/java\/add-asset-information-to-3d-document\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/ru\/java\/add-asset-information-to-3d-document\/","description":"\n        \n        \n        <h2 id=\"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e-\u043e\u0431-\u0430\u043a\u0442\u0438\u0432\u0435-\u0432-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442-3d\"><strong>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0430\u043a\u0442\u0438\u0432\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 3D<\/strong><\/h2>\n<p>\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435-\u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442, \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442, \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0438\u043b\u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c. Aspose.3D for Java API \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0446\u0435\u043d\u044b.<\/p>\n<h3 id=\"\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435-\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435-\u0434\u043b\u044f-\u0441\u0446\u0435\u043d\u044b\"><strong>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0446\u0435\u043d\u044b<\/strong><\/h3>\n<p>3D \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445. \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435-\u044d\u0442\u043e \u0430\u043a\u0442\u0438\u0432 \u0438 \u0447\u0430\u0441\u0442\u044c \u0448\u043e\u0443.<\/p>\n<ol>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0446\u0435\u043d\u0443 3D, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043b\u0430\u0441\u0441 <code>Scene<\/code>.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\/\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\/\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u0443 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u044b \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f.<\/li>\n<li>\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0446\u0435\u043d\u0443 3D \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0444\u0430\u0439\u043b\u0430.<\/li>\n<\/ol>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0446\u0435\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c CAD \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u00ab\u0415\u0433\u0438\u043f\u0435\u0442\u00bb, \u0438 \u043e\u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u00abManualdesk\u00bb:<\/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: \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0441\u0446\u0435\u043d\u0443 \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0430\u043c\u0438 3D","link":"https:\/\/docs.aspose.com\/3d\/ru\/java\/create-scene-with-primitive-3d-shapes\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/ru\/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 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u044b 3D. \u0412\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u044b \u0432 mesh \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0432 \u043b\u044e\u0431\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.\n<\/div>\n\n<h2 id=\"\u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c-\u0441\u0446\u0435\u043d\u0443-\u0438\u0437-\u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445-3d-\u0444\u0438\u0433\u0443\u0440\"><strong>\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0446\u0435\u043d\u0443 \u0438\u0437 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0445 3D \u0444\u0438\u0433\u0443\u0440<\/strong><\/h2>\n<p>\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435-\u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0447\u0438\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 Aspose.3D API \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0446\u0435\u043d\u044b \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 3D \u0444\u043e\u0440\u043c\u0430\u043c\u0438.<\/p>\n<h3 id=\"\u043e\u0431\u0440\u0430\u0437\u0435\u0446-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\"><strong>\u041e\u0431\u0440\u0430\u0437\u0435\u0446 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/strong><\/h3>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0446\u0435\u043d\u0430 \u0441 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438 3D \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 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: \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0435\u0442\u043a\u0438 3D \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435","link":"https:\/\/docs.aspose.com\/3d\/ru\/java\/save-3d-meshes-in-custom-binary-format\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/docs.aspose.com\/3d\/ru\/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 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 3D, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u044f\u0447\u0435\u0435\u043a \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u0444\u0430\u0439\u043b.\n<\/div>\n\n<h2 id=\"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435-\u0444\u0430\u0439\u043b-3d-\u0438-\u0437\u0430\u043f\u0438\u0448\u0438\u0442\u0435-\u0441\u0435\u0442\u043a\u0438-\u0432-\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c-\u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439-\u0444\u043e\u0440\u043c\u0430\u0442\u0435-\u043f\u0440\u0438\u043c\u0435\u0440-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\"><strong>\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0444\u0430\u0439\u043b 3D \u0438 \u0437\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0435\u0442\u043a\u0438 \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/strong><\/h2>\n<p>\u041c\u0435\u0442\u043e\u0434 Accept, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0447\u043b\u0435\u043d\u043e\u043c RootNode \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 <code>Scene<\/code>, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u0441\u0435\u0449\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0434\u0443\u0437\u0435\u043b. \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u043e\u0434\u0430 \u043d\u0438\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0442\u043a\u0438.<\/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      "}]}}