ایک 3D عنصر آپ کے پروجیکٹ میں تین جہتی اشیاء کی نمائندگی کرتا ہے، بشمول درآمد کردہ 3D ماڈلز، بنیادی جیومیٹری پرائمٹیوز، 2D شکلوں سے نکالی گئی شکلیں، 3D متن، اور بولین آپریشن کے نتائج۔
3D عناصر بنیادی عنصر اور نظریہ عنصر سے مشترکہ فیلڈز کا اشتراک کرتے ہیں، جبکہ اضافی 3D مخصوص خصوصیات بھی متعارف کراتے ہیں۔
| پراپ | قسم | ضروری | مثال | قدر کی حد | تفصیل |
|---|---|---|---|---|---|
| type | string | true | - | 3D | عنصر کی قسم۔ 3D عناصر کے لیے، یہ ہمیشہ "3D" ہوتا ہے۔ |
| sourceId | string | false | - | - | 3D ماڈل یا جیومیٹری وسائل کے لیے اندرونی شناخت کنندہ۔ |
| ext | string | false | - | glb | gltf | fbx | obj | geometry | primitive | text3d | parametric | curve | 3D عنصر کی فائل کی توسیع یا نوڈ کی قسم۔ |
| externalUrl | string | false | - | - | بیرونی glTF/glb ماڈلز کو لوڈ کرنے کے لیے اختیاری URL۔ انجن ماڈل کو حاصل اور کیش کرے گا۔ |
| nodeType | string | false | - | primitive | geometry | text3d | import | model | parametric | curve | 3D نوڈ کی قسم۔ اضافی خصوصیات کی ساخت کا تعین کرتا ہے۔ |
| category | string | false | - | For primitive/geometry: basic | polyhedron. For parametric: extrusion | lathe | sweep. For curve: helix | torusKnot | custom | 3D نوڈ کی ذیلی قسم۔ دستیاب قیمتیں nodeType پر منحصر ہیں۔ |
| geometryType | string | false | - | - | بنیادی جیومیٹری کی قسم۔ نیچے "جیومیٹری کی اقسام" کے سیکشن کو دیکھیں۔ |
| originalWidth | number | false | - | - | دنیا کی اکائیوں میں 3D ماڈل کی اصل چوڑائی۔ |
| originalHeight | number | false | - | - | دنیا کی اکائیوں میں 3D ماڈل کی اصل اونچائی۔ |
| originalDepth | number | false | - | - | دنیا کی اکائیوں میں 3D ماڈل کی اصل گہرائی۔ |
| animation | object | false | - | - | انیمیشن کے ساتھ glTF ماڈلز کے لیے انیمیشن کی ترتیبات۔ currentIndex، speed، اور loop کی خصوصیات پر مشتمل ہے۔ |
معیاری 2D تبدیلی کی خصوصیات (x، y، گردش، scaleX، scaleY) کے علاوہ، 3D عناصر تین جہتی پوزیشننگ اور گردش کے لیے اضافی تبدیلی کی خصوصیات کی حمایت کرتے ہیں:
| پراپ | قسم | ضروری | مثال | قدر کی حد | تفصیل |
|---|---|---|---|---|---|
| z | number | false | - | - | 3D جگہ میں عنصر کی گہرائی کی پوزیشن۔ اکائیوں کو پکسلز کے ساتھ ہم آہنگ کیا جاتا ہے، جہاں z=0 کینوس کے طیارے کے مطابق ہوتا ہے۔ |
| rotationX | number | false | - | - | X-axis کے گرد گردش، ڈگری میں۔ |
| rotationY | number | false | - | - | Y-axis کے گرد گردش، ڈگری میں۔ |
| scaleZ | number | false | - | > 0 | Z-axis کے ساتھ ساتھ اسکیلنگ کا عنصر۔ 1 سے زیادہ کی قیمتیں بڑھاتی ہیں، 0 اور 1 کے درمیان کی قیمتیں سکڑتی ہیں۔ |
geometryType فیلڈ بنیادی 3D جیومیٹری کی قسم کی وضاحت کرتی ہے۔ دستیاب اقسام زمرے کے لحاظ سے منظم کی گئی ہیں (جب nodeType "geometry" یا "primitive" ہو تو category فیلڈ کے ذریعے مخصوص):
نوٹ:
nodeType: "primitive""geometry"کا ایک متبادل ہے۔ دونوں کی حمایت کی جاتی ہے اور ایک جیسا برتاؤ کرتی ہیں۔
بنیادی شکلیں (category: "basic"):
cube - چھہ رخا خانہsphere - گول جیومیٹریcylinder - سلنڈریک جیومیٹریcone - مخروطی جیومیٹریtorus - ڈونٹ کی شکل کی جیومیٹریcapsule - گولی کی شکل کی جیومیٹریdisc - چپٹا گول ڈسکپالی ہیڈران (category: "polyhedron"):
pyramid - چار رخا ہرمoctahedron - آٹھ چہرے والا پالی ہیڈرانicosahedron - بیس چہرے والا پالی ہیڈرانdodecahedron - بارہ چہرے والا پالی ہیڈرانhexPrism - چھہ رخا پرسمtriangle - مثلثی پرسمپیرا میٹرک نوڈز (nodeType: "parametric") جیومیٹری کو پروسیجرلی پیدا کرتے ہیں:
ایکسٹروژن (category: "extrusion"):
لیتھ (category: "lathe"):
سویپ (category: "sweep"):
کرو نوڈز (nodeType: "curve") 3D کرو اور راستے بناتے ہیں:
ہیلیکس (category: "helix"):
ٹوروس نوٹ (category: "torusKnot"):
حسب ضرورت (category: "custom"):
ٹوپولوجی کی کارروائیاں (بولین، ارے، آئینہ، مرکب) ایڈیٹر کے اندر کی جاتی ہیں اور معیاری جیومیٹری آؤٹ پٹ پیدا کرتی ہیں۔ یہ کارروائیاں ایڈٹ کے وقت لاگو کی جاتی ہیں اور رینڈر API میں خصوصی ہینڈلنگ کی ضرورت نہیں ہوتی۔
3D عناصر 2D شکلوں کو نکال کر بنائے جا سکتے ہیں۔ جب آپ ایڈیٹر میں 2D شکل کے عنصر کو 3D میں تبدیل کرتے ہیں، تو یہ نئے type: "3D" عنصر کے ساتھ اضافی فیلڈز پیدا کرتا ہے:
| پراپ | قسم | ضروری | مثال | قدر کی حد | تفصیل |
|---|---|---|---|---|---|
| extrusionSource | object | false | - | - | 3D ایکسٹروژن بنانے کے لیے استعمال ہونے والے اصل 2D شکل کے ڈیٹا۔ مکمل ShapeNodeData پر مشتمل ہے۔ |
| shapeSizeX | number | false | - | - | نکالی گئی شکل کی چوڑائی، پکسلز میں۔ |
| shapeSizeY | number | false | - | - | نکالی گئی شکل کی اونچائی، پکسلز میں۔ |
| shapeExtrusion | number | false | - | - | Z-axis کے ساتھ نکالنے کی گہرائی، پکسلز میں۔ |
| shapeCorner | string | false | - | round | chamfer | straight | نکالی گئی شکلوں کے لیے کونے کی قسم۔ |
| shapeRoundnessSmooth | number | false | - | 0 - 1 | گول کونے کی ہمواری (0-1)۔ |
| shapeRoundnessArc | number | false | - | - | گول کونے کے لیے قوس کی شعاع۔ |
| shapeBevel | number | false | - | - | کناروں کے لیے بیول کی گہرائی۔ |
| shapeBevelSides | number | false | - | - | بیول کے کناروں کے لیے حصوں کی تعداد۔ |
3D عناصر بھی گہرائی اور بیولنگ کے ساتھ تین جہتی متن کی نمائندگی کر سکتے ہیں:
| پراپ | قسم | ضروری | مثال | قدر کی حد | تفصیل |
|---|---|---|---|---|---|
| textContent | string | false | - | - | 3D میں رینڈر کرنے کے لیے متن کا مواد۔ |
| textStyle3D | object | false | - | - | متن کی اسٹائلنگ کی خصوصیات (فونٹ، سائز، وزن، وغیرہ)۔ کچھ 2D متن کے طرز کے فیلڈز کو دوبارہ استعمال کرتا ہے۔ |
| textDepth | number | false | - | - | 3D متن کی ایکسٹروژن کی گہرائی۔ |
| textBevelSize | number | false | - | - | متن کے کناروں پر بیول کا سائز۔ |
| textBevelSegments | number | false | - | - | متن کی بیولنگ کے لیے حصوں کی تعداد۔ |
| textCurveSegments | number | false | - | - | متن کی کرو کے لیے حصوں کی تعداد۔ |
3D عناصر ایک PBR (فزیکلی بیسڈ رینڈرنگ) مواد کے نظام کا استعمال کرتے ہیں جس میں جامع ٹیکسچر کی حمایت ہوتی ہے:
| پراپ | قسم | ضروری | مثال | قدر کی حد | تفصیل |
|---|---|---|---|---|---|
| material | object | false | - | - | مکمل مواد کی تشکیل بشمول PBR خصوصیات اور ٹیکسچر میپس۔ |
material آبجیکٹ میں شامل ہے:
physicalMaterialData - PBR مواد کی خصوصیات:
color (string) - بنیادی رنگ ہیکس فارمیٹ میں، ڈیفالٹ: '#818cf8'roughness (number) - سطح کی کھردری، 0-1، ڈیفالٹ: 0.4metalness (number) - دھاتی خصوصیت، 0-1، ڈیفالٹ: 0.0opacity (number) - مواد کی شفافیت، 0-1، ڈیفالٹ: 1.0transmission (number) - شیشے جیسی مواد کے لیے روشنی کی ترسیل، 0-1، ڈیفالٹ: 0.0ior (number) - انڈیکس آف ریفریکشن، عام طور پر 1.0-2.5، ڈیفالٹ: 1.5clearcoat (number) - کلیر کوٹنگ کی شدت، 0-1، ڈیفالٹ: 0.0clearcoatRoughness (number) - کلیر کوٹ کی کھردری، 0-1، ڈیفالٹ: 0.0sheen (number) - کپڑے جیسا چمکدار اثر، 0-1، ڈیفالٹ: 0.0sheenRoughness (number) - چمکدار کھردری، 0-1، ڈیفالٹ: 0.0sheenColor (string) - چمکدار رنگthickness (number) - ترسیل کے لیے مواد کی موٹائیmaterialXPath (string) - اختیاری MaterialX پری سیٹ راستہ:
Texture Maps - مواد کا آبجیکٹ ٹیکسچر میپ URLs پر مشتمل ہو سکتا ہے:
colorMap - بنیادی رنگ/ڈفیوز ٹیکسچرnormalMap - سطح کی تفصیل کے لیے نارمل میپroughnessMap - کھردری ٹیکسچرmetalnessMap - دھاتی ٹیکسچرaoMap - امبیئنٹ اوکلوژن میپemissiveMap - ایمیسیو/چمکدار ٹیکسچرٹیکسچر میپس کو بہترین کارکردگی کے لیے TSL (Three.js Shading Language) کی فعالیتوں کا استعمال کرتے ہوئے لاگو کیا جاتا ہے۔
3D عناصر جن میں nodeType: "model" یا nodeType: "import" شامل ہیں، درآمد کردہ 3D ماڈلز کی نمائندگی کرتے ہیں:
نوٹ:
nodeType: "import""model"کا ایک متبادل ہے۔ دونوں کی حمایت کی جاتی ہے اور ایک جیسا برتاؤ کرتی ہیں۔
source.url کا استعمال کرتے ہوئے دور دراز glTF/glb/FBX فائل کا URL مخصوص کریںsourceId کا استعمال کرتے ہوئے حاصل اور کیش کرے گاanimation.currentIndex کا استعمال کرتے ہوئے منتخب کریں کہ کون سی انیمیشن چلانی ہےcurrentIndex (number)، speed (number، ڈیفالٹ 1.0)، loop (boolean، ڈیفالٹ true)sizeParams میں ماڈل کے ابعاد کے لیے width، height، depth شامل ہیں
{
"id": "3d-cube-001",
"type": "3D",
"start": 0,
"duration": 5,
"trackIndex": 0,
"x": 540,
"y": 540,
"z": 0,
"width": 200,
"height": 200,
"anchorX": 100,
"anchorY": 100,
"rotation": 0,
"rotationX": 30,
"rotationY": 45,
"scaleX": 1,
"scaleY": 1,
"scaleZ": 1,
"alpha": 1,
"ext": "geometry",
"nodeType": "geometry",
"category": "basic",
"geometryType": "cube",
"material": {
"physicalMaterialData": {
"color": "#4A90E2",
"roughness": 0.4,
"metalness": 0.0
}
}
}
{
"id": "3d-extrusion-001",
"type": "3D",
"start": 0,
"duration": 5,
"trackIndex": 0,
"x": 540,
"y": 540,
"z": 0,
"width": 300,
"height": 300,
"anchorX": 150,
"anchorY": 150,
"rotation": 0,
"rotationX": 0,
"rotationY": 0,
"scaleX": 1,
"scaleY": 1,
"scaleZ": 1,
"alpha": 1,
"ext": "parametric",
"nodeType": "parametric",
"category": "extrusion",
"shapeSizeX": 300,
"shapeSizeY": 300,
"shapeExtrusion": 100,
"material": {
"physicalMaterialData": {
"color": "#FF6B6B",
"roughness": 0.3,
"metalness": 0.1
}
},
"extrusionSource": {
"shapeType": "SHAPE_STAR",
"starPoints": 5,
"starInnerRadius": 0.4
}
}
{
"id": "3d-model-001",
"type": "3D",
"start": 0,
"duration": 10,
"trackIndex": 0,
"x": 540,
"y": 540,
"z": -200,
"width": 400,
"height": 400,
"anchorX": 200,
"anchorY": 200,
"rotation": 0,
"rotationX": 0,
"rotationY": 0,
"scaleX": 1,
"scaleY": 1,
"scaleZ": 1,
"alpha": 1,
"ext": "glb",
"nodeType": "model",
"sourceId": "cached-model-123",
"source": {
"url": "https://example.com/models/animated_character.glb"
},
"animation": {
"currentIndex": 0,
"speed": 1.0,
"loop": true
},
"sizeParams": {
"width": 2,
"height": 2,
"depth": 2
},
"originalWidth": 2,
"originalHeight": 2,
"originalDepth": 2
}