Ano ang isang OBJ File?
Ang OBJ na mga file ay ginagamit ng Advanced Visualizer application ng Wavefront upang tukuyin at iimbak ang mga geometric na bagay. Ang pabalik at pasulong na pagpapadala ng geometric na data ay ginawang posible sa pamamagitan ng mga OBJ file. Parehong polygonal geometry tulad ng mga punto, linya, texture vertices, mukha at free-form na geometry (mga curve at surface) ay sinusuportahan ng OBJ na format. Hindi sinusuportahan ng format na ito ang animation o impormasyong nauugnay sa liwanag at posisyon ng mga eksena.
Ang isang OBJ file ay karaniwang isang end product ng 3D modeling process na nabuo ng isang CAD (Computer Aided Design). Ang default na pagkakasunud-sunod upang mag-imbak ng mga vertice ay counter-clockwise na umiiwas sa tahasang pagpapahayag ng mga normal na mukha. Bagama’t ang mga file ng OBJ ay nagdedeklara ng scale na impormasyon sa isang linya ng komento ngunit walang mga yunit na idineklara para sa mga coordinate ng OBJ.
Kasaysayan ng 3D OBJ Format
Gumawa ang Wavefront Technologies ng OBJ file format para sa Advanced Visualizer application nito upang mag-imbak ng mga geometric na bagay at 3D na data. Ang bersyon 2.11 nito ay pinalitan ng bagong dokumentado na bersyon 3. Bukas ang format ng file at ipinatupad ng ibang mga vendor para sa kanilang 3D graphics application. Ang Wavefront Technologies ay pinananatiling open source at neutral ang format ng file na ito.
OBJ File Format
Sa mga 3D na bagay, ang pag-encode ng surface geometry ay isang mapaghamong trabaho na napakahusay na nagawa ng format ng OBJ file. Ang format na ito ay medyo maraming nalalaman dahil nag-aalok ito ng ilang mga pagpipilian upang i-encode ang geometry sa ibabaw. Ang sumusunod ay tatlong pinapayagang mga format na mayroong sariling mga benepisyo at pagkukulang:
Tessellation na may mga Polygonal na Mukha
Pinapadali ng OBJ file format ang user na mag-tessellate ng 3D model surface gamit ang simple o kumplikadong mga geometric na hugis. Para sa surface geometry encoding ng isang modelo, iniimbak ng isang file ang vertices at normal sa bawat polygon. Bagama’t ang tessellation ay nagpapataas ng kagaspangan sa modelo, ngunit ito ay kinakailangan upang matuklasan ang tamang balanse sa pagitan ng laki ng isang file at sa kalidad ng pag-print nito.
Free-form na Curve
Ang OBJ file format ay nagbibigay-daan sa tinukoy ng user na free-form surface curve na tukuyin ang surface geometry ng isang modelo. Dahil mas kumplikado ang mga free-form na curve kaysa sa mga polygonal na mukha dahil, na may kaunting mga parameter ng matematika, ang mga curved na linya ay maaaring pinakamahusay na matukoy ng mga freeform na curve. Samakatuwid, na may mas kaunting data kumpara sa mga polygonal tessellation, ang mga free-form na curve ay ginagamit upang bumuo ng mataas na kalidad na pag-encode ng anumang 3D na modelo nang hindi pinalawak ang laki ng file.
Mga Free-form na Ibabaw
Tinutukoy din ng format ng OBJ file ang tiling ng surface geometry na may mga free-form surface patch. Ang ganitong uri ng freeform surface patch (NURBS) ay napaka-angkop para sa mga ibabaw na walang matibay na sukat ng radial tulad ng katawan ng isang trak, ang mga pakpak ng helicopter o ang katawan ng barko. Ang paggamit ng mga freeform na ibabaw ay lubhang kapaki-pakinabang dahil mas tumpak ang mga ito upang mapanatiling mas maliit ang mga sukat ng file sa mas mataas na katumpakan. Ang mga ibabaw na ito ay mahalagang bahagi ng industriya ng aerospace at automotive kung saan ang mababang katumpakan ay hindi mapagpatawad.
Ang mga sumusunod na keyword ay inayos ayon sa uri ng data upang tukuyin ang geometry sa ibabaw.
Elements | Free-form curve/surface body statements | Free-form curve/surface attributes |
---|---|---|
p | Point | parm |
l | Line | trim |
f | Face | hole |
curv | Curve | scrv |
curv2 | 2D curve | sp |
surf | Surface | end |
Display/render attributes | g | Group name |
bevel | Bevel interpolation | shadow_obj |
lod | Level of detail | trace_obj |
d_interp | Dissolve interpolation | ctech |
c_interp | Color interpolation | stech |
usemtl | Material name | mtllib |
Geometric vertices | ||
v | Geometric vertices | vn |
vt | Texture vertices | vp |
Kulay at Texture
Ang OBJ file ay nagbibigay-daan sa impormasyon ng kulay at texture na mag-imbak sa isang nauugnay na format ng file na tinatawag na Material Template Library (MTL). Nagre-render ang mga multi-color na geometric na modelo gamit ang dalawang file na ito nang magkasama. Ang mga MTL file ay batay sa ASCII at pinapadali ang pag-render ng computer sa pamamagitan ng paglalarawan ng mga katangian ng pagpapakita ng liwanag ng isang surface gamit ang modelo ng Phong reflection. Ang pamantayan ay pinagtibay ng isang malaking bilang ng mga software vendor na sinasamantala ito para sa pagpapalitan ng mga materyales. Medyo luma na ang MTL format dahil sa walang suporta sa mga pinakabagong teknolohiya gaya ng specular at parallax na mga mapa.