Minggu, 07 Oktober 2012
Pengantar Bisnis Informatika
Haiii dina balik lagi niih. sekarang saya ingin berbagi informasi tentang "Pengantar Bisnis Informatika". pasti kalian banyak yang bertanya-tanya,apa sih Pengantar bisnin Informatika itu? naaah daripada bingung-bingung,mending dibaca yuk yang dibawah ini. ^.^
Pengertian Bisnis
Bisnis merupakan suatu organisasi yang menyediakan barang atau jasa yang bertujuan untuk mendapatkan keuntungan [Griffin & Ebert]. Secara keseluruhan, Bisnis adalah kegiatan yang dilakukan oleh individu dan sekelompok orang (organisasi) yang menciptakan nilai (create value) melalui penciptaan barang dan jasa (create of good and service) untuk memenuhi kebutuhan masyarakat dan memperoleh keuntungan melalui transaksi.
Aspek - Aspek Bisnis
• Keuntungan individu dan kelompok
• Penciptaan Nilai
• Penciptaan Barang dan Jasa
• Keuntungan melalui Transaksi
Fungsi Bisnis
• Fungsi Mikro (Kontribusi terhadap pihak yang berperan langsung)
• Fungsi Makro(Kontribusi terhadap pihak yang tidak berperan langsung)
Pengertian Informatika
Secara harfiah, Teknologi Informasi adalah seperangkat alat yang membantu Anda bekerja dengan informasi dan melakukan tugas-tugas yang berhubungan dengan pemrosesan informasi [Haag Den Keen, 1996]. Teknologi Informasi tidak hanya terbatas pada teknologi komputer (perangkat keras atau perangkat lunak) yang digunakan untuk memproses dan menyimpan informasi, melainkan juga mencakup teknologi komunikasi untuk mengirimkan informasi [Martin, 1999].
Dari definisi diatas dapat dikatakan bahwa teknologi informasi secara implisit maupun eksplisit tidak sekedar berupa teknologi komputer, tetapi juga teknologi telekomunikasi. Dengan kata lain, yang disebut teknologi informasi merupakan gabungan antara teknologi komputer dengan teknologi telekomunikasi.
Pengertian Bisnis Informatika
Dari pejabaran pengertian masing masing dari bisnis & teknologi informatika dapat kita simpulkan pengertian dari Bisnis Informatika adalah adalah kegiatan yang dilakukan oleh individu dan sekelompok orang (organisasi) yang menciptakan nilai (create value) melalui penciptaan barang dan jasa (create of good and service) untuk memenuhi kebutuhan masyarakat dan memperoleh keuntungan melalui transaksi yang berkaitan dengan teknologi informasi baik teknologi komputer maupun teknologi telekomunikasi.
Contoh Bisnis Informatika :
Di perusahaan dagang seperti department store, telah dipergunakan mesin cash register (mesin kasir) yang dilengkapi dengan kendali komputer sehingga mesin tersebut dapat dikendalikan oleh pihak manajer hanya dari ruang kerjanya secara cepat dan tepat, untuk scanning barcode kode barang dagangan, menghitung laba rugi, inventaris, dan sebagainya.
Di bidang perbankan, salah satu solusi sistem informasi perbankan telah diperkenalkan oleh perusahaan besar seperti Hewlett-Packard (HP), yang bekerja sama dengan Infosys telah memperkenalkan solusi core banking, yang disebut Finacle kepada bank-bank di Indonesia. Finacle memberikan solusi bagi bank yang ingin melakukan up-grade terhadap sistem yang telah mereka miliki. Dengan menggunakan Finacle, up-grade sistem bisa dilaksanakan dengan resiko investasi maupun kegagalan migrasi yang rendah. Ini penting bagi bank-bank agar mampu menghadapi siklus bisnis yang selalu berubah. Dengan solusi terpadu ini – berupa software dan hardware, jaringan, sistem integrasi, serta opsi consulting danoutsourcing – bank juga akan memiliki nilai tambah sehingga menjadi lebih kompetitif.
Perkembangan teknologi informasi telah mempengaruhi kebijakan dan strategi dunia usaha perbankan yang selanjutnya lebih mendorong inovasi dan persaingan di bidang layanan terutama jasa layanan pembayaran melalui bank. Inovasi jasa layanan perbankan yang berbasis teknologi tersebut terus berkembang mengikuti pola kebutuhan nasabah bank. Transaksi perbankan berbasis elektronik, termasuk internet dan menggunakan handphone merupakan bentuk perkembangan penyedia jasa layanan bank yang memberikan peluang usaha baru bagi bank yang kerakibat pada perubahan strategi usaha perbankan, dari yang berbasis manusia (tradisional) menjadi berbasis teknologi informasi yang lebih efisien dan praktis bagi bank. Pada perusahaan jasa seperti perbankan komputer digunakan untuk menghitung bunga secara otomatis, transaksi on-line, ATM, dan sebagianya.
Komputer juga banyak digunakan untuk proses akuntansi, melakukan analisis keuangan, neraca, laba-rugi, dan sebagainya. Bahkan ada beberapa software yang secara khusus disediakan untuk operasi akuntansi. Di bidang perhotelan komputer digunakan untuk menentukan jumlah dan jenis kamar yang telah terisi dan masih kosong. Bahkan saat ini pada penjualan pertokoan kecil, usaha kecil dan menengah (UKM), apotek dan bermacam-macam usaha kecil lainnya juga telah banyak menggunakan komputer.
E-Commerce
Pengertian E-Commerce
Definisi E-Commerce menurut Laudon & Laudon (1998), E-Commerce adalah suatu proses membeli dan menjual produk-produk secara elektronik oleh konsumen dan dari perusahaan ke perusahaan dengan computer sebagai perantara transaksi bisnis.
E-Commerce atau yang biasa disebut juga dengan istilah Ecom atau Emmerce atau EC merupakan pertukaran bisnis yang rutin dengan menggunakan transmisi Electronic Data Interchange (EDI), email, electronic bulletin boards, mesin faksimili, dan Electronic Funds Transfer yang berkenaan dengan transaksi-transaksi belanja di Internet shopping,
Stock online dan surat obligasi, download dan penjualan software, dokumen, grafik, musik, dan lain-lainnya, serta transaksi Business to Business (B2B). (Wahana Komputer Semarang 2002).
Sedangkan definisi E-Commerce menurut David Baum (1999, pp. 36-34) yaitu: E-Commerce is a dynamic set of technologies, applications, and bussines process that link enterprises, consumers, and communities through electronics transactions and the electronic exchange of goods, services, and informations.
Diterjemahkan oleh Onno. W. Purbo: E-Commerce merupakan satu set dinamis teknologi, aplikasi, dan proses bisnis yang menghubungkan perusahaan, konsumen, dan komunitas tertentu melalui transaksi elektronik dan perdagangan barang, pelavanan, dan informasi yang dilakukan secara elektronik.
Definisi dari E-Commerce menurut Kalakota dan Whinston (1997)dapat ditinjau dalam 3 perspektif berikut:
1. Dari perspektif komunikasi, E-Commerce adalah pengiriman barang, layanan, informasi, atau pembayaran melalui jaringan komputer atau melalui peralatan elektronik lainnya.
2. Dari perspektif proses bisnis, E-Commerce adalah aplikasi dari teknologi yang
menuju otomatisasi dari transaksi bisnis dan aliran kerja.
3. Dari perspektif layanan, E-Commerce merupakan suatu alat yang memenuhi keinginan perusahaan, konsumen, dan manajemen untuk memangkas biaya layanan (service cost) ketika meningkatkan kualitas barang dan meningkatkan kecepatan layanan pengiriman.
4. Dari perspektif online, E-Commerce menyediakan kemampuan untuk membeli dan menjual barang ataupun informasi melalui internet dan sarana online lainnya.
Jenis-jenis E-Commerce
Kegiatan E-Commerce mencakup banyak hal, untuk membedakannya E-Commerce dibedakan menjadi 2 berdasarkan karakteristiknya:
1. Business to Business, karakteristiknya:
• Trading partners yang sudah saling mengetahui dan antara mereka sudah terjalin hubungan yang berlangsung cukup lama.
• Pertukaran data dilakukan secara berulang-ulang dan berkala dengan format data yang telah disepakati bersama.
• Salah satu pelaku tidak harus menunggu rekan mereka lainnya untuk mengirimkan data.
• Model yang umum digunakan adalah peer to peer, di mana processing intelligence dapat didistribusikan di kedua pelaku bisnis.
2. Business to Consumer, karakteristiknya:
• Terbuka untuk umum, di mana informasi disebarkan secra umum pula.
• Servis yang digunakan juga bersifat umum, sehingga dapat digunakan oleh orang banyak.
• Servis yang digunakan berdasarkan permintaan.
• Sering dilakukan sistim pendekatan client-server. (Onno W. Purbo & Aang Arif. W; Mengenal E-Commerce, hal 4-5)
Tujuan Menggunakan E-Commerce dalam Dunia Bisnis
Tujuan suatu perusahaan menggunakan sistim E-Commerce adalah dengan menggunakan E-Commerce maka perusahaan dapat lebih efisien dan efektif dalam meningkatkan keuntungannya.
Manfaat Menggunakan E-Commerce dalam Dunia Bisnis
Manfaat dalam menggunakan E-Commerce dalam suatu perusahaan sebagai sistem transaksi adalah:
a. Dapat meningkatkan market exposure (pangsa pasar).
Transaksi on-line yang membuat semua orang di seluruh dunia dapat memesan dan membeli produk yang dijual hanya dengan melalui media computer dan tidak terbatas jarak dan waktu.
b. Menurunkan biaya operasional (operating cost).
Transaksi E-Commerce adalah transaksi yang sebagian besar operasionalnya diprogram di dalam komputer sehingga biaya-biaya seperti showroom, bebangaji yang berlebihan, dan lain-lain tidak perlu terjadi
c. Melebarkan jangkauan (global reach).
Transaksi on-line yang dapat diakses oleh semua orang di dunia tidak terbatas tempat dan waktu karena semua orang dapat mengaksesnya hanya dengan menggunakan media perantara komputer.
d. Meningkatkan customer loyalty.
Ini disebabkan karena sistem transaksi E-Commerce menyediakan informasi secara lengkap dan informasi tersebut dapat diakses setiap waktu selain itu dalam hal pembelian juga dapat dilakukan setiap waktu bahkan konsumen dapat memilih sendiri produk yang dia inginkan.
e. Meningkatkan supply management.
Transaksi E-Commerce menyebabkan pengefisienan biaya operasional pada perusahaan terutama pada jumlah karyawan dan jumlah stok barang yang tersedia sehingga untuk lebih menyempurnakan pengefisienan biaya tersebut maka sistem supply management yang baik harus ditingkatkan.
f Memperpendek waktu produksi.
Pada suatu perusahaan yang terdiri dari berbagai divisi atau sebuah distributor di mana dalam pemesanan bahan baku atau produk yang akan dijual apabila kehabisan barang dapat memesannya setiap waktu karena on-line serta akan lebih cepat dan teratur karena semuanya secara langsung terprogram dalam komputer.
Pernyataan-pernyataan Onno W. Purbo di atas juga didukung oleh permyataan Laura Mannisto (International Telecommunication Union, Asia and the Future of the World Economic System, 18 March 1999, London), yaitu:
a. Ketersediaan informasi yang lebih banyak dan mudah diakses Ketersediaan informasi produksi dan harga dapat diakses oleh pembeli, penjual, produsen dan distributor.
b. Globalisasi Produksi, distribusi dan layanan konsumen : jarak dan waktu relatif lebih pendek, sehingga perusahaan dapat berhubungan dengan rekan bisnis di lain negara dan melayani konsumen lebih cepat. Produsen dapat memilih tempat untuk memproduksi dan melayani konsumen tidak tergantung dimana konsumen itu berada. Perusahaan yang berada di negara berpendapatan rendah dapat mengakses informasi dan membuat kontak bisnis tanpa harus mengeluarkan biaya tinggi.
c. Mengurangi biaya transaksi dengan adanya system order, pembayaran dan logistik secara online dan otomatis.
Ancaman Menggunakan E-Commerce (Threats)
Threats merupakan kemungkinan-kemungkinan munculnya kejadian yang dapat membahayakan asset-aset yang berharga.
Ada beberapa bentuk ancaman yang mungkin terjadi:
• System Penetration
Orang-orang yang tidak berhak melakukan akses ke system computer dapat dan diperbolehkan melakukan segala sesuatu sesuai dengan keinginannya.
• Authorization Violation
Pelanggaran atau penyalahgunaan wewenang legal yang dimiliki seseorang yang berhak mengakses sebuah sistim.
• Planting
Memasukan sesuatu ke dalam sebuah system yang dianggap legal tetapi belum tentu legal di masa yang akan datang.
• Communications Monitoring
Seseorang dapat mernantau semua infonnasi rahasia dengan melakukan monitoring komunikasi sederhana di sebuah tempat pada jaringan komunikasi.
• Communications Tampering
Segala hal yang membahayakan kerahasiaan informasi seseorang tanpa melakukan penetrasi, seperti mengubah infonnasi transaksi di tengah jalan atau membuat sistim server palsu yang dapat menipu banyak orang untuk memberikan infonnasi rahasia mereka secara sukarela.
• Denial of service
Menghalangi seseorang dalam mengakses informasi, sumber, dan fasilitas-fasilitas lainnya.
• Repudiation
Penolakan terhadap sebuah aktivitas transaksi atau sebuah komunikasi baik secara sengaja maupun tidak disengaja.
sistem e-commerce terbagi menjadi tiga tipe aplikasi,
• Electronic Markets (EMs)
EMs adalah sebuah sarana yang menggunakan teknologi informasi dan komunikasi untuk melakukan/menyajikan penawaran dalam sebuah segmen pasar, sehingga pembeli dapat membandingkan berbagai macam harga yang ditawarkan. Dalam pengertian lain, EMs adalah sebuah sistem informasi antar organisasi yang menyediakan fasilitas-fasilitas bagi para penjual dan pembeli untuk bertukar informasi tentang harga dan produk yang ditawarkan. Keuntungan fasilitas EMs bagi pelanggan adalah terlihat lebih nyata dan efisien dalam hal waktu. Sedangkan bagi penjual, ia dapat mendistribusikan informasi mengenai produk dan service yang ditawarkan dengan lebih cepat sehingga dapat menarik pelanggan lebih banyak.
• Electronic Data Interchange (EDI)
EDI adalah sarana untuk mengefisienkan pertukaran data transaksi-transaksi reguler yang berulang dalam jumlah besar antara organisasi-organisasi komersial.
Secara formal EDI didefinisikan oleh International Data Exchange Association (IDEA) sebagai “transfer data terstruktur dengan format standard yang telah disetujui yang dilakukan dari satu sistem komputer ke sistem komputer yang lain dengan menggunakan media elektronik”.
EDI sangat luas penggunaannya, biasanya digunakan oleh kelompok retail yang besar ketika melakukan bisnis dagang dengan para supplier mereka.
EDI memiliki standarisasi pengkodean transaksi perdagangan, sehingga organisasi komersial tersebut dapat berkomunikasi secara langsung dari satu sistem komputer yang satu ke sistem komputer yang lain tanpa memerlukan hardcopy, faktur, serta terhindar dari penundaan, kesalahan yang tidak disengaja dalam penanganan berkas dan intervensi dari manusia.
Keuntungan dalam menggunakan EDI adalah waktu pemesanan yang singkat, mengurangi biaya, mengurangi kesalahan, memperoleh respon yang cepat, pengiriman faktur yang cepat dan akurat serta pembayaran dapat dilakukan secara elektronik.
• Internet Commerce
Internet commerce adalah penggunaan internet yang berbasis teknologi
informasi dan komunikasi untuk perdagangan. Kegiatan komersial ini seperti iklan dalam penjualan produk dan jasa. Transaksi yang dapat dilakukan di internet antara lain pemesanan/pembelian barang dimana barang akan dikirim melalui pos atau sarana lain setelah uang ditransfer ke rekening penjual.
Penggunaan internet sebagai media pemasaran dan saluran penjualan terbukti mempunyai keuntungan antara lain untuk beberapa produk tertentu lebih sesuai ditawarkan melalui internet; harga lebih murah mengingat membuat situs di internet lebih murah biayanya dibandingkan dengan membuka outlet retail di berbagai tempat; internet merupakan media promosi perusahaan
dan produk yang paling tepat dengan harga yang relatif lebih murah; serta pembelian melalui internet akan diikuti dengan layanan pengantaran barang sampai di tempat pemesan.
Karakteristik E-Commerce:
Berbeda dengan transaksi perdagangan biasa, transaksi e-commerce memiliki beberapa karakteristik yang sangat khusus, yaitu :
Transaksi tanpa batas
Sebelum era internet, batas-batas geografi menjadi penghalang suatu perusahaan atau individu yang ingin go-international. Sehingga, hanya perusahaan atau individu dengan modal besar yang dapat memasarkan produknya ke luar negeri.Dewasa ini dengan internet pengusaha kecil dan menengah dapat memasarkan produknya secara internasional cukup dengan membuat situs web atau dengan memasang iklan di situs-situs internet tanpa batas waktu (24 jam), dan tentu saja pelanggan dari seluruh dunia dapat mengakses situs tersebut dan melakukan transaksi secara on line.
Transaksi anonim
Para penjual dan pembeli dalam transaksi melalui internet tidak harus bertemu muka satu sama lainnya. Penjual tidak memerlukan nama dari pembeli sepanjang mengenai pembayarannya telah diotorisasi oleh penyedia sistem pembayaran yang ditentukan, yang biasanya dengan kartu kredit.
Produk digital dan non digital
Produk-produk digital seperti software komputer, musik dan produk lain yang bersifat digital dapat dipasarkan melalui internet dengan cara mendownload secara elektronik. Dalam perkembangannya obyek yang ditawarkan melalui internet juga meliputi barang-barang kebutuhan hidup lainnya.
Produk barang tak berwujud
Banyak perusahaan yang bergerak di bidang e-commercen dengan menawarkan barang tak berwujud separti data, software dan ide-ide yang dijual melalui internet.
Implementasi e-commerce pada dunia industri yang penerapannya semakin lama semakin luas tidak hanya mengubah suasana kompetisi menjadi semakin dinamis dan global, namun telah membentuk suatu masyarakat tersendiri yang dinamakan Komunitas Bisnis Elektronik (Electronic Business Community). Komunitas ini memanfaatkan cyberspace sebagai tempat bertemu, berkomunikasi, dan berkoordinasi ini secara intens memanfaatkan media dan infrastruktur telekomunikasi dan teknologi informasi dalam menjalankan kegiatannya sehari-hari. Seperti halnya pada masyarakat tradisional, pertemuan antara berbagai pihak dengan beragam kepentingan secara natural telah membentuk sebuah pasar tersendiri tempat bertemunya permintaan (demand) dan penawaran (supply). Transaksi yang terjadi antara demand dan supply dapat dengan mudah dilakukan walaupun yang bersangkutan berada dalam sisi geografis yang berbeda karena kemajuan dan perkembangan teknologi informasi, yang dalam hal ini adalah teknologi e-commerce.
Mekanisme E-Commerce
Transaksi elektronik antara e-merchant (pihak yang menawarkan barang atau jasa melalui internet) dengan e-customer (pihak yang membeli barang atau jasa melalui internet) yang terjadi di dunia maya atau di internet pada umumnya berlangsung secara paperless transaction, sedangkan dokumen yang digunakan dalam transaksi tersebut bukanlah paper document, melainkan dokumen
elektronik (digital document).
Kontrak on line dalam e-commerce menurut Santiago Cavanillas dan A. Martines Nadal, seperti yang dikutip oleh Arsyad Sanusi memiliki banyak tipe dan variasi yaitu :
Kontrak melalui chatting dan video conference;
Kontrak melalui e-mail;
Kontrak melalui web atau situs.
Chatting dan Video Conference adalah alat komunikasi yang disediakan oleh internet yang biasa digunakan untuk dialog interaktif secara langsung. Dengan chatting seseorang dapat berkomunikasi secara langsung dengan orang lain persis seperti telepon, hanya saja komunikasi lewat chatting ini adalah tulisan atau pernyataan yang terbaca pada komputer masing-masing.
Sesuai dengan namanya, video conference adalah alat untuk berbicara dengan beberapa pihak dengan melihat gambar dan mendengar suara secara langsung pihak yang dihubungi dengan alat ini. Dengan demikian melakukan kontrak dengan menggunakan jasa chatting dan video conference ini dapat dilakukan secara langsung antara beberapa pihak dengan menggunakan sarana komputer atau monitor televisi.
Kontrak melalui e-mail adalah salah satu kontrak on-line yang sangat populer karena pengguna e-mail saat ini sangat banyak dan mendunia dengan biaya yang sangat murah dan waktu yang efisien. Untuk memperoleh alamat e-mail dapat dilakukan dengan cara mendaftarkan diri kepada penyedia layanan e-mail gratis atau dengan mendaftarkan diri sebagai subscriber pada server atau ISP tertentu. Kontrak e-mail dapat berupa penawaran yang dikirimkan kepada seseorang atau
kepada banyak orang yang tergabung dalam sebuah mailing list, serta penerimaan dan pemberitahuan penerimaan yang seluruhnya dikirimkan melalui e-mail.
Di samping itu kontrak e-mail dapat dilakukan dengan penawaran barangnya diberikan melalui situs web yang memposting penawarannya, sedangkan penerimaannya dilakukan melalui e-mail.
Kontrak melalui web dapat dilakukan dengan cara situs web seorang supplier (baik yang berlokasi di server supplier maupun diletakkan pada server pihak ketiga) memiliki diskripsi produk atau jasa dan satu seri halaman yang bersifat self-contraction, yaitu dapat digunakan untuk membuat kontrak sendiri, yang memungkinkan pengunjung web untuk memesan produk atau jasa tersebut.
Para konsumen harus menyediakan informasi personal dan harus menyertakan nomor kartu kredit.
Selanjutnya, mekanismenya adalah sebagai berikut:
- untuk produk on line yang berupa software, pembeli diizinkan untuk men-download-nya;
- untuk produk yang berwujud fisik, pengiriman barang dilakukan sampai di rumah konsumen;
- untuk pembelian jasa, supplier menyediakan untuk melayani konsumen sesuai dengan waktu dan tempat yang telah ditentukan dalam perjanjian.
Mekanisme transaksi elektronik dengan e-commerce dimulai dengan adanya penawaran suatu produk tertentu oleh penjual (misalnya bertempat kedudukan di USA) di suatu website melalui server yang berada di Indonesia (misalnya detik.com). Apabila konsumen Indonesia melakukan pembelian, maka konsumen tersebut akan mengisi order mail yang telah disediakan oleh pihak penjual.
cr: www.binushacker.net,jurnal-sdm.blogspot.com
Kamis, 22 Maret 2012
contoh bad design
Pada tugas ini saya disuruh mencari contoh design yang menurut saya itu adalah design yang buruk atau bad design,berikut contohnya:
1.
menurut saya ini adalah salah satu contoh bad design,kenapa? karna warna pada kostum ini terlalu mencolok,meriah untuk kostum sepak bola,apalagi dengan logo yang membuat kostum itu semakin meriah,seperti kostum untuk anak sd.
seharusnya: seharusnya untuk kostum sepak bola jangan memakai warna yang terlalu meriah. pakailah warna yang agak gelap. dan letak penaruhan logo pun harus disesuaikan,jangan asal tempel.
2.
kenapa menurut saya ini termasuk bad design? untuk baliho pernikahan tentu sangat berlebihan. mulai dari pewarnaan yang dipakai,backgroundnya,serta tertalu banyak tulisan yang di tulis.
seharusnya untuk baliho jangan seperti ini. yang simple saja,tulisannya pun jangan terlalu banyak,karna ini bukan sebuah kartu undangan.
1.
menurut saya ini adalah salah satu contoh bad design,kenapa? karna warna pada kostum ini terlalu mencolok,meriah untuk kostum sepak bola,apalagi dengan logo yang membuat kostum itu semakin meriah,seperti kostum untuk anak sd.
seharusnya: seharusnya untuk kostum sepak bola jangan memakai warna yang terlalu meriah. pakailah warna yang agak gelap. dan letak penaruhan logo pun harus disesuaikan,jangan asal tempel.
2.
kenapa menurut saya ini termasuk bad design? untuk baliho pernikahan tentu sangat berlebihan. mulai dari pewarnaan yang dipakai,backgroundnya,serta tertalu banyak tulisan yang di tulis.
seharusnya untuk baliho jangan seperti ini. yang simple saja,tulisannya pun jangan terlalu banyak,karna ini bukan sebuah kartu undangan.
Minggu, 11 Maret 2012
biografi ekee
Haaaaay!!!!
udah setaun gue punya ini blog tapi belom juga memperkenalkan siapa gue hahaha oke oke gue sekarang akan memperkenalkan diri. tapi berhubung ini juga buat tugas kuliah jadi ngomongnya pake saya aja deh yaa :D
Annyeong haseyoooo, Jae ireumen dina imnida. biasa dipanggil "nha" untuk temen temen smp sma,atau dipanggil "nengky" sama temen temen camens ku. saya lahirnya di Bekasi tanggal 6 maret 92,jadi umur saya baruu aja masuk 20taun(kepala dua booo). saya anak kedua dari 3 bersaudara. saya seorang KPOPers hahaha
Dulu semasa saya sd,saya aktif di 2 ekstrakulikuler drumband sm pianika. saya selalu ikut perlombaan drumband atau pianika. bahkan dulu drumband sekolah saya di undang untuk tampil di depan presiden looh(dulu presidennya Megawati). Saya gak pernah tuh ikut kemping atau persami,ga boleh karna saya sering sakit sakitan(masuk rumah sakit)dan juga saya ga bisa jauh dari mamah saya hehehe. Waktu smp saya mulai pasif,ga aktif di ekskul. saya juga gak ikut osis. semasa smp dulu saya pernah koma karna pendarahan lambung. tapi masa smp lah yang menurut saya paling indah,berkesan gatau kenapa hehehe. masuk sma saya pertama kali ikut ekskul paskibra. saya pernah sekali ikut pengibaran 17an,dan saya di pasukan 17. cuma ga saya terusin lagi ga boleh sama orang tua karna latihan yang berat dan saya sakit sakitan lagi. terus saya pindah ke ekskul rohis,tapi itu pun ga aktif aktif amat.hehehe
Sekarang saya lagi kuliah tingkat 3 atau semester 6 di Gunadarma yang lagi sibuk sibuknya bikin PI. sebenernya saya terpaksa masuk situ hehehe soalnya saya pengen banget masuk ITB jurusan hayati karna saya memang lebih dipelajaran biologi. udah ikut tes tapi ternyata gagal hiks hiksa. nah kalo swastanya saya pengen banget masuk binus,udah keterima ehh ga dibolehin gara" harus ngekos. jadilah saya masuk gundar,dan karna gundar terkenal dengan TI yang katanya bagus jadilah saya memilih TI. padahal saya kurang berminat di TI,tapi alasan lainnya saya masuk TI karna prospek untuk kedepannya bagus(INSYA ALLAH,AMIIIN).
Nah sekian biografi saya,kalau ingin lebih kenal dengan saya bisa di add facebook saya atau follow twitter saya @nhaadina. Ghamsahamnida
udah setaun gue punya ini blog tapi belom juga memperkenalkan siapa gue hahaha oke oke gue sekarang akan memperkenalkan diri. tapi berhubung ini juga buat tugas kuliah jadi ngomongnya pake saya aja deh yaa :D
Annyeong haseyoooo, Jae ireumen dina imnida. biasa dipanggil "nha" untuk temen temen smp sma,atau dipanggil "nengky" sama temen temen camens ku. saya lahirnya di Bekasi tanggal 6 maret 92,jadi umur saya baruu aja masuk 20taun(kepala dua booo). saya anak kedua dari 3 bersaudara. saya seorang KPOPers hahaha
Dulu semasa saya sd,saya aktif di 2 ekstrakulikuler drumband sm pianika. saya selalu ikut perlombaan drumband atau pianika. bahkan dulu drumband sekolah saya di undang untuk tampil di depan presiden looh(dulu presidennya Megawati). Saya gak pernah tuh ikut kemping atau persami,ga boleh karna saya sering sakit sakitan(masuk rumah sakit)dan juga saya ga bisa jauh dari mamah saya hehehe. Waktu smp saya mulai pasif,ga aktif di ekskul. saya juga gak ikut osis. semasa smp dulu saya pernah koma karna pendarahan lambung. tapi masa smp lah yang menurut saya paling indah,berkesan gatau kenapa hehehe. masuk sma saya pertama kali ikut ekskul paskibra. saya pernah sekali ikut pengibaran 17an,dan saya di pasukan 17. cuma ga saya terusin lagi ga boleh sama orang tua karna latihan yang berat dan saya sakit sakitan lagi. terus saya pindah ke ekskul rohis,tapi itu pun ga aktif aktif amat.hehehe
Sekarang saya lagi kuliah tingkat 3 atau semester 6 di Gunadarma yang lagi sibuk sibuknya bikin PI. sebenernya saya terpaksa masuk situ hehehe soalnya saya pengen banget masuk ITB jurusan hayati karna saya memang lebih dipelajaran biologi. udah ikut tes tapi ternyata gagal hiks hiksa. nah kalo swastanya saya pengen banget masuk binus,udah keterima ehh ga dibolehin gara" harus ngekos. jadilah saya masuk gundar,dan karna gundar terkenal dengan TI yang katanya bagus jadilah saya memilih TI. padahal saya kurang berminat di TI,tapi alasan lainnya saya masuk TI karna prospek untuk kedepannya bagus(INSYA ALLAH,AMIIIN).
Nah sekian biografi saya,kalau ingin lebih kenal dengan saya bisa di add facebook saya atau follow twitter saya @nhaadina. Ghamsahamnida
Rabu, 28 Desember 2011
Desain Pemodelan Grafik
Saya berkuliah di Universitas Gunadarma angkatan 2009, jurusan Teknik Informatika dari fakultas Teknologi Industri. Studentsite Gunadarma merupakan wadah mahasiswa Universitas Gunadarma untuk mendapatkan informasi kegiatan kampus.
Saya dan teman teman saya mencoba mentranslate sebuah buku berjudul FOCUS ON 3D MODELS. saya mentranslate buku ini untuk menyelesaikan tugas softskill Desain Pemodelan Grafik. berikut linknya: http://www.4shared.com/rar/iSlV_Huq/TERJEMAHAN_3D_MODELS.html mohon maaf apabila masih belum sempurna. terimakasih
Saya dan teman teman saya mencoba mentranslate sebuah buku berjudul FOCUS ON 3D MODELS. saya mentranslate buku ini untuk menyelesaikan tugas softskill Desain Pemodelan Grafik. berikut linknya: http://www.4shared.com/rar/iSlV_Huq/TERJEMAHAN_3D_MODELS.html mohon maaf apabila masih belum sempurna. terimakasih
Pendahuluan
FOKUS PADA 3D MODEL
© 2003 oleh Premier Press, sebuah divisi dari Teknologi Kursus. All rights reserved. Tidak ada bagian dari buku ini dapat direproduksi atau ditransmisikan dalam bentuk apapun atau dengan cara apapun, elektronik atau mekanik, termasuk fotokopi, rekaman, atau cara penyimpanan informasi atau pengambilan sistem tanpa izin tertulis dari Premier Tekan, kecuali untuk pencantuman singkat kutipan di review.
Logo Premier Press dan perdagangan terkait adalah merek dagang dari Premier Pers dan tidak boleh digunakan tanpa izin tertulis.
Penerbit: Stacy L. Hiquet
Manajer Pemasaran: Heather Hurley
Akuisisi Editor: Mitzi Foster Koontz
Proyek / Copy Editor: Kezia Endsley
Teknis Reviewer: Kelly Dempski
Interior Layout: Danielle Foster
Sampul Desainer: Mike Tanamachi
Indexer: Kelly Talbot
Proofreader: Jenny Davidson
Wolfenstein, Doom, dan Quake adalah hak cipta id Software. Half-Life adalah hak cipta
VALVE Perangkat Lunak. Unreal adalah hak cipta MegaGames Epic. Seri game Descent
adalah hak cipta Parallax. Milkshape 3D diciptakan oleh perusahaan chUmbaLum lembut.
Discreet adalah sebuah divisi dari Autodesk, Inc, 3d Studio Max, 3D Studio VIZ, Studio Karakter,Api, Api, Flint, Frost, Inferno, Lightscape, Asap, Streaming, dan Wire terdaftar
merek dagang, dan Discreet, 3ds Max, Backdraft, Pembakaran, Jobnet, dan Sparks yang
merek dagang dari Autodesk, Inc, Discreet Logic Inc di Amerika Serikat dan / atau negara lain.
Mental ray adalah merek dagang terdaftar dari citra mental GmbH & Co KG. Vecta3D-MAX adalah merek dagang dari IdeaWorks3D, Ltd Semua nama merek, nama produk, atau merek dagang milik pemegang masing-masing. (C) Copyright 2002 Autodesk, Inc All rights reserved.
Penting: Premier Press tidak dapat menyediakan dukungan perangkat lunak. Silahkan hubungi produsen perangkat lunak dukungan teknis baris atau situs Web untuk bantuan.
Premier Press dan penulis telah berusaha untuk membedakan merek dagang eksklusif dari istilah deskriptif dengan mengikuti gaya kapitalisasi yang digunakan oleh produsen.
Informasi yang terkandung dalam buku ini telah diperoleh oleh Premier Press dari sumber
yang dapat dipercaya. Namun, karena kemungkinan kesalahan manusia atau mekanis oleh sumber kami, Premier press, atau orang lain, Penerbit tidak menjamin keakuratan,kecukupan, atau kelengkapan informasi apapun dan tidak bertanggung jawab atas kesalahan atau kelalaian atau hasil yang diperoleh dari penggunaan informasi tersebut. Pembaca harus menyadari fakta bahwa Internet adalah entitas yang selalu berubah. Beberapa fakta mungkin telah berubah sejak buku ini dicetak.
ISBN: 1-59200-033-9
Katalog Perpustakaan Kongres Nomor Kartu: 2002111229
Dicetak di Amerika Serikat
03 04 05 06 07 BH 10 9 8 7 6 5 4 3 2 1
Premier Press, sebuah divisi dari Teknologi Kursus
2645 Erie Avenue, Suite 41
Cincinnati, Ohio 45208
UCAPAN TERIMA KASIH
Terlebih dulu, terima kasih kepada orang tua saya untuk mengizinkan saya melakukan hal ini; tanpa dukungan merka dan mensupport dengan tidak melihat saya sebagian besar musim panas ini tidak akan pernah mungkin terjadi.
Sebuah berkat besar untuk Trent Polack telah membantu saya mengamankan kesepakatan ini buku dan
menjadi seorang teman yang mengagumkan dan programmer. Tanpa kalian, aku tidak akan pernah berhasil sampai ke tempat saya hari ini.
Aku tidak bisa melupakan semua orang yang besar atas di gamedev.net, flipcode.com. Kalian telah berharga dalam membantu saya memilah-milah masalah, bug squash, dan teman-teman terbaik. Ada terlalu banyak nama, tapi beberapa yang telah terbukti tak ternilai telah Nicholas Cooper, Sean Kent, Denis Lukianov,Ron Penton, dan Henrik Stuart.
Untuk teman saya dan penyelamat Amy untuk paksa menyeretku menjauh dari komputer saya dan keluar dari ruangan saya setiap begitu sering, itu membuat saya gila.
Terakhir, namun pasti tidak sedikit, yang besar berkat orang-orang Premier Press, terutama Mitzi untuk tetap dengan saya sepanjang waktu aku sedang menulis. Dukungan Anda telah hebat, bahkan melalui komputer,Internet, dan masalah komunikasi. Semua editor yang bekerja, anda semua telah mengajari saya banyak pelajaran berharga karena saya telah bekerja pada buku pertama saya. Saya berharap untuk bekerja dengan kalian semua lagi.
Tentang Penulis
Evan Pipho selalu tertarik pada komputer dan elektronik. Sebagai anak muda, ia belajar untuk mengoperasikan IBM PC ayahnya, bermain game, dan bereksperimen dengan banyak program di dalamnya. Sambil bermain dengan mesin Windows ayahnya, dia mulai mengenal bahasa seperti QBASIC dan C dan menghabiskan waktunya untuk pengembangan game. Dia telah memutuskan sejak lama bahwa ia ingin mengejar pengembangan game, sehingga ia langsung belajar dan masuk beberapa kelas di perguruan tinggi dan beberapa bulan di depan komputer, dia ketagihan!
Anda dapat mengunjungi forum penulis di http://www.codershq.com. Klik Forum link. Jika Anda lebih suka email pribadi ke forum publik, Anda dapat hubungi dia di evan@codershq.com.
DAFTAR ISI
Surat dari Editor .............. xvi
Pendahuluan dan Ikhtisar .................... xix
Bab 1 Meninjau Matriks dan Vektor .............. 1
Bab 2 Pengantar Quaternions ................. 23
Bab 3 Quake II MD2 Model ....................... 37
Bab 4 OBJ ............................... 61
Bab 5 Sebuah Pengantar Animasi rangka ..... 71
Bab 6 Milkshape 3D .................................... 87
Bab 7 Model 3ds ................................ 109
Bab 8 MDL, Format Half-Life legendaris ... 127
Bab 9 Masukkan Quake: Quake III
Format MD3 ..................................... 135
Bab 10 Tips, Trik, dan Metode .................... 153
Lampiran A Format Model 3D Umum ................. 165
Lampiran B STL Primer Vector ........................... 169
Lampiran C Pergi Di atas dan Beyond .................... 183
Indeks .............................................. 191
ISI
Surat dari Editor ..................... xvi
Pendahuluan dan Ikhtisar ........................... xix
BAB 1 Meninjau Matriks
dan Vektor .......................... 1
Memahami dan Menggunakan Matriks .............................................. 2
Zero dan Matriks Identitas ............................................ .................................. 3
Operasi matriks ………………………………………………………………5
Determinan Matriks ............................................... ...........................................8
Para Invers dari Matriks……………………………………………………… 9
Menggunakan dan Memahami Vektor .............................................. ................12
Notasi vektor…………………………………………………………………..14
Besaran Vektor dan Unit .............................................. .....................................14
Aritmatika vektor............................................... ................................................14
Produk vektor………………………………………………………………… 17
Transformasi Vektor dengan Matriks ............................................ ............... 19
Para CD Kode………………………………………………………………… 20
Kesimpulan……………………………………………………………………. 21
BAB 2 Pengantar Quaternions ....................... 23
Apakah angka empat dan Mengapa Apakah Mereka Digunakan? .................... 24
Angka empat Operasi ................................................ ....................................... 26
Konversi angka empat ................................................ ...................................... 28
Interpolasi dengan Quaternions ............................................... ...........................34
LERP (Interpolasi Linear Quaternions) ........................................... ...................35
SLERP (Bulat Linear Interpolation) ............................................ ........................35
Kesimpulan …………………………………………………………………….36
BAB 3 Quake II
Model MD2 ....................... 37
Memahami Fungsi FILE............................................. ........................................ 39
Melihat Kode Sumber ............................................. ............................................43
Data: Frame dan simpul ............................................ ..........................................46
Membuat Ini Padat: Segitiga………………………………………………….. 48
Hasil rendering untuk Pertama Kalinya ........................................... ...................50
Kecantikan: Menambahkan Skins .............................................. .........................52
Membuat Ini Pindah: Animasi ............................................. ...............................55
Strip dan Fans: Perintah GL ............................................ ....................................56
Kesimpulan……………………………………………………………………. 58
BAB 4 Memuat File OBJ ... …………………………………………………61
Parsing File Teks ……………………………………………………………...62
Memahami Format obj .............................................. .........................................63
Memuat Format OBJ ………………………………………………………….66
Rendering ……………………………………………………………………..68
Kesimpulan ……………………………………………………………………70
BAB 5 Sebuah Pengantar Animasi rangka ............... ………………………71
Memahami Animasi rangka ............................................... .................................73
Manfaat Animasi rangka .............................................. .......................................73
Cara kerja batin Animasi rangka ............................................. ............................75
Keyframes dalam rangka Animasi .............................................. .........................77
Mengambil Posisi ………………………………………………………………78
Menempelkan Mesh …………………………………………………………….80
Demo ……………………………………………………………………………82
Demo Kontrol …………………………………………………………………...82
Aplikasi Advanced Animasi rangka ............................................. ....................... 85
Kesimpulan ……………………………………………………………………...86
BAB 6 Milkshape 3D ........ …………………………………………………….87
Mendapatkan Data ………………………………………………………………88
Simpul …………………………………………………………………………...89
Wajah ……………………………………………………………………………90
Jerat ……………………………………………………………………………...92
Bahan ……………………………………………………………………………93
Animasi …………………………………………………………………………99
Menemukan Orangtua Hilang .............................................. ...............................101
Persiapan Awal ………………………………………………………………...102
Animasi dan Interpolasi ............................................... ........................................103
Kesimpulan …………………………………………………………………….108
BAB 7 Para Model 3ds .... …………………………………………………….109
Memahami File 3ds Chunky .............................................. ..................................110
3ds Chunk Header: Mulai ............................................ ........................................112
3ds File Data ……………………………………………………………………113
Header 0x4D4D ………………………………………………………………...113
Para 0x0002 Versi Chunk .............................................. ......................................113
Objek dalam Chunk 0x4000 ............................................. ...................................113
Bahan 0xAFFF …………………………………………………………………120
Rendering 3ds File Anda ……………………………………………………….122
Kesimpulan ……………………………………………………………………..125
BAB 8 MDL, Para Legendaris Half-Life Format ................ ………………..127
File Viewer MDL Valve .............................................. ........................................129
Menginisialisasi Model ………………………………………………………130
Rendering Kode MDL .............................................. .........................................131
Menghidupkan Model ………………………………………………………...131
Untuk Praktek selengkapnya ... ……………………………………………….132
Kesimpulan …………………………………………………………………....133
BAB 9 Masukkan Quake:Quake III MD3 Format ....... …………………...135
Mengambil data ……………………………………………………………….137
Header MD3 …………………………………………………………………..138
Boneframes ……………………………………………………………………138
Struktur Tag MD3 ……………………………………………………………..140
Jerat …………………………………………………………………………….141
Menggunakan Model Multi-Bagian ……………………………………………148
Tags …………………………………………………………………………….149
Kesimpulan …………………………………………………………………….151
BAB 10 Tips, Trik,dan Metode ...................... ……………………………….153
Menghitung normals Wajah ............................................... .................................154
Menghitung Vertex …………………………………………………………….155
Membuat Format Sendiri .............................................. .......................................156
Format Teks Berbasis ………………………………………………………….156
Format biner Berbasis .............................................. ............................................157
Perencanaan File ……………………………………………………………….157
Membuat File …………………………………………………………………..160
Interpolasi linier ………………………………………………………………..161
Tips Pengoptimalan ……………………………………………………………162
Kesimpulan ………………………………………………………………….....164
LAMPIRAN A Model 3D Umum
Format .......................... 165
LAMPIRAN B STL Vector Primer ……………………………………………169
STL ……………………………………………………………………………..170
Dasar-dasar dari Menggunakan Vektor ............................................. ..................170
Penyortiran ……………………………………………………………………..173
Pencarian ……………………………………………………………………….174
Menggunakan Objek Sendiri .............................................. .................................176
Pointer ………………………………………………………………………….179
Kesimpulan …………………………………………………………………….181
LAMPIRAN C Pergi atas
dan Beyond ....................... 183
Untuk Informasi Lebih Lanjut ………………………………………………….186
Apa yang ada di CD …………………………………………………………….188
Indeks ................................................. ..... ………………………………………191
Surat dari Editor
Sebagai programmer game 3D, cepat atau lambat waktu datang ketika Anda bosan dengan kubus dan terbang berputar kapal ruang dalam ruang. Anda ingin karakter 3D sepenuhnya diartikulasikan dan animasi. Jadi Anda mulai mencari di Internet untuk daripadanya informasi,dan cepat atau lambat Anda menyadari bahwa meskipun ada banyak situs dengan informasi-dan banyak demo-itu semua agak berguna dalam realitas. Ada terlalu banyak lubang dalam format file penjelasan, dan pada akhirnya Anda mungkin akan lebih baik reverse-engineering file daripada menyeberang melalui hacker dokumen setelah dokumen hacker.
Masalah ini adalah salah satu yang saya pribadi telah berurusan dengan
untuk waktu yang lama. Ketika saya pertama kali ingin menulis sebuah file Quake
loader, saya berpikir bahwa akan mudah, harus ada satu miliar
situs di Internet dengan penjelasan yang jelas dan ringkas, kan?
Namun, tidak ada! Sejauh yang saya tahu ada benar-benar hanya
satu pun dokumen pada Internet dengan format file. MD2,
dan itu tidak lengkap, tetapi lebih dari sebuah FAQ. Selain itu, ini
hanya format file, tetapi tidak benar-benar menjelaskan semua rincian. Hal ini
hanya satu contoh. Ada banyak. Intinya adalah bahwa
apakah itu format permainan seperti Quake itu. MD2 atau. MD3 atau 3D
Format file Studio Max, tidak ada cukup tempat tunggal untuk menemukan
informasi. Masalah ini adalah motivasi untuk buku ini.
Tujuan saya untuk buku ini adalah untuk memberikan referensi tunggal untuk
format file yang paling populer, tetapi pada saat yang sama mengajari Anda bagaimana untuk menggunakannya. Artinya, itu berguna untuk menunjukkan cara membacasetiaptombol frame dari file MD2. jika Anda tidak tahu bagaimana untuk interpolasi mereka. Dengan demikian, penulis, Evan Pipho, tidak hanya mencakup setiap format file penting (dalam alasan), tapi dia juga dibahas
materi dasar seperti matematika, animasi tulang,
dan banyak lagi. Jika Anda membuka buku ini tidak mengetahui satu hal pun
tentang karakter animasi 3D, pada akhir buku ini, Anda akan
tahu bagaimana bekerja dengan semua format file yang populer, bagaimana
menulis pembaca, dan bagaimana untuk benar-benar menghidupkan jala-jala secara realtime
dalam aplikasi Anda. Tentu saja, buku ini mengasumsikan bahwa Anda sudah familiar dengan grafis 3D, DirectX (atau OpenGL) dan
Anda dapat membuat mesin 3D sempurna baik memanfaatkan suatu
API atau secara manual dengan perangkat lunak yang minimal dapat membuat
poligon dan melakukan kliping, proyeksi, dan rasterization.
Meskipun demikian, saya tidak bisa mengatakan betapa senang saya tentang buku ini.
Ini yang pertama dari jenisnya-tidak ada buku lain tunggal pada
pasar yang menggambarkan semua format file dari sebuah permainan
pemrogram sudut pandang.
Sebagai kesimpulan, ini adalah buku lagi bahwa tidak ada permainan 3D programmer bisa tanpa.Ketika saya menulis surat ini buku ini tidak
bahkan dicetak, tapi saya mencetak hard copy hanya untuk memiliki
dimeja saya untuk merujuk!
Hormat kami,
AndreLaMothe
Seri Editor untuk Pembangunan Seri Premier Press Permainan.
Pendahuluan
Trend baru merayap ke video game pada tingkat yang luar biasa.Kecenderungan ini membuat game lebih realistis, lebih dipercaya, dan dalam beberapa kasus, lebih menyenangkan. Sebagian besar permainan baru menggunakan tren ini, dan konsumen melahap game-game atas secepat mereka dapat dibuat. Ini tren baru, tentu saja, adalah penggunaan 3D. Dari model pemain untuk dunia game virtual, pemain menuntut beberapa bentuk interaksi 3D.
Gagasan interaksi 3D mencakup banyak genre, bahkan mereka yang secara tradisional telah 2D. Permainan seperti Blizzard Warcraft 3 telah membawa interaksi 3D ke dalam "Real Time Strategy" genre, sebuah genre yang umumnya didominasi oleh game 2D. Bahkan puzzle dan lainnya "nilai game "mulai untuk menghubungkan ke gagasan 3D.
Pada saat yang sama, produsen perangkat keras yang menciptakan yang lebih baik dan lebih cepat perangkat keras. Ultra-cepat prosesor dan kartu grafis mampu menangani jutaan potongan geometri 3D setiap detik menjadi sangat biasa di komputer rumah rata-rata. Hal ini memungkinkan Anda sebagai permainan pengembang untuk menulis game lebih realistis dan grafis yang intensif tanpa
menyebabkan komputer konsumen rata-rata 'untuk merangkak di bawah batu di
melihat mereka. Generasi baru kartu grafis yang memungkinkan lebih dan lebih dari perhitungan harus dilakukan pada kartu grafis, membebaskan sampai prosesor untuk berkonsentrasi pada aspek-aspek lain dari permainan, seperti suara, AI musuh, dan, well, efek bahkan lebih grafis.
Banyak perusahaan telah menyadari bahwa 3D adalah masa depan video game
dan telah bekerja untuk menyediakan pemain dengan top-rate grafis dan realisme,
termasuk yang berikut:
■ id Software (http://www.idsoftware.com) Mulai tahun 1992,
pencipta Wolfenstein revolusioner, Doom, dan Quake
seri adalah salah satu perusahaan pertama untuk mewujudkan impian 3D.
Mesin 3D mereka telah dilisensi oleh perusahaan lain untuk digunakan
dalam permainan yang tak terhitung jumlahnya.
■ VALVE Perangkat Lunak (http://www.valvesoftware.com) Meskipun
VALVE datang dalam sedikit lebih dari id, masih mengguncang dunia dengan
rilis Half-Life pada bulan November 1998. Para grafis
aspek Half-Life adalah pikiran-boggling, belum lagi
maju AI dan alur cerita yang luar biasa. Untuk pertama kalinya, teknologi maju seperti animasi skeletal dan berwarna pencahayaan yang tersedia pada komputer di rumah.
■ Epic MegaGames (http://www.epicgames.com) Dengan indah Unreal Engine, Epic membuka dunia untuk game dengan besar luar daerah, mengakhiri koridor sempit dan kamar kecil dari permainan sebelumnya.
■ Parallax (http://www.pxsoftware.com/) Parallax menunjukkan gamer bagaimana menakjubkan enam derajat kebebasan penuh bisa. dengan serangkaian permainan, Parallax membuka pintu untuk keseluruhan dimensi baru dalam industri game 3D.
■ 3DFX Saya tidak bisa mengabaikan kontribusi dari sekarang almarhum Video produsen chipset. 3DFX memperkenalkan umum publik untuk keajaiban akselerasi 3D dengan 3D hardware rilis dari seri Voodoo kartu video. Mereka adalah tercepat
Anda bisa membeli sampai nVidia TNT2 mereka merilis Ultra. Para kemampuan PC di rumah untuk mempercepat grafis 3D membuka cara untuk baru, permainan grafis canggih.
Perusahaan-perusahaan dan permainan hanyalah beberapa dari banyak kontributor fenomena 3D. Banyak game datang dan pergi, tanpa diketahui oleh masyarakat umum, dan bahkan untuk sebagian besar gamer. Meski begitu, beberapa dari mereka telah memperkenalkan teknologi baru dan ide-ide yang telah mengubah
wajah dunia game selamanya.
Tujuan Buku ini
Kemungkinan jika Anda membaca ini, Anda baru saja mendapat buku, atau
Anda sedang berdiri di sebuah toko buku yang mencoba untuk memutuskan apakah Anda harus mendapatkannya. Jika Anda tertarik untuk membuat game 3D, buku ini akan mengajarkan Anda bagaimana menerapkan sesuatu untuk bekerja dengan salah satu bagian yang paling penting,Model 3D. Buka salah satu game favorit 3D Anda. Lihatlah di sekitar Anda; melihat musuh-musuh di sana? Atau bagaimana yang paket kesehatan dan senjata duduk di pojok menunggu Anda untuk mengambil? Semua fitur ini diciptakan oleh 3DModel yang diciptakan oleh seniman dan dimuat ke dalam permainan oleh programmer seperti Anda.
Jadi sekarang Anda mungkin bertanya-tanya, "bagaimana saya akan mendapatkan keuntungan jika saya mendapatkan buku ini dan apa yang akan saya pelajari "Anda akan mempelajari semua macam barang keren di sini?.
Setelah Anda membaca ini Anda harus dapat:
■ Memahami cara memuat berbagai format model 3D.
■ Tampilan dan menjiwai berbagai jenis model dalam program Anda.
■ Memahami bagaimana animasi kerangka, inovasi yang menggunakan
"Kerangka" dalam model untuk keperluan animasi, bekerja. Rangka animasi menggunakan "tulang" dan "sendi" yang melekat pada model mesh untuk melakukan animasi. Rangka animasi memiliki banyak keunggulan dibandingkan animasi keyframe tradisional, termasuk mengurangi ruang penyimpanan, peningkatan kemudahan animasi untuk seniman, dan gerakan yang lebih realistis. Anda akan belajar jauh lebih banyak tentang teknologi luar biasa nanti dalam buku ini.
■ Lampirkan model untuk model lain untuk membentuk objek yang lebih kompleks.
Dua bab pertama yang didedikasikan untuk review dari matematika penting
keterampilan, dengan review singkat dari vektor dan matriks. Kemudian, setelah Anda membaca penelaahan terhadap angka empat sulit dipahami, Anda harus ditetapkan untuk sebagian besar matematika yang digunakan dalam bab-bab yang tersisa.
Setelah meninjau keterampilan matematika yang diperlukan, Anda pindah tepat ke beberapa format seperti OBJ (Bab 4) dan MD2 (Bab 5). Anda akan berjalan melalui struktur data dan prosedur memuat dibutuhkan untuk setiap jenis. Kode ditaburkan melalui teks dalam bentuk fungsi kecil atau struktur data, tetapi tidak pernah ada besar kode pembuangan.
Dari format yang sederhana, Anda akan belajar tentang dua dari paling penting dan berguna teknologi dalam model 3D: animasi kerangka dan penandaan. Anda sudah belajar apa animasi rangka adalah dalam sebelumnya bullet daftar.
Tagging, karena banyak panggilan itu, adalah kemampuan untuk melampirkan model sehingga mereka bergerak bersama-sama. Teknik ini digunakan untuk melakukan hal-hal seperti melampirkan model senjata ke tangan karakter, atau bahkan model potongan bersama-sama dari bagian, seperti kepala, batang tubuh, dan model kaki. Baca terus untuk Bab 9 dan Anda akan belajar lebih banyak tentang teknologi ini berguna, dan bagaimana berlaku untuk Quake 3 yang Format MD3.
Setelah Anda belajar tentang matematika diperlukan dan bermain sedikit dengan format sederhana,, Anda dapat melihat pada loading beberapa format yang lebih rumit. Beberapa dari ini akan skeletally animasi menggunakan teknik yang dijelaskan dalam bab-bab sebelumnya, dan beberapa mengandung tag untuk membuat model penuh karakter. Sekali lagi, setiap detail dari format akan diuraikan untuk memungkinkan implementasi yang mudah dalam permainan Anda sendiri.
Siapa yang Harus Baca Buku Ini
Anda tidak perlu banyak pengalaman pemrograman untuk menggunakan buku ini. Semua dari kode yang ditunjukkan di seluruh buku ini ditulis dalam C + +, sehingga dasar pemahaman tentang C / C + + adalah suatu keharusan. Demo pada CD ditulis menggunakan C + +, dengan OpenGL sebagai API grafis. Saya mencoba untuk menyimpan semua kode dan demo sesederhana mungkin untuk membuat port ke bahasa lain dan grafis API mungkin. Karena itu, demo mungkin tidak dioptimalkan sebanyak yang mereka bisa, sehingga merasa bebas untuk mencari cara untuk mengoptimalkan dan mempercepat mereka.
Jika Anda perlu memoles baik C + + atau OpenGL, saya sarankan Anda kunjungi http://www.gametutorials.com dan http://nehe.gamedev.net bantuan.
Referensi yang baik lainnya termasuk buku-buku dari Premier Game Programming
seri. OpenGL Game Programming dan Game Pemrograman Semua Dalam Satu akan menempatkan Anda dalam posisi yang sangat baik untuk sisa buku.
Setelah Anda memiliki pemahaman yang layak dari C + + dan OpenGL, Anda hampir siap untuk memulai perjalanan Anda ke dunia luas 3D.
Buku ini mengasumsikan Anda dapat membuat mesin 3D dasar, baik oleh memanfaatkan API atau secara manual dengan perangkat lunak yang, minimal, dapat membuat poligon dan melakukan kliping, proyeksi, dan rasterization.
Anda juga akan perlu memiliki pemahaman yang baik tentang aljabar dan trigonometri.
Memahami vektor, matriks, dan quaternions juga penting. Jika Anda merasa tidak nyaman dengan salah satu dari mereka (kecuali mungkin bagian angka empat, satu tidak ada benar-benar pernah merasa nyaman dengan mereka), saya akan menyarankan kunjungan singkat ke http://www.math.com untuk aljabar dan trigonometri, dan Bab tinjauan 1 dan 2 untuk review vektor,matriks, dan matematika angka empat. Sekarang Anda siap untuk menaklukkan model 3D. Bersenang-senang!
Apa yang ada di dalam CD
Seperti yang anda lihat, ada CD melekat pada penutup belakang buku. Ada banyak hal keren di sana. Semua kode sumber untuk semua format model yang dibahas dalam buku ini, ditambah beberapa tambahan untuk format yang tidak cocok dimasukkan. Juga termasuk adalah 3D ekstra Model yang dibuat oleh komunitas pengembangan game. Silakan cek File README untuk masing-masing model sebelum menggunakan mereka dalam Anda sendiri proyek-proyek. File-file README berisi nama masing-masing penulis, alamat email, dan setiap persyaratan penggunaan bahwa ia telah menempatkan sebagainya mengenai penggunaannya atau karya seninya.
Menggali lebih dalam pada CD, Anda akan menemukan berbagai alat yang digunakan dalam manufaktur 3D model dan obyek terkait lainnya, seperti kulit dan tekstur. Juga termasuk adalah shareware dan versi trial dari software popular. Coba
mereka semua dan melihat mana yang Anda ingin membeli dan menyimpan. Folder tambahan berisi berbagai proyek dan kode sumber yang ditulis oleh orang lain anggota masyarakat. Seperti karya seni, silahkan baca README
file disertakan dengan segala sesuatu untuk menghindari pelanggaran hak cipta.
Sesekali akan ada perbaikan bug dan update untuk kode sumber pada CD. Check out http://books.codershq.com. Saya berharap di masa depan untuk rilis loader lebih untuk jenis lain model 3D, serta port mereka ke bahasa lain dan API, jadi memeriksa situs sering.
Kata Akhir Sebelum Anda Mulai
Saya harap buku ini berguna saat Anda mulai menulis 3D impian Anda. Hal terbaik untuk dilakukan adalah mencoba untuk menulis kode Anda sendiri dari teks,bukan menyalinnya dari contoh-contoh. Anda akan belajar jauh lebih banyak. Jika Anda frustasi pada awalnya, tetap terus mencoba,nanti anda akan bisa. Bahkan nama-nama besar dalam industri game 3D tidak bisa melakukannya dengan benar
pertama kalinya. Ingat, elemen yang paling penting dari pengembangan game adalah untuk bersenang-senang! Selamat membaca.
© 2003 oleh Premier Press, sebuah divisi dari Teknologi Kursus. All rights reserved. Tidak ada bagian dari buku ini dapat direproduksi atau ditransmisikan dalam bentuk apapun atau dengan cara apapun, elektronik atau mekanik, termasuk fotokopi, rekaman, atau cara penyimpanan informasi atau pengambilan sistem tanpa izin tertulis dari Premier Tekan, kecuali untuk pencantuman singkat kutipan di review.
Logo Premier Press dan perdagangan terkait adalah merek dagang dari Premier Pers dan tidak boleh digunakan tanpa izin tertulis.
Penerbit: Stacy L. Hiquet
Manajer Pemasaran: Heather Hurley
Akuisisi Editor: Mitzi Foster Koontz
Proyek / Copy Editor: Kezia Endsley
Teknis Reviewer: Kelly Dempski
Interior Layout: Danielle Foster
Sampul Desainer: Mike Tanamachi
Indexer: Kelly Talbot
Proofreader: Jenny Davidson
Wolfenstein, Doom, dan Quake adalah hak cipta id Software. Half-Life adalah hak cipta
VALVE Perangkat Lunak. Unreal adalah hak cipta MegaGames Epic. Seri game Descent
adalah hak cipta Parallax. Milkshape 3D diciptakan oleh perusahaan chUmbaLum lembut.
Discreet adalah sebuah divisi dari Autodesk, Inc, 3d Studio Max, 3D Studio VIZ, Studio Karakter,Api, Api, Flint, Frost, Inferno, Lightscape, Asap, Streaming, dan Wire terdaftar
merek dagang, dan Discreet, 3ds Max, Backdraft, Pembakaran, Jobnet, dan Sparks yang
merek dagang dari Autodesk, Inc, Discreet Logic Inc di Amerika Serikat dan / atau negara lain.
Mental ray adalah merek dagang terdaftar dari citra mental GmbH & Co KG. Vecta3D-MAX adalah merek dagang dari IdeaWorks3D, Ltd Semua nama merek, nama produk, atau merek dagang milik pemegang masing-masing. (C) Copyright 2002 Autodesk, Inc All rights reserved.
Penting: Premier Press tidak dapat menyediakan dukungan perangkat lunak. Silahkan hubungi produsen perangkat lunak dukungan teknis baris atau situs Web untuk bantuan.
Premier Press dan penulis telah berusaha untuk membedakan merek dagang eksklusif dari istilah deskriptif dengan mengikuti gaya kapitalisasi yang digunakan oleh produsen.
Informasi yang terkandung dalam buku ini telah diperoleh oleh Premier Press dari sumber
yang dapat dipercaya. Namun, karena kemungkinan kesalahan manusia atau mekanis oleh sumber kami, Premier press, atau orang lain, Penerbit tidak menjamin keakuratan,kecukupan, atau kelengkapan informasi apapun dan tidak bertanggung jawab atas kesalahan atau kelalaian atau hasil yang diperoleh dari penggunaan informasi tersebut. Pembaca harus menyadari fakta bahwa Internet adalah entitas yang selalu berubah. Beberapa fakta mungkin telah berubah sejak buku ini dicetak.
ISBN: 1-59200-033-9
Katalog Perpustakaan Kongres Nomor Kartu: 2002111229
Dicetak di Amerika Serikat
03 04 05 06 07 BH 10 9 8 7 6 5 4 3 2 1
Premier Press, sebuah divisi dari Teknologi Kursus
2645 Erie Avenue, Suite 41
Cincinnati, Ohio 45208
UCAPAN TERIMA KASIH
Terlebih dulu, terima kasih kepada orang tua saya untuk mengizinkan saya melakukan hal ini; tanpa dukungan merka dan mensupport dengan tidak melihat saya sebagian besar musim panas ini tidak akan pernah mungkin terjadi.
Sebuah berkat besar untuk Trent Polack telah membantu saya mengamankan kesepakatan ini buku dan
menjadi seorang teman yang mengagumkan dan programmer. Tanpa kalian, aku tidak akan pernah berhasil sampai ke tempat saya hari ini.
Aku tidak bisa melupakan semua orang yang besar atas di gamedev.net, flipcode.com. Kalian telah berharga dalam membantu saya memilah-milah masalah, bug squash, dan teman-teman terbaik. Ada terlalu banyak nama, tapi beberapa yang telah terbukti tak ternilai telah Nicholas Cooper, Sean Kent, Denis Lukianov,Ron Penton, dan Henrik Stuart.
Untuk teman saya dan penyelamat Amy untuk paksa menyeretku menjauh dari komputer saya dan keluar dari ruangan saya setiap begitu sering, itu membuat saya gila.
Terakhir, namun pasti tidak sedikit, yang besar berkat orang-orang Premier Press, terutama Mitzi untuk tetap dengan saya sepanjang waktu aku sedang menulis. Dukungan Anda telah hebat, bahkan melalui komputer,Internet, dan masalah komunikasi. Semua editor yang bekerja, anda semua telah mengajari saya banyak pelajaran berharga karena saya telah bekerja pada buku pertama saya. Saya berharap untuk bekerja dengan kalian semua lagi.
Tentang Penulis
Evan Pipho selalu tertarik pada komputer dan elektronik. Sebagai anak muda, ia belajar untuk mengoperasikan IBM PC ayahnya, bermain game, dan bereksperimen dengan banyak program di dalamnya. Sambil bermain dengan mesin Windows ayahnya, dia mulai mengenal bahasa seperti QBASIC dan C dan menghabiskan waktunya untuk pengembangan game. Dia telah memutuskan sejak lama bahwa ia ingin mengejar pengembangan game, sehingga ia langsung belajar dan masuk beberapa kelas di perguruan tinggi dan beberapa bulan di depan komputer, dia ketagihan!
Anda dapat mengunjungi forum penulis di http://www.codershq.com. Klik Forum link. Jika Anda lebih suka email pribadi ke forum publik, Anda dapat hubungi dia di evan@codershq.com.
DAFTAR ISI
Surat dari Editor .............. xvi
Pendahuluan dan Ikhtisar .................... xix
Bab 1 Meninjau Matriks dan Vektor .............. 1
Bab 2 Pengantar Quaternions ................. 23
Bab 3 Quake II MD2 Model ....................... 37
Bab 4 OBJ ............................... 61
Bab 5 Sebuah Pengantar Animasi rangka ..... 71
Bab 6 Milkshape 3D .................................... 87
Bab 7 Model 3ds ................................ 109
Bab 8 MDL, Format Half-Life legendaris ... 127
Bab 9 Masukkan Quake: Quake III
Format MD3 ..................................... 135
Bab 10 Tips, Trik, dan Metode .................... 153
Lampiran A Format Model 3D Umum ................. 165
Lampiran B STL Primer Vector ........................... 169
Lampiran C Pergi Di atas dan Beyond .................... 183
Indeks .............................................. 191
ISI
Surat dari Editor ..................... xvi
Pendahuluan dan Ikhtisar ........................... xix
BAB 1 Meninjau Matriks
dan Vektor .......................... 1
Memahami dan Menggunakan Matriks .............................................. 2
Zero dan Matriks Identitas ............................................ .................................. 3
Operasi matriks ………………………………………………………………5
Determinan Matriks ............................................... ...........................................8
Para Invers dari Matriks……………………………………………………… 9
Menggunakan dan Memahami Vektor .............................................. ................12
Notasi vektor…………………………………………………………………..14
Besaran Vektor dan Unit .............................................. .....................................14
Aritmatika vektor............................................... ................................................14
Produk vektor………………………………………………………………… 17
Transformasi Vektor dengan Matriks ............................................ ............... 19
Para CD Kode………………………………………………………………… 20
Kesimpulan……………………………………………………………………. 21
BAB 2 Pengantar Quaternions ....................... 23
Apakah angka empat dan Mengapa Apakah Mereka Digunakan? .................... 24
Angka empat Operasi ................................................ ....................................... 26
Konversi angka empat ................................................ ...................................... 28
Interpolasi dengan Quaternions ............................................... ...........................34
LERP (Interpolasi Linear Quaternions) ........................................... ...................35
SLERP (Bulat Linear Interpolation) ............................................ ........................35
Kesimpulan …………………………………………………………………….36
BAB 3 Quake II
Model MD2 ....................... 37
Memahami Fungsi FILE............................................. ........................................ 39
Melihat Kode Sumber ............................................. ............................................43
Data: Frame dan simpul ............................................ ..........................................46
Membuat Ini Padat: Segitiga………………………………………………….. 48
Hasil rendering untuk Pertama Kalinya ........................................... ...................50
Kecantikan: Menambahkan Skins .............................................. .........................52
Membuat Ini Pindah: Animasi ............................................. ...............................55
Strip dan Fans: Perintah GL ............................................ ....................................56
Kesimpulan……………………………………………………………………. 58
BAB 4 Memuat File OBJ ... …………………………………………………61
Parsing File Teks ……………………………………………………………...62
Memahami Format obj .............................................. .........................................63
Memuat Format OBJ ………………………………………………………….66
Rendering ……………………………………………………………………..68
Kesimpulan ……………………………………………………………………70
BAB 5 Sebuah Pengantar Animasi rangka ............... ………………………71
Memahami Animasi rangka ............................................... .................................73
Manfaat Animasi rangka .............................................. .......................................73
Cara kerja batin Animasi rangka ............................................. ............................75
Keyframes dalam rangka Animasi .............................................. .........................77
Mengambil Posisi ………………………………………………………………78
Menempelkan Mesh …………………………………………………………….80
Demo ……………………………………………………………………………82
Demo Kontrol …………………………………………………………………...82
Aplikasi Advanced Animasi rangka ............................................. ....................... 85
Kesimpulan ……………………………………………………………………...86
BAB 6 Milkshape 3D ........ …………………………………………………….87
Mendapatkan Data ………………………………………………………………88
Simpul …………………………………………………………………………...89
Wajah ……………………………………………………………………………90
Jerat ……………………………………………………………………………...92
Bahan ……………………………………………………………………………93
Animasi …………………………………………………………………………99
Menemukan Orangtua Hilang .............................................. ...............................101
Persiapan Awal ………………………………………………………………...102
Animasi dan Interpolasi ............................................... ........................................103
Kesimpulan …………………………………………………………………….108
BAB 7 Para Model 3ds .... …………………………………………………….109
Memahami File 3ds Chunky .............................................. ..................................110
3ds Chunk Header: Mulai ............................................ ........................................112
3ds File Data ……………………………………………………………………113
Header 0x4D4D ………………………………………………………………...113
Para 0x0002 Versi Chunk .............................................. ......................................113
Objek dalam Chunk 0x4000 ............................................. ...................................113
Bahan 0xAFFF …………………………………………………………………120
Rendering 3ds File Anda ……………………………………………………….122
Kesimpulan ……………………………………………………………………..125
BAB 8 MDL, Para Legendaris Half-Life Format ................ ………………..127
File Viewer MDL Valve .............................................. ........................................129
Menginisialisasi Model ………………………………………………………130
Rendering Kode MDL .............................................. .........................................131
Menghidupkan Model ………………………………………………………...131
Untuk Praktek selengkapnya ... ……………………………………………….132
Kesimpulan …………………………………………………………………....133
BAB 9 Masukkan Quake:Quake III MD3 Format ....... …………………...135
Mengambil data ……………………………………………………………….137
Header MD3 …………………………………………………………………..138
Boneframes ……………………………………………………………………138
Struktur Tag MD3 ……………………………………………………………..140
Jerat …………………………………………………………………………….141
Menggunakan Model Multi-Bagian ……………………………………………148
Tags …………………………………………………………………………….149
Kesimpulan …………………………………………………………………….151
BAB 10 Tips, Trik,dan Metode ...................... ……………………………….153
Menghitung normals Wajah ............................................... .................................154
Menghitung Vertex …………………………………………………………….155
Membuat Format Sendiri .............................................. .......................................156
Format Teks Berbasis ………………………………………………………….156
Format biner Berbasis .............................................. ............................................157
Perencanaan File ……………………………………………………………….157
Membuat File …………………………………………………………………..160
Interpolasi linier ………………………………………………………………..161
Tips Pengoptimalan ……………………………………………………………162
Kesimpulan ………………………………………………………………….....164
LAMPIRAN A Model 3D Umum
Format .......................... 165
LAMPIRAN B STL Vector Primer ……………………………………………169
STL ……………………………………………………………………………..170
Dasar-dasar dari Menggunakan Vektor ............................................. ..................170
Penyortiran ……………………………………………………………………..173
Pencarian ……………………………………………………………………….174
Menggunakan Objek Sendiri .............................................. .................................176
Pointer ………………………………………………………………………….179
Kesimpulan …………………………………………………………………….181
LAMPIRAN C Pergi atas
dan Beyond ....................... 183
Untuk Informasi Lebih Lanjut ………………………………………………….186
Apa yang ada di CD …………………………………………………………….188
Indeks ................................................. ..... ………………………………………191
Surat dari Editor
Sebagai programmer game 3D, cepat atau lambat waktu datang ketika Anda bosan dengan kubus dan terbang berputar kapal ruang dalam ruang. Anda ingin karakter 3D sepenuhnya diartikulasikan dan animasi. Jadi Anda mulai mencari di Internet untuk daripadanya informasi,dan cepat atau lambat Anda menyadari bahwa meskipun ada banyak situs dengan informasi-dan banyak demo-itu semua agak berguna dalam realitas. Ada terlalu banyak lubang dalam format file penjelasan, dan pada akhirnya Anda mungkin akan lebih baik reverse-engineering file daripada menyeberang melalui hacker dokumen setelah dokumen hacker.
Masalah ini adalah salah satu yang saya pribadi telah berurusan dengan
untuk waktu yang lama. Ketika saya pertama kali ingin menulis sebuah file Quake
loader, saya berpikir bahwa akan mudah, harus ada satu miliar
situs di Internet dengan penjelasan yang jelas dan ringkas, kan?
Namun, tidak ada! Sejauh yang saya tahu ada benar-benar hanya
satu pun dokumen pada Internet dengan format file. MD2,
dan itu tidak lengkap, tetapi lebih dari sebuah FAQ. Selain itu, ini
hanya format file, tetapi tidak benar-benar menjelaskan semua rincian. Hal ini
hanya satu contoh. Ada banyak. Intinya adalah bahwa
apakah itu format permainan seperti Quake itu. MD2 atau. MD3 atau 3D
Format file Studio Max, tidak ada cukup tempat tunggal untuk menemukan
informasi. Masalah ini adalah motivasi untuk buku ini.
Tujuan saya untuk buku ini adalah untuk memberikan referensi tunggal untuk
format file yang paling populer, tetapi pada saat yang sama mengajari Anda bagaimana untuk menggunakannya. Artinya, itu berguna untuk menunjukkan cara membacasetiaptombol frame dari file MD2. jika Anda tidak tahu bagaimana untuk interpolasi mereka. Dengan demikian, penulis, Evan Pipho, tidak hanya mencakup setiap format file penting (dalam alasan), tapi dia juga dibahas
materi dasar seperti matematika, animasi tulang,
dan banyak lagi. Jika Anda membuka buku ini tidak mengetahui satu hal pun
tentang karakter animasi 3D, pada akhir buku ini, Anda akan
tahu bagaimana bekerja dengan semua format file yang populer, bagaimana
menulis pembaca, dan bagaimana untuk benar-benar menghidupkan jala-jala secara realtime
dalam aplikasi Anda. Tentu saja, buku ini mengasumsikan bahwa Anda sudah familiar dengan grafis 3D, DirectX (atau OpenGL) dan
Anda dapat membuat mesin 3D sempurna baik memanfaatkan suatu
API atau secara manual dengan perangkat lunak yang minimal dapat membuat
poligon dan melakukan kliping, proyeksi, dan rasterization.
Meskipun demikian, saya tidak bisa mengatakan betapa senang saya tentang buku ini.
Ini yang pertama dari jenisnya-tidak ada buku lain tunggal pada
pasar yang menggambarkan semua format file dari sebuah permainan
pemrogram sudut pandang.
Sebagai kesimpulan, ini adalah buku lagi bahwa tidak ada permainan 3D programmer bisa tanpa.Ketika saya menulis surat ini buku ini tidak
bahkan dicetak, tapi saya mencetak hard copy hanya untuk memiliki
dimeja saya untuk merujuk!
Hormat kami,
AndreLaMothe
Seri Editor untuk Pembangunan Seri Premier Press Permainan.
Pendahuluan
Trend baru merayap ke video game pada tingkat yang luar biasa.Kecenderungan ini membuat game lebih realistis, lebih dipercaya, dan dalam beberapa kasus, lebih menyenangkan. Sebagian besar permainan baru menggunakan tren ini, dan konsumen melahap game-game atas secepat mereka dapat dibuat. Ini tren baru, tentu saja, adalah penggunaan 3D. Dari model pemain untuk dunia game virtual, pemain menuntut beberapa bentuk interaksi 3D.
Gagasan interaksi 3D mencakup banyak genre, bahkan mereka yang secara tradisional telah 2D. Permainan seperti Blizzard Warcraft 3 telah membawa interaksi 3D ke dalam "Real Time Strategy" genre, sebuah genre yang umumnya didominasi oleh game 2D. Bahkan puzzle dan lainnya "nilai game "mulai untuk menghubungkan ke gagasan 3D.
Pada saat yang sama, produsen perangkat keras yang menciptakan yang lebih baik dan lebih cepat perangkat keras. Ultra-cepat prosesor dan kartu grafis mampu menangani jutaan potongan geometri 3D setiap detik menjadi sangat biasa di komputer rumah rata-rata. Hal ini memungkinkan Anda sebagai permainan pengembang untuk menulis game lebih realistis dan grafis yang intensif tanpa
menyebabkan komputer konsumen rata-rata 'untuk merangkak di bawah batu di
melihat mereka. Generasi baru kartu grafis yang memungkinkan lebih dan lebih dari perhitungan harus dilakukan pada kartu grafis, membebaskan sampai prosesor untuk berkonsentrasi pada aspek-aspek lain dari permainan, seperti suara, AI musuh, dan, well, efek bahkan lebih grafis.
Banyak perusahaan telah menyadari bahwa 3D adalah masa depan video game
dan telah bekerja untuk menyediakan pemain dengan top-rate grafis dan realisme,
termasuk yang berikut:
■ id Software (http://www.idsoftware.com) Mulai tahun 1992,
pencipta Wolfenstein revolusioner, Doom, dan Quake
seri adalah salah satu perusahaan pertama untuk mewujudkan impian 3D.
Mesin 3D mereka telah dilisensi oleh perusahaan lain untuk digunakan
dalam permainan yang tak terhitung jumlahnya.
■ VALVE Perangkat Lunak (http://www.valvesoftware.com) Meskipun
VALVE datang dalam sedikit lebih dari id, masih mengguncang dunia dengan
rilis Half-Life pada bulan November 1998. Para grafis
aspek Half-Life adalah pikiran-boggling, belum lagi
maju AI dan alur cerita yang luar biasa. Untuk pertama kalinya, teknologi maju seperti animasi skeletal dan berwarna pencahayaan yang tersedia pada komputer di rumah.
■ Epic MegaGames (http://www.epicgames.com) Dengan indah Unreal Engine, Epic membuka dunia untuk game dengan besar luar daerah, mengakhiri koridor sempit dan kamar kecil dari permainan sebelumnya.
■ Parallax (http://www.pxsoftware.com/) Parallax menunjukkan gamer bagaimana menakjubkan enam derajat kebebasan penuh bisa. dengan serangkaian permainan, Parallax membuka pintu untuk keseluruhan dimensi baru dalam industri game 3D.
■ 3DFX Saya tidak bisa mengabaikan kontribusi dari sekarang almarhum Video produsen chipset. 3DFX memperkenalkan umum publik untuk keajaiban akselerasi 3D dengan 3D hardware rilis dari seri Voodoo kartu video. Mereka adalah tercepat
Anda bisa membeli sampai nVidia TNT2 mereka merilis Ultra. Para kemampuan PC di rumah untuk mempercepat grafis 3D membuka cara untuk baru, permainan grafis canggih.
Perusahaan-perusahaan dan permainan hanyalah beberapa dari banyak kontributor fenomena 3D. Banyak game datang dan pergi, tanpa diketahui oleh masyarakat umum, dan bahkan untuk sebagian besar gamer. Meski begitu, beberapa dari mereka telah memperkenalkan teknologi baru dan ide-ide yang telah mengubah
wajah dunia game selamanya.
Tujuan Buku ini
Kemungkinan jika Anda membaca ini, Anda baru saja mendapat buku, atau
Anda sedang berdiri di sebuah toko buku yang mencoba untuk memutuskan apakah Anda harus mendapatkannya. Jika Anda tertarik untuk membuat game 3D, buku ini akan mengajarkan Anda bagaimana menerapkan sesuatu untuk bekerja dengan salah satu bagian yang paling penting,Model 3D. Buka salah satu game favorit 3D Anda. Lihatlah di sekitar Anda; melihat musuh-musuh di sana? Atau bagaimana yang paket kesehatan dan senjata duduk di pojok menunggu Anda untuk mengambil? Semua fitur ini diciptakan oleh 3DModel yang diciptakan oleh seniman dan dimuat ke dalam permainan oleh programmer seperti Anda.
Jadi sekarang Anda mungkin bertanya-tanya, "bagaimana saya akan mendapatkan keuntungan jika saya mendapatkan buku ini dan apa yang akan saya pelajari "Anda akan mempelajari semua macam barang keren di sini?.
Setelah Anda membaca ini Anda harus dapat:
■ Memahami cara memuat berbagai format model 3D.
■ Tampilan dan menjiwai berbagai jenis model dalam program Anda.
■ Memahami bagaimana animasi kerangka, inovasi yang menggunakan
"Kerangka" dalam model untuk keperluan animasi, bekerja. Rangka animasi menggunakan "tulang" dan "sendi" yang melekat pada model mesh untuk melakukan animasi. Rangka animasi memiliki banyak keunggulan dibandingkan animasi keyframe tradisional, termasuk mengurangi ruang penyimpanan, peningkatan kemudahan animasi untuk seniman, dan gerakan yang lebih realistis. Anda akan belajar jauh lebih banyak tentang teknologi luar biasa nanti dalam buku ini.
■ Lampirkan model untuk model lain untuk membentuk objek yang lebih kompleks.
Dua bab pertama yang didedikasikan untuk review dari matematika penting
keterampilan, dengan review singkat dari vektor dan matriks. Kemudian, setelah Anda membaca penelaahan terhadap angka empat sulit dipahami, Anda harus ditetapkan untuk sebagian besar matematika yang digunakan dalam bab-bab yang tersisa.
Setelah meninjau keterampilan matematika yang diperlukan, Anda pindah tepat ke beberapa format seperti OBJ (Bab 4) dan MD2 (Bab 5). Anda akan berjalan melalui struktur data dan prosedur memuat dibutuhkan untuk setiap jenis. Kode ditaburkan melalui teks dalam bentuk fungsi kecil atau struktur data, tetapi tidak pernah ada besar kode pembuangan.
Dari format yang sederhana, Anda akan belajar tentang dua dari paling penting dan berguna teknologi dalam model 3D: animasi kerangka dan penandaan. Anda sudah belajar apa animasi rangka adalah dalam sebelumnya bullet daftar.
Tagging, karena banyak panggilan itu, adalah kemampuan untuk melampirkan model sehingga mereka bergerak bersama-sama. Teknik ini digunakan untuk melakukan hal-hal seperti melampirkan model senjata ke tangan karakter, atau bahkan model potongan bersama-sama dari bagian, seperti kepala, batang tubuh, dan model kaki. Baca terus untuk Bab 9 dan Anda akan belajar lebih banyak tentang teknologi ini berguna, dan bagaimana berlaku untuk Quake 3 yang Format MD3.
Setelah Anda belajar tentang matematika diperlukan dan bermain sedikit dengan format sederhana,, Anda dapat melihat pada loading beberapa format yang lebih rumit. Beberapa dari ini akan skeletally animasi menggunakan teknik yang dijelaskan dalam bab-bab sebelumnya, dan beberapa mengandung tag untuk membuat model penuh karakter. Sekali lagi, setiap detail dari format akan diuraikan untuk memungkinkan implementasi yang mudah dalam permainan Anda sendiri.
Siapa yang Harus Baca Buku Ini
Anda tidak perlu banyak pengalaman pemrograman untuk menggunakan buku ini. Semua dari kode yang ditunjukkan di seluruh buku ini ditulis dalam C + +, sehingga dasar pemahaman tentang C / C + + adalah suatu keharusan. Demo pada CD ditulis menggunakan C + +, dengan OpenGL sebagai API grafis. Saya mencoba untuk menyimpan semua kode dan demo sesederhana mungkin untuk membuat port ke bahasa lain dan grafis API mungkin. Karena itu, demo mungkin tidak dioptimalkan sebanyak yang mereka bisa, sehingga merasa bebas untuk mencari cara untuk mengoptimalkan dan mempercepat mereka.
Jika Anda perlu memoles baik C + + atau OpenGL, saya sarankan Anda kunjungi http://www.gametutorials.com dan http://nehe.gamedev.net bantuan.
Referensi yang baik lainnya termasuk buku-buku dari Premier Game Programming
seri. OpenGL Game Programming dan Game Pemrograman Semua Dalam Satu akan menempatkan Anda dalam posisi yang sangat baik untuk sisa buku.
Setelah Anda memiliki pemahaman yang layak dari C + + dan OpenGL, Anda hampir siap untuk memulai perjalanan Anda ke dunia luas 3D.
Buku ini mengasumsikan Anda dapat membuat mesin 3D dasar, baik oleh memanfaatkan API atau secara manual dengan perangkat lunak yang, minimal, dapat membuat poligon dan melakukan kliping, proyeksi, dan rasterization.
Anda juga akan perlu memiliki pemahaman yang baik tentang aljabar dan trigonometri.
Memahami vektor, matriks, dan quaternions juga penting. Jika Anda merasa tidak nyaman dengan salah satu dari mereka (kecuali mungkin bagian angka empat, satu tidak ada benar-benar pernah merasa nyaman dengan mereka), saya akan menyarankan kunjungan singkat ke http://www.math.com untuk aljabar dan trigonometri, dan Bab tinjauan 1 dan 2 untuk review vektor,matriks, dan matematika angka empat. Sekarang Anda siap untuk menaklukkan model 3D. Bersenang-senang!
Apa yang ada di dalam CD
Seperti yang anda lihat, ada CD melekat pada penutup belakang buku. Ada banyak hal keren di sana. Semua kode sumber untuk semua format model yang dibahas dalam buku ini, ditambah beberapa tambahan untuk format yang tidak cocok dimasukkan. Juga termasuk adalah 3D ekstra Model yang dibuat oleh komunitas pengembangan game. Silakan cek File README untuk masing-masing model sebelum menggunakan mereka dalam Anda sendiri proyek-proyek. File-file README berisi nama masing-masing penulis, alamat email, dan setiap persyaratan penggunaan bahwa ia telah menempatkan sebagainya mengenai penggunaannya atau karya seninya.
Menggali lebih dalam pada CD, Anda akan menemukan berbagai alat yang digunakan dalam manufaktur 3D model dan obyek terkait lainnya, seperti kulit dan tekstur. Juga termasuk adalah shareware dan versi trial dari software popular. Coba
mereka semua dan melihat mana yang Anda ingin membeli dan menyimpan. Folder tambahan berisi berbagai proyek dan kode sumber yang ditulis oleh orang lain anggota masyarakat. Seperti karya seni, silahkan baca README
file disertakan dengan segala sesuatu untuk menghindari pelanggaran hak cipta.
Sesekali akan ada perbaikan bug dan update untuk kode sumber pada CD. Check out http://books.codershq.com. Saya berharap di masa depan untuk rilis loader lebih untuk jenis lain model 3D, serta port mereka ke bahasa lain dan API, jadi memeriksa situs sering.
Kata Akhir Sebelum Anda Mulai
Saya harap buku ini berguna saat Anda mulai menulis 3D impian Anda. Hal terbaik untuk dilakukan adalah mencoba untuk menulis kode Anda sendiri dari teks,bukan menyalinnya dari contoh-contoh. Anda akan belajar jauh lebih banyak. Jika Anda frustasi pada awalnya, tetap terus mencoba,nanti anda akan bisa. Bahkan nama-nama besar dalam industri game 3D tidak bisa melakukannya dengan benar
pertama kalinya. Ingat, elemen yang paling penting dari pengembangan game adalah untuk bersenang-senang! Selamat membaca.
memuat file OBJ
BAB 4
Berikutnya akan membahas File OBJ. Ini adalah format yang baik untuk objek yang statis dalam sebuah game, seperti potongan kecil dari level geometri, senjata yang tergeletak di tanah, dan daya yang tersebar di seluruh tingkat. OBJ format dapat di eksport dari Maya, salah satu standart industri yang mengkreasikan konten 3D, termasuk dunia 3D and tentu saja model 3D untuk game. Digunakan oleh banyak perusahaan game dan artis internasional, Maya telah menjadi salah satu model program 3D yang paling terkenal. Maya dikembangkan dan dijual oleh Alias|waveFront http://www.aliaswavefront.com).
Sebuah ASCII sederhana berbasis format, format model OBJ mengandung data geometry tetapi tanpa animasi. Mungkin kamu ingin menggunakan format ini jika perlu dapat diedit, ataupun membuat file dengan tangan tanpa paket permodelan. Ini juga format yang bagus untuk digunakan jika tidak membutuhkan animasi karena ini sangat mudah digunakan. Meskipun itu bisa mengandung fitur seperti permukaan yang melengkung, fitur tersebut berada diluar lingkup buku ini. Bab ini hanya meliputi geometry dasar. Ini termasuk wajah-wajah yang membentuk model, bersama dengan simpul yang membentuk wajah sendiri. Juga termasuk didalamnya koordinat tekstur , untuk mengijinkan ditambahkannya tekstur map.serta titik normal digunakan untuk penerangan.
MENGURAIKAN FILE TEKS
Sebelum anda bekerja menggunakan file ASCII, anda harus mngerti bagaimana cara menguraikan informasi yang anda butuhkan yang disebut juga menguraikan dari file. C++ sangat sensitive mengenai apa itu tipe data. Anda tidak bisa dengan mudah mengatur bilangan bulat sama dengan string yang berisi sebuah integer dalam format teks dan mengharapkannya untuk bekerja seperti yang Anda pikir. Sebaliknya, anda harus mengekstraksi data dan mengkonversikannya menggunakan fungsi khusus. Dua fungsi terbaik untuk melakukannya yaitu sscanf(untuk mengekstraksi data dari string) dan fscanf (untuk melakukan hal yang sama dengan file). Kedua fungsi tersebut memiliki parameter yang sama, dengan pengecualian dari tiap parameter. Parameter pertama untuk sscanf adalah string yang menahan data yang tidak terformat, sedangkan parameter pertama dari fscanf adalah pointer fileyang ingin anda ekstrak. Parameter kedua adalah yang terpenting. Memegang string yang disebut format string. Format string membahas tentang scanf yang mana tipe variable mencari dan dalam urutan yang bagaimana. Sebagai contoh format string, tabel 4.1 menunjukan bagaimana membuat format string anda.
Variable terakhir adalah pointer ke variable yang ingin anda simpan kedalam nilai konversi anda. Karena fungsi scanf mengambil nomor variable dari argument, anda dapat membacanya dengan berbagai nilai dalam 1 waktu seperti yang anda inginkan. Ini adalah yang terbaik diikat dengan contoh sederhana. Katakanlah Anda memiliki sebuah string, disebut szVertex, yang berisi baris:
Vertex 15 - [14.12, 12.51, 33.10];
Anda dapat melihatnya ada sebuah string, integer dan 3 nilai floating point, sama bagusnya dengan koma, tanda kurung dan titik koma. Anda ingin mengekstrak bagian-bagian yang berguna dan menyimpannya di tipe data yang benar sehingga Anda dapat menggunakannya di kemudian hari dalam program Anda.
Fungsi Scanf akan tampak seperti berikut ini :
sscanf(szVertex, "%s %d – [%f, %f, %f];", s, &i, &f1, &f2, &f3);
seperti yang dapat anda lihat format string terlihat banyak seperti garis aslinya, hanya dengan nilai yang sebenarnya dihapus. Argument % menjelaskan sscanf digunakan untuk mencari lokasi. Tabel 4.1 memperlihatkan kepada anda banyak digunakannya argument % dan dengan apa mereka berdiri. Set terakhir dari parameter adalah daftar tujuan varable. S sebagai string, ada kemungkinan sebagai karakter array, dan I menunjukan integer dan f1, f2, f3 menunjukan banyaknya floating point yang memegang tiga nilai antara kurung persegi. Pastikan tujuan dari variable anda cocok dengan argument yang tepat dalam format string (s menuju kepada string, I menuju kepada inteer dan &f1, &f2, &f3 menuju kepada nilai floating point). Anda dapat melakukan apapun dsini dengan menampilkan fscanf, hanya parameter pertama adalah pointer file daripada sumber string.
MEMAHAMI FORMAT OBJ
Seperti disebutkan, format OBJ didalam teks biasa. Jika Anda membukanya di Notepad
atau Wordpad, Anda akan melihat daftar simpul dan geometri lainnya. ASCII (teks biasa) memiliki format berbasis daripada biner yang memiliki kelebihan dan kekurangan. Karena mereka disimpan dalam teks biasa, lebih mudah untuk seseorang untuk mengedit file tersebut dengan tangan. Ini bisa baik atau buruk. Hal ini adalah yang baik jika Anda perlu tweak bagian kecil dari model, tetapi tweak dapat berakhir pada bencana jika Anda secara tidak sengaja mengubah cara file ditata. Format ASCII juga cenderung untuk mengambil ruang disk lebih dari biner berdasarkan format karena mereka membutuhkan ruang ekstra untuk nilai-nilai besar karena panjangnya satu "bagian" dari geometri pada setiap baris.
Tabel 4.1 Parameter untuk Format String
PARAMETER FUNGSI
% s Adalah format string yang berarti bahwa scanf akan mencari string. Akan terus membacanya sampai menemukan null,ruang,atau karakter garis baru
%c %c membaca karakter tunggal. Dan akan membaca karakter pertama yang dilihat.
%d Membaca bilangan bulat.dengan scanf akan membaca bilangan bulat sampai menemukan spasi,huruf,dan simbol yang bukan angka. %d akan membaca integer positif dan negatif.
%f %f akan membaca bilangan real.
Seperti yang anda lihat,disini ada 4 tipe garis. Mereka adalah garis yang memberikan rincian tentang simpul, koordinat tekstur, titik normal,atau wajah. Mungkin ada jalur lain untuk hal-hal seperti permukaan melengkung dan komentar juga, tetapi Anda tidak akan membutuhkan itu di sini.
Setiap baris dari file model yang dimulai dengan satu atau dua huruf yang menceritakan
program,untuk apa garis itu. Ada empat jenis prefiks, yang akan dijelaskan di sini:
V: Surat v diikuti oleh spasi adalah simpul plain vanilla. Jika hal ini adalah kasus, berikut sebuah ruang tunggal akan tiga floating-point nilai, masing-masing dipisahkan dengan spasi tunggal juga.
vt: String vt menandakan bahwa baris berisi koordinat tekstur. Setiap koordinat tekstur adalah dua float lagi dipisahkan oleh satu spasi.
vn: vn menandakan titik normal. Selain awalan, baris cermin garis titik: tiga float.
f: f menandakan sebuah wajah. Wajah adalah satu set indeks ke dalam array
simpul, texcoords, dan normals. Namun, hanya simpul indeks harus ada; dua yang lain adalah opsional. Setiap Indeks simpul harus positif. Sebuah nilai negatif di wajah
struktur mungkin berarti file tersebut rusak karena Anda tidak bisa memiliki indeks array negatif. Ini tidak akan benar untuk mengatakan "mengambil obyek kedua negatif, "sehingga Anda jelas tidak bisa mengambil "negatif kedua" simpul baik. Pendekatan terbaik jika Anda menemukan nilai negatif dalam struktur wajah untuk mengabaikan
wajah sama sekali.
Lainnya: Setiap baris prefiks lain seperti g (group), # (komentar), p (titik), l (baris), surfing (permukaan), dan curv (kurva) harus diabaikan untuk saat ini. Meskipun mereka adalah bagian dari format,mereka tidak dibahas di sini.
Sebuah garis khas dalam file obj yang mewakili wajah atau segitiga dan hanya berisi simpul akan terlihat seperti ini:
f 1 2 3
Kode ini mengatakan bahwa wajah menggunakan titik pertama, kedua, dan ketiga indeks untuk menggambar segitiga. Tidak adanya set lain indeks menunjukkan bahwa tekstur koordinat dan titik normals tidak diperlukan.
Jika wajah yang bertekstur, tetapi tidak mengandung titik normals, sintaks akan sama dengan ini:
f 1 / 4 2 / 5 3 / 6
Baris ini mengatakan bahwa segitiga menggunakan simpul 1, 2, dan 3 dan tekstur indeks 4, 5, dan 6.
Namun variasi lain dari garis ini dapat menggunakan semua tiga jenis simpul data koordinat tekstur titik,, dan indeks yang normal. Baris yang akan terlihat seperti:
f 1/4/7 2/5/8 3/6/9
Angka pertama adalah untuk simpul itu sendiri, yang kedua adalah untuk tekstur mengkoordinasikan, dan yang ketiga adalah untuk titik normal.
Hanya ada satu variasi yang lebih: normals vertex dan titik, tetapi tidak ada koordinat tekstur. Ini terlihat seperti ini:
f 1 / / 4 2 / / 5 3 / / 6
Dua garis miring memisahkan angka bukan satu, ini menunjukkan bahwa angka kedua adalah normal simpul, bukan koordinat tekstur.
Kenyataan bahwa wajah tidak perlu berisi semua informasi dapat sangat berguna. Tidak ada alasan sebuah objek yang tidak memerlukan pencahayaan atau texturing harus berisi informasi tersebut. Dengan hanya meninggalkan tidak dibutuhkan informasi di luar, ukuran file berkurang jauh.
Mari kita sekarang beralih ke beberapa kode yang menunjukkan Anda bagaimana untuk memuat file menjadi sesuatu yang bisa anda kerjakan.
Memuat Format OBJ
Karena obj tidak berisi apapun di header, Anda membutuhkan beberapa semacam array resizable untuk memegang simpul Anda, wajah, dan komponen lainnya. Dalam pelaksanaannya ditampilkan di sini, semuanya dimuat ke sebuah STL vektor, semacam array resizable.
Setiap jenis data memiliki struktur tersendiri. Vector3 berisi dua float dan digunakan untuk menyimpan posisi titik tunggal, atau normal vertex. Vector2 jauh seperti saudara yang lebih besar, tetapi memegang hanya dua nilai, cocok untuk koordinat tekstur.
Terakhir dari semua adalah SObjFace, yang berisi 12 bilangan bulat unsigned, tiga untuk
setiap sudut indeks, indeks tekstur coord, dan indeks yang normal. bahkan jika semua variabel wajah tidak selalu digunakan, penyimpanannya masih ada.
Sekarang Anda siap untuk membaca dalam file. Cara terbaik untuk melakukan ini adalah membaca dalam satu baris pada satu waktu, memeriksa awalan, dan ekstrak sisa nilai menggunakan fungsi sscanf. Setiap jenis nilai (data titik, titik yang normal, tekstur mengkoordinasikan, dan wajah) memiliki array sendiri untuk menahannya. Jika loader menemukan baris yang dimulai dengan sesuatu yang tidak menandakan diakui setengah, itu hanya membaca garis dan membuangnya.
Dalam kelas CObj, ada dua nilai Boolean: m_bHasTexCoords dan m_bHasNormals. Variabel ini diatur ke benar jika coord tekstur (untuk m_bHasTexCoords) atau garis normal verteks (untuk m_bHasNormals) ditemukan dalam file. Meskipun hal ini tidak bekerja, ia memiliki beberapa kekurangan. Jika untuk beberapa alasan wajah tidak ada setelah semua titik, loader tidak akan tahu apa jenis wajah untuk membaca dan akan default hanya untuk membaca simpul.
PERHATIAN
Karena format OBJ dapat diprediksi dan juga dapat diedit dengan mudah, akan sangat membantu untuk memiliki beberapa pengecekan error. Misalnya, struktur wajah mungkin referensi simpul yang tidak valid, seperti jumlah titik -2, atau jumlah titik besar dari jumlah total simpul. Untuk menghindari masalah, Anda harus memasukkan beberapa error untuk memeriksa ke dalam kode Anda. Setiap kali Anda memuat nilai, pastikan untuk memeriksa apakah itu sah. Sebagai contoh, tidak ada nomor pada garis wajah harus negatif. Karena mereka adalah indeks ke dalam array, mereka harus positif atau program dapat hancur. Hal yang sama berlaku untuk lebih besar dari jumlah total simpul, tekstur nilai-nilai koordinat, atau normals. Jika wajah referensi simpul luar dari apa yang seharusnya, pilihan terbaik adalah untuk mengabaikan bahwa wajah sepenuhnya. Melakukan hal ini mungkin akan mengakibatkan sebuah lubang dalam model Anda, tetapi sebuah lubang kecil akan terlihat lebih baik daripada tonjolan jelek jika Anda mencoba untuk menebak apa indeks apa yang seharusnya.
Hal ini dapat menyebabkan hasil yang tidak diharapkan seperti hilang atau cacat geometri,
atau bahkan model tidak muncul sama sekali. Jika ini terjadi,pemecahan termudah adalah dengan hanya membuka file dan memindahkan informasi simpul yang bagian atas file. Namun, untuk tujuan pembelajaran dan loading yang OBJs paling umum, ini seharusnya tidak menjadi masalah.
Ketika Anda turun ke face data, anda hanya melihat dua variabel dan mengatur parameter sscanf anda tepat.
Setelah anda memiliki semua data yang dikumpulkan dan disimpan, ada beberapa lagi
hal yang harus Anda lakukan sebelum render. Jika Anda melihat pada kelas,Anda akan melihat bahwa ada pointer untuk semua jenis, serta vektor resizable. Ada alasan yang sangat bagus untuk ini.
Cara termudah untuk mengakses elemen dari sebuah vektor STL adalah melalui operator [] seperti yang Anda lakukan dengan array standar. Namun, metode ini dapat cukup lambat dan tidak dianjurkan, terutama jika Anda perlu menggunakannya setiap kali anda membuat satu frame, seperti halnya dengan format OBJ.
Solusi untuk ini adalah hanya mengatur pointer ke elemen pertama dalam STL vektor. Ini tidak menyebabkan masalah karena STL vektor dijamin akan terus-menerus.Sekarang semua data Anda sudah terorganisir, Anda dapat mulai khawatir tentang render.
RENDERING OBJ
Mari kita lihat apa yang dapat Anda lakukan tentang hal ini pada layar. Jika Anda beralih ke CObj ini:: Render () fungsi dalam obj.cpp, Anda akan melihat apa yang diperlukan untuk mendapatkan segalanya pada layar. Hal pertama yang dilakukan adalah untuk mengaktifkan dan mengikat tekstur. Pastikan untuk memeriksa apakah tekstur berlaku sebelum memanggil untuk menghindari masalah.
Kemudian Anda bisa mulai rendering. Hal pertama yang terjadi adalah ia akan mengecek untuk melihat komponen yang termasuk dalam model dan memilih loop didasarkan pada hasil. Ada loop terpisah untuk setiap kombinasi yang mungkin,untuk meningkatkan kecepatan. Dalam pseudo-kode, kode render akan terlihat seperti kode berikut. Perlu diingat pseudo-kode hanya memberi Anda tata letak dasar tentang bagaimana fungsi akan terlihat. Ini harus jelas bahwa kode berikut tidak akan mengkompilasi dalam C reguler / C + + compiler.
for(each vertex)
if(normals are present)
SendNormal();
if(texcoords are present)
SendtexCoord();
SendVertex()
Itu akan memerlukan dua pernyataan if untuk setiap titik, yang merupakan sisa waktu prosesor ketika Anda dapat lakukan dengan pasangan tetapi untuk setiap frame.Sebaliknya, strukturnya lebih seperti ini:
if(has normals and tex coords)
for(each vertex)
SendNormal()
SendTexCoord()
SendVertex()
else if(has texcoords but not normals)
for(each vertex)
SendTexCoords()
SendVertex();
TIP
Karena geometri adalah statis, Anda mungkin ingin mempertimbangkan kompilasi semua kode Anda untuk menampilkan daftar list. Sebuah daftar tampilan menciptakan objek dikompilasi dan akan mengurangi waktu pemrosesan yang diperlukan untuk setiap frame. Hal ini dapat dilakukan pada saat membuka di OpenGL menggunakan glGenList fungsi dan glNewList. Kemudian, didalam rending fungsi anda, daripada mengirim setiap simpul ke renderer, Anda cukup menjalankan glCallList dengan tepat menampilkan daftar untuk menampilkan model Anda.
Dan seterusnya. Meskipun pendekatan ini lebih panjang, jauh lebih efisien. Untuk mendapatkan nilai yang sesuai untuk masing-masing komponen, Anda menggunakan struktur wajah indeks ke dalam array normals, tex coords, dan simpul. Ada satu kekhasan kecil di sini. Namun untuk beberapa alasan,pencipta dari format OBJ memutuskan untuk membuat 1 indeks pertama,bukan dari 0. Untuk mengatasi ini, Anda harus mengurangkan 1 dari masing-masing titik,tekstur koordinat, dan titik yang normal indeks yang membentuk wajah.
Hal ini dilakukan pada saat membuka dalam kode demo, lihat konstruktor dari SObjFace untuk informasi lebih lanjut. Selamat bersenang-senang.
Untuk lebih jelasnya,lihat model sepenuhnya yang ditunjukkan dalam Gambar 4.1.
TIP
OBJ format sebenarnya memiliki lebih banyak format untuk ditawarkan. hal ini dapat mendukung beberapa jenis permukaan melengkung, wajah yang telah lebih dari tiga sisi, dan hal menarik lainnya. Jika Anda merasa ambisius, coba memodifikasi loader untuk bekerja dengan semua hal-hal ekstra. Ada dokumen lengkap Obj di seluruh Internet. Cukup ketik Format OBJ dipencarian. Beberapa link yang bisa dijadikan bahan antara lain http://astronomy.swin.edu.au/ ~ pbourke / geomformats / obj / dan http://www.royriggs.com/obj.html. Keduanya berisi deskripsi dari format file obj; URL pertama mencakup Format penuh, termasuk garis, titik, permukaan, dan kurva.
Gambar 4.1 Model OBJ lentera jin . Model khusus ini termasuk simpul saja. Untuk lebih jelasnya buka di sini di wireframe. Model ini dibuat oleh John Spirko (http://www.iaw.on.ca/ ~ jspirko / galleries.htm) dan ditemukan di 3D Model Dunia (http://www.3dmodelworld.com). Pastikan untuk melihat kedua situs tersebut untuk model lainnya.
KESIMPULAN
Kesimpulan dari bab ini. Meskipun format OBJ dasar cukup sederhana, konsep-konsep dari bab ini dapat digunakan untuk hal lain di ASCII berbasis format Anda mungkin menemukan, seperti ASE dan ASC. Bab berikutnya membahas beberapa informasi lebih lanjut dengan pengenalan kerangka animasi. Dalam bab berikut, Anda akan melihat bagaimana kerangka animasi telah mengubah dunia game dan belajar tentang beberapa permainan yang sudah menggunakannya. Anda juga akan belajar bagaimana kerangka
animasi bekerja, dan alasan mengapa Anda mungkin ingin menggunakan itu dalam permainan berikutnya.
Berikutnya akan membahas File OBJ. Ini adalah format yang baik untuk objek yang statis dalam sebuah game, seperti potongan kecil dari level geometri, senjata yang tergeletak di tanah, dan daya yang tersebar di seluruh tingkat. OBJ format dapat di eksport dari Maya, salah satu standart industri yang mengkreasikan konten 3D, termasuk dunia 3D and tentu saja model 3D untuk game. Digunakan oleh banyak perusahaan game dan artis internasional, Maya telah menjadi salah satu model program 3D yang paling terkenal. Maya dikembangkan dan dijual oleh Alias|waveFront http://www.aliaswavefront.com).
Sebuah ASCII sederhana berbasis format, format model OBJ mengandung data geometry tetapi tanpa animasi. Mungkin kamu ingin menggunakan format ini jika perlu dapat diedit, ataupun membuat file dengan tangan tanpa paket permodelan. Ini juga format yang bagus untuk digunakan jika tidak membutuhkan animasi karena ini sangat mudah digunakan. Meskipun itu bisa mengandung fitur seperti permukaan yang melengkung, fitur tersebut berada diluar lingkup buku ini. Bab ini hanya meliputi geometry dasar. Ini termasuk wajah-wajah yang membentuk model, bersama dengan simpul yang membentuk wajah sendiri. Juga termasuk didalamnya koordinat tekstur , untuk mengijinkan ditambahkannya tekstur map.serta titik normal digunakan untuk penerangan.
MENGURAIKAN FILE TEKS
Sebelum anda bekerja menggunakan file ASCII, anda harus mngerti bagaimana cara menguraikan informasi yang anda butuhkan yang disebut juga menguraikan dari file. C++ sangat sensitive mengenai apa itu tipe data. Anda tidak bisa dengan mudah mengatur bilangan bulat sama dengan string yang berisi sebuah integer dalam format teks dan mengharapkannya untuk bekerja seperti yang Anda pikir. Sebaliknya, anda harus mengekstraksi data dan mengkonversikannya menggunakan fungsi khusus. Dua fungsi terbaik untuk melakukannya yaitu sscanf(untuk mengekstraksi data dari string) dan fscanf (untuk melakukan hal yang sama dengan file). Kedua fungsi tersebut memiliki parameter yang sama, dengan pengecualian dari tiap parameter. Parameter pertama untuk sscanf adalah string yang menahan data yang tidak terformat, sedangkan parameter pertama dari fscanf adalah pointer fileyang ingin anda ekstrak. Parameter kedua adalah yang terpenting. Memegang string yang disebut format string. Format string membahas tentang scanf yang mana tipe variable mencari dan dalam urutan yang bagaimana. Sebagai contoh format string, tabel 4.1 menunjukan bagaimana membuat format string anda.
Variable terakhir adalah pointer ke variable yang ingin anda simpan kedalam nilai konversi anda. Karena fungsi scanf mengambil nomor variable dari argument, anda dapat membacanya dengan berbagai nilai dalam 1 waktu seperti yang anda inginkan. Ini adalah yang terbaik diikat dengan contoh sederhana. Katakanlah Anda memiliki sebuah string, disebut szVertex, yang berisi baris:
Vertex 15 - [14.12, 12.51, 33.10];
Anda dapat melihatnya ada sebuah string, integer dan 3 nilai floating point, sama bagusnya dengan koma, tanda kurung dan titik koma. Anda ingin mengekstrak bagian-bagian yang berguna dan menyimpannya di tipe data yang benar sehingga Anda dapat menggunakannya di kemudian hari dalam program Anda.
Fungsi Scanf akan tampak seperti berikut ini :
sscanf(szVertex, "%s %d – [%f, %f, %f];", s, &i, &f1, &f2, &f3);
seperti yang dapat anda lihat format string terlihat banyak seperti garis aslinya, hanya dengan nilai yang sebenarnya dihapus. Argument % menjelaskan sscanf digunakan untuk mencari lokasi. Tabel 4.1 memperlihatkan kepada anda banyak digunakannya argument % dan dengan apa mereka berdiri. Set terakhir dari parameter adalah daftar tujuan varable. S sebagai string, ada kemungkinan sebagai karakter array, dan I menunjukan integer dan f1, f2, f3 menunjukan banyaknya floating point yang memegang tiga nilai antara kurung persegi. Pastikan tujuan dari variable anda cocok dengan argument yang tepat dalam format string (s menuju kepada string, I menuju kepada inteer dan &f1, &f2, &f3 menuju kepada nilai floating point). Anda dapat melakukan apapun dsini dengan menampilkan fscanf, hanya parameter pertama adalah pointer file daripada sumber string.
MEMAHAMI FORMAT OBJ
Seperti disebutkan, format OBJ didalam teks biasa. Jika Anda membukanya di Notepad
atau Wordpad, Anda akan melihat daftar simpul dan geometri lainnya. ASCII (teks biasa) memiliki format berbasis daripada biner yang memiliki kelebihan dan kekurangan. Karena mereka disimpan dalam teks biasa, lebih mudah untuk seseorang untuk mengedit file tersebut dengan tangan. Ini bisa baik atau buruk. Hal ini adalah yang baik jika Anda perlu tweak bagian kecil dari model, tetapi tweak dapat berakhir pada bencana jika Anda secara tidak sengaja mengubah cara file ditata. Format ASCII juga cenderung untuk mengambil ruang disk lebih dari biner berdasarkan format karena mereka membutuhkan ruang ekstra untuk nilai-nilai besar karena panjangnya satu "bagian" dari geometri pada setiap baris.
Tabel 4.1 Parameter untuk Format String
PARAMETER FUNGSI
% s Adalah format string yang berarti bahwa scanf akan mencari string. Akan terus membacanya sampai menemukan null,ruang,atau karakter garis baru
%c %c membaca karakter tunggal. Dan akan membaca karakter pertama yang dilihat.
%d Membaca bilangan bulat.dengan scanf akan membaca bilangan bulat sampai menemukan spasi,huruf,dan simbol yang bukan angka. %d akan membaca integer positif dan negatif.
%f %f akan membaca bilangan real.
Seperti yang anda lihat,disini ada 4 tipe garis. Mereka adalah garis yang memberikan rincian tentang simpul, koordinat tekstur, titik normal,atau wajah. Mungkin ada jalur lain untuk hal-hal seperti permukaan melengkung dan komentar juga, tetapi Anda tidak akan membutuhkan itu di sini.
Setiap baris dari file model yang dimulai dengan satu atau dua huruf yang menceritakan
program,untuk apa garis itu. Ada empat jenis prefiks, yang akan dijelaskan di sini:
V: Surat v diikuti oleh spasi adalah simpul plain vanilla. Jika hal ini adalah kasus, berikut sebuah ruang tunggal akan tiga floating-point nilai, masing-masing dipisahkan dengan spasi tunggal juga.
vt: String vt menandakan bahwa baris berisi koordinat tekstur. Setiap koordinat tekstur adalah dua float lagi dipisahkan oleh satu spasi.
vn: vn menandakan titik normal. Selain awalan, baris cermin garis titik: tiga float.
f: f menandakan sebuah wajah. Wajah adalah satu set indeks ke dalam array
simpul, texcoords, dan normals. Namun, hanya simpul indeks harus ada; dua yang lain adalah opsional. Setiap Indeks simpul harus positif. Sebuah nilai negatif di wajah
struktur mungkin berarti file tersebut rusak karena Anda tidak bisa memiliki indeks array negatif. Ini tidak akan benar untuk mengatakan "mengambil obyek kedua negatif, "sehingga Anda jelas tidak bisa mengambil "negatif kedua" simpul baik. Pendekatan terbaik jika Anda menemukan nilai negatif dalam struktur wajah untuk mengabaikan
wajah sama sekali.
Lainnya: Setiap baris prefiks lain seperti g (group), # (komentar), p (titik), l (baris), surfing (permukaan), dan curv (kurva) harus diabaikan untuk saat ini. Meskipun mereka adalah bagian dari format,mereka tidak dibahas di sini.
Sebuah garis khas dalam file obj yang mewakili wajah atau segitiga dan hanya berisi simpul akan terlihat seperti ini:
f 1 2 3
Kode ini mengatakan bahwa wajah menggunakan titik pertama, kedua, dan ketiga indeks untuk menggambar segitiga. Tidak adanya set lain indeks menunjukkan bahwa tekstur koordinat dan titik normals tidak diperlukan.
Jika wajah yang bertekstur, tetapi tidak mengandung titik normals, sintaks akan sama dengan ini:
f 1 / 4 2 / 5 3 / 6
Baris ini mengatakan bahwa segitiga menggunakan simpul 1, 2, dan 3 dan tekstur indeks 4, 5, dan 6.
Namun variasi lain dari garis ini dapat menggunakan semua tiga jenis simpul data koordinat tekstur titik,, dan indeks yang normal. Baris yang akan terlihat seperti:
f 1/4/7 2/5/8 3/6/9
Angka pertama adalah untuk simpul itu sendiri, yang kedua adalah untuk tekstur mengkoordinasikan, dan yang ketiga adalah untuk titik normal.
Hanya ada satu variasi yang lebih: normals vertex dan titik, tetapi tidak ada koordinat tekstur. Ini terlihat seperti ini:
f 1 / / 4 2 / / 5 3 / / 6
Dua garis miring memisahkan angka bukan satu, ini menunjukkan bahwa angka kedua adalah normal simpul, bukan koordinat tekstur.
Kenyataan bahwa wajah tidak perlu berisi semua informasi dapat sangat berguna. Tidak ada alasan sebuah objek yang tidak memerlukan pencahayaan atau texturing harus berisi informasi tersebut. Dengan hanya meninggalkan tidak dibutuhkan informasi di luar, ukuran file berkurang jauh.
Mari kita sekarang beralih ke beberapa kode yang menunjukkan Anda bagaimana untuk memuat file menjadi sesuatu yang bisa anda kerjakan.
Memuat Format OBJ
Karena obj tidak berisi apapun di header, Anda membutuhkan beberapa semacam array resizable untuk memegang simpul Anda, wajah, dan komponen lainnya. Dalam pelaksanaannya ditampilkan di sini, semuanya dimuat ke sebuah STL vektor, semacam array resizable.
Setiap jenis data memiliki struktur tersendiri. Vector3 berisi dua float dan digunakan untuk menyimpan posisi titik tunggal, atau normal vertex. Vector2 jauh seperti saudara yang lebih besar, tetapi memegang hanya dua nilai, cocok untuk koordinat tekstur.
Terakhir dari semua adalah SObjFace, yang berisi 12 bilangan bulat unsigned, tiga untuk
setiap sudut indeks, indeks tekstur coord, dan indeks yang normal. bahkan jika semua variabel wajah tidak selalu digunakan, penyimpanannya masih ada.
Sekarang Anda siap untuk membaca dalam file. Cara terbaik untuk melakukan ini adalah membaca dalam satu baris pada satu waktu, memeriksa awalan, dan ekstrak sisa nilai menggunakan fungsi sscanf. Setiap jenis nilai (data titik, titik yang normal, tekstur mengkoordinasikan, dan wajah) memiliki array sendiri untuk menahannya. Jika loader menemukan baris yang dimulai dengan sesuatu yang tidak menandakan diakui setengah, itu hanya membaca garis dan membuangnya.
Dalam kelas CObj, ada dua nilai Boolean: m_bHasTexCoords dan m_bHasNormals. Variabel ini diatur ke benar jika coord tekstur (untuk m_bHasTexCoords) atau garis normal verteks (untuk m_bHasNormals) ditemukan dalam file. Meskipun hal ini tidak bekerja, ia memiliki beberapa kekurangan. Jika untuk beberapa alasan wajah tidak ada setelah semua titik, loader tidak akan tahu apa jenis wajah untuk membaca dan akan default hanya untuk membaca simpul.
PERHATIAN
Karena format OBJ dapat diprediksi dan juga dapat diedit dengan mudah, akan sangat membantu untuk memiliki beberapa pengecekan error. Misalnya, struktur wajah mungkin referensi simpul yang tidak valid, seperti jumlah titik -2, atau jumlah titik besar dari jumlah total simpul. Untuk menghindari masalah, Anda harus memasukkan beberapa error untuk memeriksa ke dalam kode Anda. Setiap kali Anda memuat nilai, pastikan untuk memeriksa apakah itu sah. Sebagai contoh, tidak ada nomor pada garis wajah harus negatif. Karena mereka adalah indeks ke dalam array, mereka harus positif atau program dapat hancur. Hal yang sama berlaku untuk lebih besar dari jumlah total simpul, tekstur nilai-nilai koordinat, atau normals. Jika wajah referensi simpul luar dari apa yang seharusnya, pilihan terbaik adalah untuk mengabaikan bahwa wajah sepenuhnya. Melakukan hal ini mungkin akan mengakibatkan sebuah lubang dalam model Anda, tetapi sebuah lubang kecil akan terlihat lebih baik daripada tonjolan jelek jika Anda mencoba untuk menebak apa indeks apa yang seharusnya.
Hal ini dapat menyebabkan hasil yang tidak diharapkan seperti hilang atau cacat geometri,
atau bahkan model tidak muncul sama sekali. Jika ini terjadi,pemecahan termudah adalah dengan hanya membuka file dan memindahkan informasi simpul yang bagian atas file. Namun, untuk tujuan pembelajaran dan loading yang OBJs paling umum, ini seharusnya tidak menjadi masalah.
Ketika Anda turun ke face data, anda hanya melihat dua variabel dan mengatur parameter sscanf anda tepat.
Setelah anda memiliki semua data yang dikumpulkan dan disimpan, ada beberapa lagi
hal yang harus Anda lakukan sebelum render. Jika Anda melihat pada kelas,Anda akan melihat bahwa ada pointer untuk semua jenis, serta vektor resizable. Ada alasan yang sangat bagus untuk ini.
Cara termudah untuk mengakses elemen dari sebuah vektor STL adalah melalui operator [] seperti yang Anda lakukan dengan array standar. Namun, metode ini dapat cukup lambat dan tidak dianjurkan, terutama jika Anda perlu menggunakannya setiap kali anda membuat satu frame, seperti halnya dengan format OBJ.
Solusi untuk ini adalah hanya mengatur pointer ke elemen pertama dalam STL vektor. Ini tidak menyebabkan masalah karena STL vektor dijamin akan terus-menerus.Sekarang semua data Anda sudah terorganisir, Anda dapat mulai khawatir tentang render.
RENDERING OBJ
Mari kita lihat apa yang dapat Anda lakukan tentang hal ini pada layar. Jika Anda beralih ke CObj ini:: Render () fungsi dalam obj.cpp, Anda akan melihat apa yang diperlukan untuk mendapatkan segalanya pada layar. Hal pertama yang dilakukan adalah untuk mengaktifkan dan mengikat tekstur. Pastikan untuk memeriksa apakah tekstur berlaku sebelum memanggil untuk menghindari masalah.
Kemudian Anda bisa mulai rendering. Hal pertama yang terjadi adalah ia akan mengecek untuk melihat komponen yang termasuk dalam model dan memilih loop didasarkan pada hasil. Ada loop terpisah untuk setiap kombinasi yang mungkin,untuk meningkatkan kecepatan. Dalam pseudo-kode, kode render akan terlihat seperti kode berikut. Perlu diingat pseudo-kode hanya memberi Anda tata letak dasar tentang bagaimana fungsi akan terlihat. Ini harus jelas bahwa kode berikut tidak akan mengkompilasi dalam C reguler / C + + compiler.
for(each vertex)
if(normals are present)
SendNormal();
if(texcoords are present)
SendtexCoord();
SendVertex()
Itu akan memerlukan dua pernyataan if untuk setiap titik, yang merupakan sisa waktu prosesor ketika Anda dapat lakukan dengan pasangan tetapi untuk setiap frame.Sebaliknya, strukturnya lebih seperti ini:
if(has normals and tex coords)
for(each vertex)
SendNormal()
SendTexCoord()
SendVertex()
else if(has texcoords but not normals)
for(each vertex)
SendTexCoords()
SendVertex();
TIP
Karena geometri adalah statis, Anda mungkin ingin mempertimbangkan kompilasi semua kode Anda untuk menampilkan daftar list. Sebuah daftar tampilan menciptakan objek dikompilasi dan akan mengurangi waktu pemrosesan yang diperlukan untuk setiap frame. Hal ini dapat dilakukan pada saat membuka di OpenGL menggunakan glGenList fungsi dan glNewList. Kemudian, didalam rending fungsi anda, daripada mengirim setiap simpul ke renderer, Anda cukup menjalankan glCallList dengan tepat menampilkan daftar untuk menampilkan model Anda.
Dan seterusnya. Meskipun pendekatan ini lebih panjang, jauh lebih efisien. Untuk mendapatkan nilai yang sesuai untuk masing-masing komponen, Anda menggunakan struktur wajah indeks ke dalam array normals, tex coords, dan simpul. Ada satu kekhasan kecil di sini. Namun untuk beberapa alasan,pencipta dari format OBJ memutuskan untuk membuat 1 indeks pertama,bukan dari 0. Untuk mengatasi ini, Anda harus mengurangkan 1 dari masing-masing titik,tekstur koordinat, dan titik yang normal indeks yang membentuk wajah.
Hal ini dilakukan pada saat membuka dalam kode demo, lihat konstruktor dari SObjFace untuk informasi lebih lanjut. Selamat bersenang-senang.
Untuk lebih jelasnya,lihat model sepenuhnya yang ditunjukkan dalam Gambar 4.1.
TIP
OBJ format sebenarnya memiliki lebih banyak format untuk ditawarkan. hal ini dapat mendukung beberapa jenis permukaan melengkung, wajah yang telah lebih dari tiga sisi, dan hal menarik lainnya. Jika Anda merasa ambisius, coba memodifikasi loader untuk bekerja dengan semua hal-hal ekstra. Ada dokumen lengkap Obj di seluruh Internet. Cukup ketik Format OBJ dipencarian. Beberapa link yang bisa dijadikan bahan antara lain http://astronomy.swin.edu.au/ ~ pbourke / geomformats / obj / dan http://www.royriggs.com/obj.html. Keduanya berisi deskripsi dari format file obj; URL pertama mencakup Format penuh, termasuk garis, titik, permukaan, dan kurva.
Gambar 4.1 Model OBJ lentera jin . Model khusus ini termasuk simpul saja. Untuk lebih jelasnya buka di sini di wireframe. Model ini dibuat oleh John Spirko (http://www.iaw.on.ca/ ~ jspirko / galleries.htm) dan ditemukan di 3D Model Dunia (http://www.3dmodelworld.com). Pastikan untuk melihat kedua situs tersebut untuk model lainnya.
KESIMPULAN
Kesimpulan dari bab ini. Meskipun format OBJ dasar cukup sederhana, konsep-konsep dari bab ini dapat digunakan untuk hal lain di ASCII berbasis format Anda mungkin menemukan, seperti ASE dan ASC. Bab berikutnya membahas beberapa informasi lebih lanjut dengan pengenalan kerangka animasi. Dalam bab berikut, Anda akan melihat bagaimana kerangka animasi telah mengubah dunia game dan belajar tentang beberapa permainan yang sudah menggunakannya. Anda juga akan belajar bagaimana kerangka
animasi bekerja, dan alasan mengapa Anda mungkin ingin menggunakan itu dalam permainan berikutnya.
Langganan:
Postingan (Atom)






