فهرست مطالب:

استفاده از بلندر برای ایجاد مدل های Java3D: 3 مرحله
استفاده از بلندر برای ایجاد مدل های Java3D: 3 مرحله

تصویری: استفاده از بلندر برای ایجاد مدل های Java3D: 3 مرحله

تصویری: استفاده از بلندر برای ایجاد مدل های Java3D: 3 مرحله
تصویری: آموزش ساخت مدل‌های سه بعدی با استفاده از بلندر| Low Poly Worlds for Absolute Blender Beginners 2024, ژوئن
Anonim
استفاده از بلندر برای ایجاد مدل های Java3D
استفاده از بلندر برای ایجاد مدل های Java3D

اگر شما یک برنامه نویس جاوا هستید ، احتمالاً می خواهید در مقطعی برنامه ریزی سه بعدی داشته باشید. اما چگونه؟ خوب می توانید از Java3D استفاده کنید و به آرامی در هر نقطه در یک چند ضلعی سه بعدی تایپ کنید (سعی کنید به من اعتماد کنید ایده بدی است) ، یا می توانید از Blender (https://blender.org) یک برنامه مدل سازی سه بعدی رایگان و منبع باز همراه با اسکریپتی به نام Blend2Java (https://sourceforge.net/projects/blend2java/). با این حال ، مستندات مربوط به Blend2Java تقریباً وجود ندارد ، به همین دلیل است که من اینجا نشسته ام و این را می نویسم.

مرحله 1: برنامه ها را بارگیری کنید

شما به Blender (https://blender.org) و Blend2Java (https://sourceforge.net/projects/blend2java/) نیاز دارید. خوب ، پس از تهیه هر دو ، یک مدل ساده (یا فقط با استفاده از مکعب استاندارد) در بلندر شروع کنید.

مرحله 2: مدل خود را به XML صادر کنید

مدل خود را به XML صادر کنید
مدل خود را به XML صادر کنید

پس از تهیه مدلی که می خواهید از آن در Blender استفاده کنید حالت ویرایش را باز کرده و کلید "a" را برای انتخاب همه نقاط فشار دهید. در پانل پایین ویرایشگر متن را انتخاب کنید. یک فایل جدید در ویرایشگر متن باز کنید. فایل blend2java.py را که بارگیری کرده اید باز کنید. اجرا کنید. در حال حاضر شیء شما باید در. XML هر کجا که آن را ذخیره کرده اید باشد (در صورت وجود و پیام خطا shure شما فقط 1 ماده برای شی دارید). تغییر نام شیء (نام عجیبی خواهد داشت).

مرحله 3: وارد کردن شی به جاوا

وارد کردن شی به جاوا
وارد کردن شی به جاوا

Shape3D fred = null؛ سعی کنید {XMLDecoder e = 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) ؛ این را در هر کد سه بعدی وارد کنید یا از کل کد در اینجا استفاده کنید java.io.*؛ java.beans. XMLDecoder را وارد کنید ؛ java.applet. Applet را وارد کنید؛ awt.event.*؛ import com.sun.j3d.utils.applet. MainFrame؛ import com.sun.j3d.utils.universe.*؛ واردات javax.media.j3d.*؛ واردات javax.vecmath.*؛ واردات جاوا.applet. Applet ؛ واردات java.awt. BorderLayout ؛ واردات java.awt. Frame ؛ واردات com.sun.j3d.utils.applet. MainFrame ؛ واردات com.sun.j3d.utils.geometry. ColorCube ؛ واردات com.sun. j3d.utils.universe.*؛ وارد com.sun.j3d.utils.behaviors.mouse.*؛ واردات javax.media.j3d.*؛ واردات javax.vecmath.*؛ واردات java.awt.event.*؛ وارد کردن جاوا.util. Enumeration ؛ کلاس عمومی MouseBehaviorApp Applet را گسترش می دهد {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 (fred)؛ 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 ()؛ بازگشت objRoot؛ } public MouseBehaviorApp () {setLayout (جدید BorderLayout ()) ؛ Canvas3D canvas3D = جدید Canvas3D (SimpleUniverse.getPreferredConfiguration ()) ؛ افزودن ("مرکز" ، canvas3D) ؛ صحنه BranchGroup = createSceneGraph ()؛ SimpleUniverse simpleU = جدید SimpleUniverse (canvas3D) ؛ simpleU.getViewingPlatform (). setNominalViewingTransform ()؛ simpleU.addBranchGraph (صحنه) ؛ } public static void main (String args) {Frame frame = new MainFrame (جدید MouseBehaviorApp () ، 256 ، 256) ؛ }} از این برنامه برای یک برنامه کامل استفاده کنید! کار شما تمام شده است! و سپس می گویید "حالا چی"؟ من هیچ نظری ندارم! من یک ماه پیش جاوا یاد گرفتم lol!

توصیه شده: