Aspose.3D FOSS for Java

อ้างอิง API สำหรับ aspose-3d-foss 26.1.0 (Java 21+, ใบอนุญาต MIT).

คลาสทั้งหมดอยู่ใน com.aspose.threed แพ็กเกจราก. การนำเข้ารากคือ:

import com.aspose.threed.*;

โครงสร้างแพ็กเกจ: คลาสสาธารณะเกือบทั้งหมดอยู่ใน com.aspose.threed. ซับแพ็กเกจเดียวที่มักใช้คือ com.aspose.threed.shading (สำหรับ PbrMaterial). ส่วน com.aspose.threed.formats ซับแพ็กเกจนี้มีตัวนำเข้า/ส่งออกภายในและโดยปกติจะไม่ถูกนำเข้าโดยตรง.

Java รูปแบบการตั้งชื่อ: คุณสมบัติทั้งหมดใช้เมธอด getter/setter ตัวอย่างเช่น ใช้ node.getTransform() แทนที่ node.transform, และ transform.setTranslation(...) แทนที่ transform.translation = .... โปรดทราบว่า Vector3, Vector4, Quaternion, Matrix4, และ FVector ประเภทใช้ ฟิลด์สาธารณะ (v.x, v.y, v.z) แทนการใช้ getter สำหรับการเข้าถึงคอมโพเนนต์.


กราฟฉากหลัก

ExampleExample
Sceneคอนเทนเนอร์ระดับบนสุดสำหรับข้อมูลฉาก 3D ทั้งหมด. เก็บโหนดราก, เมตาดาต้าแอสเซ็ต, และคลิปแอนิเมชัน. เปิดเผย fromFile(), open(), และ save() เป็นจุดเข้าหลักของ I/O.
Nodeโหนดที่มีชื่อในลำดับชั้นของฉาก มีรายการโหนดลูกและรายการของอ็อบเจกต์ที่แนบ Entity อ็อบเจกต์เช่นเมช, กล้อง, และไฟส่องสว่าง บรรทุกข้อมูลท้องถิ่น Transform.
Entityคลาสฐานเชิงนามธรรมสำหรับอ็อบเจกต์ทั้งหมดที่สามารถแนบเข้ากับ Node. ให้ชื่อและเอกลักษณ์ แต่ไม่มีรูปทรงเรขาคณิตของตนเอง.
SceneObjectคลาสฐานที่ใช้ร่วมกันโดย Node และ Entity. ให้ส่วนต่อประสานการรวบรวมคุณสมบัติที่ใช้สำหรับเมตาดาต้ากำหนดโดยผู้ใช้.
A3DObjectคลาสฐานรากสำหรับอ็อบเจกต์ที่จัดการโดย Aspose.3D ทั้งหมด เปิดเผยคุณสมบัติชื่อและ Properties คอลเลกชัน.
INamedObjectส่วนต่อประสานที่รับประกันว่า getName() เมธอด จะถูกนำไปใช้โดย Node, Entity, และประเภทตัวบรรยายที่เฉพาะเจาะจงต่อรูปแบบหลายประเภท.

เรขาคณิตและเมช

