Оглавление:
Видео: Использование Blender для создания моделей Java3D: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:55
Если вы программист на Java, вы, вероятно, в какой-то момент хотели программировать в 3D. Но как? Что ж, вы можете использовать Java3D и медленно вводить каждую точку в трехмерном многоугольнике (пробовал, поверьте мне, это плохая идея), или вы можете использовать Blender (https://blender.org), бесплатную программу 3D-моделирования с открытым исходным кодом вместе с скрипт под названием Blend2Java (https://sourceforge.net/projects/blend2java/). Однако документации по Blend2Java почти нет, поэтому я сижу здесь и пишу это.
Шаг 1. Загрузите программы
Вам понадобится Blender (https://blender.org) и Blend2Java (https://sourceforge.net/projects/blend2java/). Хорошо, тогда, как только они у вас есть, начните с создания простой модели (или просто используя стандартный куб) в Blender.
Шаг 2. Экспорт модели в XML
Когда у вас есть модель, которую вы хотите использовать в Blender, откройте режим редактирования и нажмите клавишу «a», чтобы выбрать все точки. В нижней панели выберите текстовый редактор. Откройте новый файл в текстовом редакторе. Откройте загруженный файл blend2java.py. Run. Ok, ваш объект теперь должен быть в. XML, где бы вы его ни сохранили (если у вас есть и сообщение об ошибке, убедитесь, что у вас есть только 1 материал для объекта). Переименуйте объект (у него будет странное имя).
Шаг 3: Импортируйте объект в Java
Shape3D fred = null; попробуйте {XMLDecoder e = new XMLDecoder (новый BufferedInputStream (новый FileInputStream ("c: /HandShape3D.xml"))); // здесь ваше имя файла fred = (Shape3D) e.readObject (); e.close (); } catch (исключение e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Внешний вид ap = новый внешний вид (); Color3f col = новый Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); вставьте это в любой трехмерный код или используйте весь код здесь import java.io. *; import java.beans. XMLDecoder; import java.applet. Applet; import java.awt. *; import java. awt.event. *; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.universe. *; import javax.media.j3d. *; import javax.vecmath. *; import java.applet. Applet; import java.awt. BorderLayout; import java.awt. Frame; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.geometry. ColorCube; import com.sun. j3d.utils.universe. *; import com.sun.j3d.utils.behaviors.mouse. *; import javax.media.j3d. *; import javax.vecmath. *; import java.awt.event. *; import java.util. Enumeration; открытый класс MouseBehaviorApp расширяет апплет {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = new TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; попробуйте {XMLDecoder e = new XMLDecoder (новый BufferedInputStream (новый FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (исключение e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Внешний вид ap = новый внешний вид (); Color3f col = новый Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); objTransform.addChild (Фред); MouseRotate myMouseRotate = новый MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (новая BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = новый MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (новая BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = новый MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (новая BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } общедоступный MouseBehaviorApp () {setLayout (новый BorderLayout ()); Canvas3D canvas3D = новый Canvas3D (SimpleUniverse.getPreferredConfiguration ()); добавить ("Центр", canvas3D); BranchGroup scene = createSceneGraph (); SimpleUniverse simpleU = новый SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (сцена); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} используйте это для полной программы! вы сделали! а потом вы говорите «что теперь?» я понятия не имею! Я только что изучил Java месяц назад, лол!
Рекомендуемые:
Повторное использование компьютерного радиатора для создания транзисторного радиатора: 7 шагов
Повторное использование компьютерного радиатора для создания транзисторного радиатора: некоторое время назад я купил несколько Raspberry Pi 3, чтобы поиграть. Поскольку они поставляются без радиатора, я искал некоторые из них. Я сделал быстрый поиск в Google и наткнулся на этот Instructable (Raspberry Pi Heat Sink) - это было после того, как я отказался от идеи
Использование фотограмметрии для создания моделей: 9 шагов
Использование фотограмметрии для создания моделей: Кто я? Я Сэмюэл Конклин, учусь на втором курсе в E.L. Средняя школа Мейерса. Я экспериментировал с фотограмметрией последние пару месяцев и надеюсь помочь вам, если вы решите воссоздать этот продукт. Мне интересно посмотреть, как другие люди
Использование светодиодов RGB для создания цветовых последовательностей: 12 шагов
Использование светодиодов RGB для создания цветовых последовательностей: в этих инструкциях будет показано, как использовать светодиоды RGB для создания цветовых последовательностей с помощью Arduino Uno и кода. 3 светодиода RGB будут менять цвета со временем, в то время как 2 других светодиода RGB останутся того же цвета
Повторное использование старых деталей ноутбука для создания дешевой портативной системы: 3 шага (с изображениями)
Повторное использование старых деталей ноутбука для создания дешевой портативной системы: недавно мой старый ноутбук умер, и мне пришлось купить новый (RIP! 5520, вам будет не хватать). Материнская плата ноутбука вышла из строя, и повреждение можно было исправить. До недавнего времени я принес Raspberry pie и начал возиться с IOT, но мне потребовался специальный
Использование медной ленты для создания цифровой панели выбора: 4 шага
Использование медной ленты для создания цифровой панели выбора: частично я разделяю эту технику, а частично я учусь использовать Instructables. Если есть проблемы с моей документацией по технике или использованием Instructables, дайте мне знать в комментариях - спасибо! Мне нужна была длинная строка о