ນີ້ແມ່ນຄໍາສັ່ງ obj2mesh ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
obj2mesh - ສ້າງໄຟລ໌ຕາຫນ່າງ RADIANCE ທີ່ລວບລວມຈາກ Wavefront .OBJ input
ສະຫຼຸບສັງລວມ
obj2 mesh [ -a matfile ][ -l matlib ][ -n objlim ][ -r ສູງສຸດ ][ -w ] [ input.obj [
output.rtm ] ]
ລາຍລະອຽດ
Obj2 mesh ອ່ານໄຟລ໌ Wavefront .OBJ ຈາກ input.obj (ຫຼືການປ້ອນຂໍ້ມູນມາດຕະຖານ) ແລະລວບລວມ
ມັນເຂົ້າໄປໃນຕາຫນ່າງສາມຫຼ່ຽມ RADIANCE, ເຊິ່ງຖືກສົ່ງໄປຫາ output.rtm (ຫຼືຜົນຜະລິດມາດຕະຖານ). ໃດ
ລາຍລະອຽດເອກະສານ RADIANCE ລວມຜ່ານຫນຶ່ງຫຼືຫຼາຍກວ່າ -a ທາງເລືອກຈະຖືກລວບລວມແລະ
ເກັບຮັກສາໄວ້ໃນຕາຫນ່າງເຊັ່ນດຽວກັນ. ຖ້າ -l ທາງເລືອກແມ່ນນໍາໃຊ້ເພື່ອລະບຸໄຟລ໌ອຸປະກອນການ, ໄດ້
ຄົ້ນຫາສະຖານທີ່ຫ້ອງສະໝຸດ RADIANCE. ຕາໜ່າງນີ້ອາດຈະລວມຢູ່ໃນສາກ RADIANCE
ລາຍລະອຽດໂດຍຜ່ານການ ຕາຫນ່າງ primitive, ດັ່ງນັ້ນ:
mod mesh id
1+ output.rtm [xform args]
0
0
syntax ແລະ semantics ແມ່ນຄ້າຍຄືກັນກັບ RADIANCE ຕົວຢ່າງ ເດີມ. ຖ້າ ຕ້ານ is
"void", ຫຼັງຈາກນັ້ນວັດສະດຸຕາຫນ່າງທີ່ເກັບຮັກສາໄວ້ຈະຖືກນໍາໄປໃຊ້ໃນລະຫວ່າງການສະແດງຜົນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້
ວັດສະດຸທີ່ໄດ້ຮັບຈະຖືກທົດແທນໃນທຸກຫນ້າຕາຫນ່າງ.
ໄດ້ -n ທາງເລືອກລະບຸຂະຫນາດສູງສຸດທີ່ກໍານົດໄວ້ຫນ້າດິນສໍາລັບແຕ່ລະ voxel. ຕົວເລກໃຫຍ່ກວ່າ
ສົ່ງຜົນໃຫ້ການຜະລິດຕາຫນ່າງໄວຂຶ້ນ, ແຕ່ອາດຈະເຮັດໃຫ້ການສະແດງຜົນຊ້າກວ່າ. ຄ່າຕ່ຳກວ່າ 6 ແມ່ນ
ບໍ່ແນະນໍາ, ເນື່ອງຈາກວ່ານີ້ແມ່ນ valence ປານກາງສໍາລັບ mesh vertex (ຈໍານວນຂອງ
ໃບໜ້າທີ່ຢູ່ຕິດກັນ), ແລະຄ່າທີ່ນ້ອຍກວ່າຈະສົ່ງຜົນໃຫ້ພາກສ່ວນຍ່ອຍ octree ບໍ່ມີຈຸດໝາຍ. ໄດ້
ການຕັ້ງຄ່າເລີ່ມຕົ້ນແມ່ນ 9.
ໄດ້ -r ທາງເລືອກກໍານົດຄວາມລະອຽດສູງສຸດ octree. ນີ້ຄວນຈະໃຫຍ່ກວ່າຫຼື
ເທົ່າກັບອັດຕາສ່ວນຂອງກ່ອງຂອບຕາຫນ່າງກັບສາມຫຼ່ຽມນ້ອຍທີ່ສຸດ. ຄ່າເລີ່ມຕົ້ນແມ່ນ
16384.
ໄດ້ -w ທາງເລືອກສະກັດກັ້ນການເຕືອນ.
ເຖິງແມ່ນວ່າຮູບແບບໄຟລ໌ຕາຫນ່າງແມ່ນສອງ, ມັນຫມາຍຄວາມວ່າຈະ Portable ລະຫວ່າງເຄື່ອງຈັກ. ໄດ້
ຂໍ້ຈໍາກັດພຽງແຕ່ແມ່ນວ່າເຄື່ອງຈັກທີ່ມີຂະຫນາດຈໍານວນເຕັມທີ່ແຕກຕ່າງກັນຢ່າງຫຼວງຫຼາຍຈະບໍ່ເຮັດວຽກ
ຮ່ວມກັນ.
DETAILS
ຄໍາຖະແຫຼງ Wavefront ຕໍ່ໄປນີ້ແມ່ນເຂົ້າໃຈແລະລວບລວມໂດຍ obj2 mesh.
v x y z ສະຖານທີ່ຕັ້ງຈຸດ, ໃຫ້ໂດຍການປະສານງານ Cartesian ຂອງມັນ. ຕໍາແຫນ່ງຕາຫນ່າງສຸດທ້າຍ
ແນ່ນອນອາດຈະຖືກດັດແກ້ໂດຍການໂຕ້ຖຽງການຫັນປ່ຽນທີ່ມອບໃຫ້ ຕາຫນ່າງ primitive
ໃນລາຍລະອຽດຂອງ scene Radiance.
vn dx dy dz
vector ປົກກະຕິ vertex, ໃຫ້ໂດຍອົງປະກອບສາມທິດທາງຂອງມັນ, ເຊິ່ງຈະເປັນ
ປົກກະຕິໂດຍ obj2 mesh. ປົກກະຕິຈະໄດ້ຮັບການ interpolated ໃນໄລຍະຕາຫນ່າງ
rendering ເພື່ອຜະລິດຫນ້າກ້ຽງ. ຖ້າບໍ່ມີ vertex ປົກກະຕິ, the
ຕາຫນ່າງຈະປາກົດ tesselated. A zero length normal (ie, 0 0 0) ຈະສ້າງ a
syntax ຜິດພາດ.
vt u v ປະສານງານໂຄງສ້າງ vertex ທ້ອງຖິ່ນ. ພິກັດເຫຼົ່ານີ້ຈະຖືກ interpolated ແລະ
ຜ່ານໄປຫາຕົວແປ "Lu" ແລະ "Lv" ໃນລະຫວ່າງການສະແດງຜົນ. ຈຸດປະສານງານທ້ອງຖິ່ນສາມາດ
ຂະຫຍາຍໃນໄລຍະຄ່າທີ່ຕ້ອງການ.
usemtl ຊື່
ຊື່ວັດສະດຸ. ໃບຫນ້າຕໍ່ໄປນີ້ຈະໃຊ້ວັດສະດຸທີ່ມີຊື່, ເຊິ່ງແມ່ນ
ເອົາມາຈາກຄໍານິຍາມວັດສະດຸໃນ -a ໄຟລ໌ປ້ອນຂໍ້ມູນ.
g ນາມມະຍົດ ສະມາຄົມ. ໃບຫນ້າຕໍ່ໄປນີ້ແມ່ນກ່ຽວຂ້ອງກັບກຸ່ມທີ່ມີຊື່. ຖ້າ
ບໍ່ມີຄໍາຖະແຫຼງ "usemtl" ໄດ້ຖືກພົບ, ກຸ່ມປະຈຸບັນຖືກນໍາໃຊ້ສໍາລັບ
ຕົວລະບຸວັດສະດຸພື້ນຜິວ.
f v1/t1/n1 v2/t2/n2 v3/t3/n3 ..
ໃບໜ້າຮູບສີ່ຫຼ່ຽມ. ຈຸດຕັ້ງ polygon ແມ່ນລະບຸໄວ້ເປັນສາມດັດຊະນີທີ່ແຍກອອກ
slashes ('/'). ດັດຊະນີທໍາອິດແມ່ນສະຖານທີ່ vertex, ດັດຊະນີທີສອງແມ່ນ
ທ້ອງຖິ່ນ (u,v) ປະສານງານໂຄງສ້າງ, ແລະດັດຊະນີທີສາມແມ່ນດ້ານ vertex
ປົກກະຕິ. ຕົວຊີ້ວັດທາງບວກນັບຈາກຈຸດເລີ່ມຕົ້ນຂອງການປ້ອນຂໍ້ມູນ, ບ່ອນທີ່ທໍາອິດ
ຕໍາແຫນ່ງ vertex ( v statement) ແມ່ນຕົວເລກ 1, ແລະເຊັ່ນດຽວກັນສໍາລັບໂຄງສ້າງທໍາອິດ
ປະສານງານແລະພື້ນຜິວທໍາອິດປົກກະຕິ. ດັດຊະນີລົບນັບຖອຍຫຼັງຈາກ
ຕຳແໜ່ງປັດຈຸບັນຢູ່ໃນວັດສະດຸປ້ອນ, ບ່ອນທີ່ -1 ແມ່ນຈຸດສຸດທ້າຍທີ່ພົບ, -2
ແມ່ນອັນໜຶ່ງກ່ອນໜ້ານັ້ນ, ແລະອື່ນໆ. ດັດຊະນີ 0 ອາດຈະຖືກໃຊ້ສຳລັບໂຄງສ້າງຈຸດ
ຫຼືປົກກະຕິເພື່ອຊີ້ບອກວ່າບໍ່ມີ, ຫຼືສິ່ງເຫຼົ່ານີ້ອາດຈະຖືກປະໄວ້ທັງໝົດ. ໃບຫນ້າທັງຫມົດຈະ
ຖືກແຍກອອກເປັນສາມຫຼ່ຽມໃນຕາຫນ່າງສຸດທ້າຍ. Obj2 mesh ໃນປັດຈຸບັນເຮັດໃຫ້ບໍ່ປອດໄພ
ສົມມຸດຕິຖານວ່າໃບຫນ້າແມ່ນໂຄນ, ເຊິ່ງອາດຈະເຮັດໃຫ້ຜົນໄດ້ຮັບທີ່ແປກປະຫຼາດຖ້າພວກເຂົາເປັນ
ບໍ່.
ປະເພດຄຳຖະແຫຼງອື່ນໆທັງໝົດຈະຖືກລະເລີຍໃນການປ້ອນຂໍ້ມູນ. ຄໍາເວົ້າທີ່ເຂົ້າໃຈໂດຍ
obj2rad(1) ຈະຖືກລະເລີຍຢ່າງງຽບໆ; ຄໍາຖະແຫຼງອື່ນໆຈະສ້າງຂໍ້ຄວາມເຕືອນ
ຫຼັງຈາກການແປເພື່ອຊີ້ບອກວ່າຂາດຫາຍໄປຫຼາຍປານໃດ.
ທິດສະດີວິທະຍາ
ມີສີ່ປະເພດຄວາມຜິດພາດພື້ນຖານທີ່ລາຍງານໂດຍ obj2mesh:
ການເຕືອນໄພ - ຄວາມຜິດພາດທີ່ກ່ຽວຂ້ອງກັບການປ້ອນຂໍ້ມູນທີ່ບໍ່ເປັນອັນຕະລາຍ
fatal - ຄວາມຜິດພາດທີ່ກ່ຽວຂ້ອງກັບການປ້ອນຂໍ້ມູນທີ່ບໍ່ສາມາດກູ້ຄືນໄດ້
system - ຄວາມຜິດພາດທີ່ກ່ຽວຂ້ອງກັບລະບົບ
ພາຍໃນ - ຂໍ້ຜິດພາດທີ່ຮ້າຍແຮງທີ່ກ່ຽວຂ້ອງກັບຂໍ້ຈໍາກັດຂອງໂປຼແກຼມ
ຄວາມສອດຄ່ອງ - ຄວາມຜິດພາດທີ່ເກີດຈາກໂຄງການ
ຄວາມຜິດພາດສ່ວນໃຫຍ່ເປັນການອະທິບາຍຕົນເອງ. ຢ່າງໃດກໍຕາມ, ຄວາມຜິດພາດພາຍໃນຕໍ່ໄປນີ້ຄວນຈະເປັນ
ກ່າວເຖິງ:
ກໍານົດ overflow ໃນ addobject (id)
ຄວາມຜິດພາດນີ້ເກີດຂຶ້ນເມື່ອມີພື້ນຜິວຫຼາຍເກີນໄປຢູ່ໃກ້ກັນໃນສາກໃດໜຶ່ງ. ບາງຄັ້ງ
ຕາຫນ່າງຫນາແຫນ້ນສາມາດໄດ້ຮັບການຮອງຮັບໂດຍການເພີ່ມຄວາມລະອຽດສູງສຸດ (ໂດຍອໍານາດຂອງ
ສອງ) ການນໍາໃຊ້ -r ທາງເລືອກ, ແຕ່ປົກກະຕິແລ້ວຄວາມຜິດພາດນີ້ຊີ້ບອກວ່າມີບາງຢ່າງຜິດພາດ.
ມີພື້ນຜິວຫຼາຍເກີນໄປນອນຢູ່ເທິງສຸດຂອງກັນແລະກັນ, ຫຼື cube ຜູກມັດ
ແມ່ນອັດຕາເງິນເຟີ້ຈາກເລຂາຄະນິດທີ່ບໍ່ຕ່າງກັນໃນການປ້ອນຂໍ້ມູນ. ໂອກາດແມ່ນ, ຕົວເລກໃບຫນ້າ
"id" ແມ່ນຢູ່ໃກ້ກັບຜູ້ທີ່ເຮັດໃຫ້ເກີດບັນຫາ.
ຕາຕະລາງ Hash ລົ້ນໃນ fullnode
ຄວາມຜິດພາດນີ້ແມ່ນເກີດມາຈາກພື້ນຜິວຫຼາຍເກີນໄປ, ແລະມີຄວາມຫວັງຫນ້ອຍທີ່ຈະລວບລວມ
ຕາຫນ່າງນີ້.
ຕົວຢ່າງ
ເພື່ອສ້າງຕາຫນ່າງສາມຫຼ່ຽມທີ່ລວບລວມຈາກໄຟລ໌ scene mesh.obj ໂດຍໃຊ້ວັດສະດຸຈາກ
ໄຟລ໌ mesh.mat:
obj2mesh -a mesh.mat mesh.obj mesh.rtm
ເພື່ອໃຊ້ພິກັດທ້ອງຖິ່ນເພື່ອວາງຮູບກະເບື້ອງສີ່ຫຼ່ຽມໃສ່ວັດຖຸຕາໜ່າງ:
void colorpict tiled_pat
7 ສີແດງສີຂຽວສີຟ້າ mytile.hdr . frac(Lu) frac(Lv)
0
0
tiled_pat ພລາສຕິກ tiled_mat
0
0
5 .9 .9 .9 0 0
tiled_mat ຕາຫນ່າງ tiled_mesh
1 mymesh.rtm
0
0
ENVIRONMENT
RAYPATH ໄດເລກະທໍລີເພື່ອຊອກຫາໄຟລ໌ວັດສະດຸ.
ໃຊ້ obj2mesh ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net