ExampleExample
Meshเอนทิตีเมชหลายเหลี่ยม. เก็บจุดควบคุม (ตำแหน่งเวอร์เท็กซ์เป็น Vector4), รายการหน้าตัวหลายเหลี่ยม (รายการของดัชนีจุดควบคุม), และชั้นองค์ประกอบเวอร์เท็กซ์ (นอร์มัล, UV, สีของเวอร์เท็กซ์).
Geometryฐานเชิงนามธรรมสำหรับประเภทเรขาคณิตแบบเมช. กำหนดอาเรย์จุดควบคุมและคอลเลกชันของ VertexElement ชั้น. Mesh สืบทอดจาก Geometry.
VertexElementฐานเชิงนามธรรมสำหรับชั้นข้อมูลที่แนบกับเรขาคณิต (นอร์มัล, UV, สี ฯลฯ). มี getMappingMode(), getReferenceMode(), และรายการข้อมูล.
VertexElementNormalเก็บเวกเตอร์นอร์มัลหนึ่งตัวต่อเวอร์เท็กซ์หรือต่อมุมของหลายเหลี่ยม, ขึ้นอยู่กับโหมดการแมป. ค่าข้อมูลคือ Vector4 อินสแตนซ์ที่มี w ไม่ได้ใช้.
VertexElementUVเก็บคู่พิกัดเทกซ์เจอร์ (Vector2) ต่อเวอร์เท็กซ์หรือต่อมุมของหลายเหลี่ยม. เมชอาจมีหลายชั้น UV สำหรับช่องเทกซ์เจอร์ที่แตกต่างกัน.
VertexElementVertexColorจัดเก็บข้อมูลสี RGBA ต่อเวอร์เท็กซ์หรือต่อมุมเป็น Vector4 (r, g, b, a ในช่วง 0–1).
VertexElementTypeEnumeration ระบุบทบาทเชิงความหมายของชั้นองค์ประกอบเวอร์เท็กซ์: NORMAL, UV, VERTEX_COLOR, และอื่น ๆ. ส่งค่าต่าง ๆ ไปยัง Mesh.getElement().
MappingModeEnumeration ควบคุมว่า primitive ใดที่ค่าขององค์ประกอบเวอร์เท็กซ์จะถูกแมปไปยัง: CONTROL_POINT, POLYGON_VERTEX, หรือ POLYGON.
ReferenceModeEnumeration ควบคุมวิธีการทำดัชนีของค่า: DIRECT (หนึ่งค่าต่อ primitive การแมป) หรือ INDEX_TO_DIRECT (อาเรย์ค่าพร้อมอาเรย์ดัชนีแยกต่างหาก).

การแปลงและเชิงพื้นที่

ExampleExample
Transformการแปลงเชิงพื้นที่ท้องถิ่นที่แนบกับ Node. ให้ translation, rotation (เป็น Quaternion), และส่วนประกอบ scale, พร้อมเมธอดสะดวกสำหรับมุม Euler.
GlobalTransformมุมมองแบบอ่านอย่างเดียวของการแปลงตำแหน่งในอวกาศของโหนดหลังจากรวมการแปลงของโหนดบรรพบุรุษทั้งหมด เข้าถึงได้ผ่าน node.getGlobalTransform().
AssetInfoบล็อกเมตาดาต้าที่แนบกับ Scene. เก็บชื่อแอปพลิเคชันที่ใช้สร้าง, ชื่อหน่วย, ตัวคูณสเกลของหน่วย, คำจำกัดความของแกนระบบพิกัด, และเวลาสร้าง/แก้ไข.

วัสดุและการแรเงา

ExampleExample
Materialคลาสฐานแบบนามธรรมสำหรับประเภทวัสดุทั้งหมด ให้ชื่อและคอลเลกชันของคุณสมบัติสำหรับพารามิเตอร์เชิงตัวเลขและสี.
PbrMaterialวัสดุ Physically Based Rendering (PBR) เก็บค่า albedo, ตัวคูณโลหะ, ตัวคูณความหยาบ, สีเรืองแสง, ความโปร่งใส, และเทกเจอร์ที่เกี่ยวข้อง ใช้โดย glTF 2.0 และรูปแบบอื่นที่รองรับ PBR การนำเข้า: com.aspose.threed.shading.PbrMaterial.

Example

ExampleExample
Cameraเอนทิตีกล้อง สืบทอดจาก Entity. ไม่มีคุณสมบัติเฉพาะรูปแบบที่เปิดเผยในรุ่น Java FOSS นอกเหนือจากชื่อและคอลเลกชันคุณสมบัติที่สืบทอดมา แนบกับ Node เพื่อกำหนดการแปลงมุมมอง.

หมายเหตุ: Example Light คลาสนี้ไม่พร้อมใช้งานในรุ่น Java ของ Aspose.3D FOSS ข้อมูลแสงของฉากจากไฟล์ที่นำเข้าเก็บเป็นแบบทั่วไป Entity อ็อบเจกต์.


ยูทิลิตี้คณิตศาสตร์

ExampleExample
Vector2เวกเตอร์ 2 ส่วนแบบ double-precision (x, y). ใช้สำหรับพิกัดเทกเจอร์ UV.
Vector3เวกเตอร์ 3 ส่วนประกอบแบบ Double-precision (x, y, z). ใช้สำหรับตำแหน่ง, ทิศทาง, และสเกล.
Vector4เวกเตอร์ 4 ส่วนประกอบแบบ Double-precision (x, y, z, w). ใช้สำหรับจุดควบคุม (ตำแหน่งเชิงเนื้อเดียว) และข้อมูลปกติ.
FVector3เวกเตอร์ float 3 ส่วนประกอบแบบ Single-precision. ปรากฏในอาเรย์ข้อมูลองค์ประกอบเวอร์เท็กซ์สำหรับนอร์มอลและแทนเจนท์.
FVector4เวกเตอร์ float 4 ส่วนประกอบแบบ Single-precision. ประเภทการจัดเก็บของ VertexElementFVector ข้อมูล.
Quaternionควอเทอร์เนียนหน่วยสำหรับแสดงการหมุน (w, x, y, z). ใช้โดย Transform.getRotation().
Matrix44x4 double-precision transformation matrix. Used for world/local transform computations and can be constructed from TRS decompositions.
BoundingBoxกล่องขอบเขตที่จัดแนวแกนที่กำหนดโดย getMinimum() และ getMaximum() Vector3 มุม. ใช้สำหรับการสืบค้นเชิงพื้นที่และตัวช่วยการตัดเฟรสตัม.

Example

ExampleExample
AnimationClipคอนเทนเนอร์ที่ตั้งชื่อสำหรับช่วงแอนิเมชัน A Scene อาจบรรจุคลิปหลายคลิป (เช่น “Walk”, “Run”). โครงสร้างการประกาศ — ข้อมูลคีย์เฟรมและการเล่นยังไม่ได้ทำการ implement.

การอ่าน/เขียนรูปแบบ

ExampleExample
Scene.fromFile(path)เมธอดแบบสแตติก เปิดไฟล์ที่ path, ตรวจจับรูปแบบจากส่วนขยาย และคืนค่าอ็อบเจกต์ที่เติมข้อมูลแล้ว Scene. จะโยนข้อผิดพลาดเมื่อไม่พบไฟล์หรือรูปแบบไม่รองรับ.
Scene.open(path, options)เมธอดอินสแตนซ์ เปิดไฟล์เข้าสู่ Scene อินสแตนซ์, โดยอาจใช้รูปแบบเฉพาะ LoadOptions ซับคลาส.
Scene.save(path, options)เมธอดอินสแตนซ์. ทำการซีเรียลไลซ์ฉากเป็น path โดยใช้รูปแบบที่สรุปจากส่วนขยาย, โดยอาจใช้รูปแบบที่เฉพาะเจาะจงสำหรับรูปแบบนั้น SaveOptions คลาสย่อย.
FileFormatทะเบียนของรูปแบบไฟล์ที่รองรับ. มีรายการเช่น FileFormat.WAVEFRONT_OBJ(), FileFormat.GLTF2(), FileFormat.FBX7400ASCII().
IOServiceการแยกนามธรรม I/O ภายในที่ใช้โดยตัวนำเข้าและส่งออกรูปแบบ. โดยทั่วไปไม่ได้ใช้โดยโค้ดแอปพลิเคชันโดยตรง.
LoadOptionsคลาสฐานสำหรับอ็อบเจ็กต์ตัวเลือกการโหลดที่เฉพาะเจาะจงต่อรูปแบบทั้งหมด. ถูกสืบทอดโดย ObjLoadOptions, StlLoadOptions, GltfLoadOptions, FbxLoadOptions.
SaveOptionsคลาสฐานสำหรับอ็อบเจ็กต์ตัวเลือกการบันทึกที่เฉพาะเจาะจงต่อรูปแบบทั้งหมด. ถูกสืบทอดโดย ObjSaveOptions, StlSaveOptions, GltfSaveOptions.

รูปแบบ OBJ

ExampleExample
ObjImporterคลาสนำเข้าภายในที่ทำการพาร์สไฟล์ Wavefront OBJ และ MTL. ถูกเรียกโดยอัตโนมัติโดย Scene.fromFile() สำหรับ .obj ส่วนขยาย.
ObjLoadOptionsตัวเลือกการโหลดสำหรับไฟล์ Wavefront OBJ. คุณสมบัติหลัก: setFlipCoordinateSystem(), setScale(), setEnableMaterials(), setNormalizeNormal().
ObjSaveOptionsตัวเลือกการบันทึกสำหรับผลลัพธ์ Wavefront OBJ. ควบคุมนอร์มัล, UV, การอ้างอิงวัสดุ, และโหมด point‑cloud.
ObjFormatตัวอธิบายรูปแบบสำหรับ Wavefront OBJ. เข้าถึงได้เป็น FileFormat.WAVEFRONT_OBJ().

รูปแบบ STL

ExampleExample
StlImporterตัวนำเข้าภายในที่อ่านไฟล์ STL ทั้งแบบไบนารีและ ASCII. ถูกเลือกโดยอัตโนมัติตามส่วนขยายไฟล์.
StlExporterตัวส่งออกภายในที่เขียนไฟล์ STL.
StlLoadOptionsตัวเลือกการโหลดสำหรับไฟล์ STL. รองรับ setFlipCoordinateSystem(), setRecalculateNormal(), และ setContentType().
StlSaveOptionsตัวเลือกการบันทึกสำหรับผลลัพธ์ STL. ควบคุม setFlipCoordinateSystem(), setAxisSystem(), และ setContentType().
StlFormatตัวอธิบายรูปแบบสำหรับ STL.

รูปแบบ glTF

ExampleExample
GltfLoadOptionsตัวเลือกการโหลดสำหรับไฟล์ glTF 2.0 และ GLB. คุณสมบัติหลัก: setFlipCoordinateSystem(), setPrettyPrint().
GltfSaveOptionsตัวเลือกการบันทึกสำหรับผลลัพธ์ glTF 2.0 และ GLB. ใช้ setContentType(FileContentType.BINARY) เพื่อสร้างที่เป็นอิสระ .glb แพ็กเกจ.
GltfFormatคำอธิบายรูปแบบสำหรับ glTF 2.0 / GLB. เข้าถึงได้เป็น FileFormat.GLTF2().

รูปแบบ FBX

FBX รองรับสำหรับ นำเข้าเท่านั้น. การส่งออกเป็น FBX ไม่พร้อมใช้งานในรุ่น Java FOSS edition.

ExampleExample
FbxLoadOptionsตัวเลือกการโหลดสำหรับไฟล์ FBX. คุณสมบัติหลัก: setFlipCoordinateSystem().
FbxFormatคำอธิบายรูปแบบสำหรับ FBX. เข้าถึงได้เป็น FileFormat.FBX7400ASCII().

Example

ExampleExample
Axisระบุดัชนีแกนพิกัด: X_AXIS, Y_AXIS, Z_AXIS. ใช้ในตัวเลือกการแมประบบพิกัดใหม่.
CoordinateSystemระบุแนวทางการกำหนด handedness: RIGHT_HANDED หรือ LEFT_HANDED.
TextureMappingระบุวิธีการแมปพื้นผิวไปยังเรขาคณิต: DIFFUSE, SPECULAR, EMISSIVE, NORMAL, AMBIENT, เป็นต้น.
BooleanOperationประเภทการดำเนินการบูลีน CSG: UNION, DIFFERENCE, INTERSECTION.

ระบบคุณสมบัติ

ExampleExample
Propertyคุณสมบัติที่มีชื่อและกำหนดประเภทเดียวบน A3DObject. เก็บชื่อคุณสมบัติ, ตัวบ่งชี้ประเภท, และค่าปัจจุบัน.
PropertyCollectionคอลเลกชันที่สามารถวนซ้ำของ Property อ็อบเจกต์ที่แนบกับ A3DObject. รองรับการค้นหาตามชื่อและการวนซ้ำผ่านคุณสมบัติที่กำหนดทั้งหมด.
CustomObjectอ็อบเจกต์ที่มีน้ำหนักเบา A3DObject คลาสย่อยที่มีเพียงชื่อและค่าใดค่าหนึ่งที่กำหนดเอง PropertyCollection. ใช้สำหรับเก็บเมตาดาต้าที่ผู้ใช้กำหนดบนอ็อบเจกต์ของฉาก.

ภาพและการเรนเดอร์

ExampleExample
ImageRenderOptionsตัวเลือกสำหรับการเรสเตอร์ไลเซชันด้วยซอฟต์แวร์เมื่อเรนเดอร์ฉากไปยังบัฟเฟอร์ภาพ. เก็บสีพื้นหลัง, ขนาดภาพ, และการอ้างอิงกล้อง. ฟีเจอร์นี้พร้อมใช้งานในการกำหนดค่าที่รองรับ.

ดูเพิ่มเติม

 ภาษาไทย