Di Masa Depan Komputer Grafis Paling Unggul

Kamis, 07 Juli 2011

Materi Kuliah Terakhir / Kisi Kisi Uas

Materi tentang Teori Warna bisa Download disini
Materi Kuliah Pertemuan terakhir bisa Download disini
Materi Pelengkap Lain silahkan Download disini

Sabtu, 02 Juli 2011

Perbedaan dalam rotasi matriks antara OpenGL dan Konten directx Rate

Perbedaan OpenGL dan directx
Opengl:


 gluPerspective (45,0, lebar / tinggi, 0.1,100.0)
 glMatrixMode (GL_MODELVIEW)
 glLoadIdentity
 glRotatef (90,0,0,1)
 glTranslatef (0,5, -10)
 glBegin (GL_TRIANGLES)
         glVertex3f (1,0,0)
         glVertex3f (0,1,0)
         glVertex3f (-1, -1,0)
 glEnd



Directx

      D3DXMATRIX matTranslate, matRotate, matView, matProjection, matFinal;

         / / Membuat sebuah matriks rotasi
         / / D3DXMatrixRotationY (& matRotate, Waktu);
                
                 D3DXMatrixRotationZ (& matRotate, D3DXToRadian (90,0));
                 D3DXMatrixTranslation (& matTranslate, 0,10,0);
         / / Membuat matriks tampilan
         D3DXMatrixLookAtLH (& matView,
                            & D3DXVECTOR3 (0.0f, 0.0f,-40.0f), / / ​​posisi kamera
                            & D3DXVECTOR3 (0.0f, 0.0f, 0.0f), / / ​​tampilan-pada posisi
                            & D3DXVECTOR3 (0.0f, 1.0f, 0.0f)); / / arah atas

         / / Membuat sebuah matriks proyeksi
         D3DXMatrixPerspectiveFovLH (& matProjection,
                                (Float) D3DXToRadian (45), / / ​​bidang pandang horizontal
                                (Float) SCREEN_WIDTH / (Float) SCREEN_HEIGHT, / / ​​rasio aspek
                                1.0f, / / ​​dekat tampilan pesawat
                                100.0f); / / jauh pandangan-pesawat
 
Di OpenGL, Kita akan memutar segitiga berlawanan arah jarum jam 90 derajat yang baik dan juga terjadi di directx. Namun, jika kita menerjemahkan pada sumbu Y dengan jumlah di atas, kita naik directx pada sumbu Y-dunia asli begitu diputar segitiga kita adalah di dekat bagian atas layar. Pada OpenGL, jika kita melakukan hal yang sama, ujung segitiga diputar kita masuk ke kiri jumlah tersebut (sehingga di perbatasan kiri jendela).

Ketika kita mulai di OpenGL, kita memvisualisasikan ini di kepala kita sebagai sistem koordinat segitiga berputar 90 derajat berlawanan arah jarum jam dengan demikian, akan naik pada itu sumbu-y pada kenyataannya akan ditinggalkan di sumbu x-dunia yang mengapa dekat kiri layar.

Sekarang di DirectX, kita melihat kita mungkin salah atau mungkin kita harus berpikir berbeda tentang hal ini? Sepertinya di DX, manipulasi matriks hanya mengikuti selalu sumbu dunia.

Matrix Layouts, DirectX dan OpenGL

Ketika membaca tentang komputer grafis, Anda selalu lari ke datatype menyebutkan Matrix. Biasanya, ini adalah matriks 4x4 floating-point nilai, digunakan untuk melakukan transformasi afin untuk grafis (scaling, rotasi, terjemahan, kadang-kadang geser).
Namun, ada setidaknya dua konvensi yang berbeda untuk bagaimana menerapkan matriks ke vektor (simpul dan normals) yang membentuk blok bangunan grafis 3D. Sebuah titik diperpanjang untuk 4 - vektor dengan memaku pada "1" (terjemahan ini memungkinkan untuk bekerja); normal diperluas ke vektor 4-by memaku pada "0" (ini berarti bahwa hanya bagian non-terjemahan akan berlaku). Sejauh ini, begitu baik. Tapi apakah itu 4-vektor vektor baris atau vektor kolom? (Dan itu akan lebih baik bila matriks disimpan dalam memori).
Pertimbangkan dua kasus:
 M11 M12 M13 M14 x

       M21 M22 M23 M24 y

       M31 m32 m33 m34 z

       M41 M42 M43 M44 1
    
Kasus 1: vektor kolom di kanan

 M11 M12 M13 M14

                   M21 M22 M23 M24
      xyz 1
                   M31 m32 m33 m34

                   M41 M42 M43 M44
    
Kasus 2: vektor baris di kiri

Dalam kasus pertama, kolom vektor di sebelah kanan, terjemahan operasi hidup dalam elemen matriks M14, M24 dan m34. Namun, dalam kasus kedua, terjemahan hidup dalam elemen M41, M42 dan M43. Jadi, ketika Anda melihat matriks ditulis, Anda harus mengambil waktu untuk mempertimbangkan di mana orientasi Anda seharusnya membacanya. Sayangnya, kertas dan dokumentasi yang menulis tentang matriks jarang mempertimbangkan bahwa ada dua konvensi, dan cenderung hanya berasumsi bahwa Anda tahu yang mana yang Anda maksud.
Matematika tradisional, dan OpenGL, cenderung untuk memilih vektor Colum. Sementara itu, warisan tertentu lainnya komputer grafis, serta DirectX, cenderung memilih vektor baris, di sebelah kiri. Kebingungan mendapatkan bahkan lebih lengkap ketika Anda mulai berbicara tentang "pra-mengalikan" dan "pasca-mengalikan" matriks. Pra-mengalikan bisa berarti mengalikannya di sebelah kiri (jika Anda tipe vektor baris), atau mungkin berarti mengalikannya di sebelah kanan (jika Anda tipe OpenGL) - jika dengan "pra" Anda berarti bahwa pra-operasi dikalikan terjadi sebelum operasi matriks sasaran. Jika bukan Anda maksud, dengan pra-multplying, bahwa matriks Anda pra-mengalikan berjalan di sebelah kiri, maka itu berarti bahwa hal itu terjadi setelah dalam notasi OpenGL, tetapi masih berarti bahwa hal itu terjadi sebelumnya dalam notasi DirectX.
Bingung belum?
Jadi, kita datang ke matriks menyimpan dalam memori. Tentu saja ada dua cara untuk menyimpan matriks - mereka dapat disimpan dalam urutan M11 M12 M13 M14 M21 ..., atau mereka dapat disimpan dalam urutan M11 M21 M31 M41 M12 ... Versi pertama disebut "baris utama" karena Anda dapat melihat itu sebagai menyimpan satu baris pada suatu waktu. Versi kedua disebut "kolom besar" karena Anda dapat melihat itu sebagai menyimpan satu kolom pada suatu waktu.
Jadi, jika Anda diberi matriks sebagai array mengapung dalam memori, atau sebagai urutan mengapung pada halaman web, Anda perlu tahu baik yang konvensi vektor diasumsikan untuk matriks, DAN format penyimpanan yang digunakan untuk matriks . Namun, seperti nasib itu, kesalahan dalam satu, akan membatalkan kesalahan dalam lainnya. Sebuah matriks baris-utama ditujukan untuk vektor-vektor baris akan bekerja, seperti apa adanya dalam memori, hanya sebagai baik untuk vektor kolom jika Anda hanya menganggap itu disimpan dalam kolom-besar pesanan.
Dan, coba tebak? OpenGL mengasumsikan matriks utama Colum; DirectX mengasumsikan matriks-matriks baris utama. Ini berarti bahwa terjemahan, dalam matriks dilihat sebagai array float, akan selalu dalam elemen pada indeks 12, 13 dan 14 dalam matriks dalam memori (dimana indeks berada dalam kisaran 0 .. 15), baik OpenGL atau DirectX . Lokasi-lokasi peta untuk M41, M42 dan M43 dalam konvensi DirectX, dan M14, M24, m34 di konvensi OpenGL. Wah! Anda mungkin benar-benar memiliki sesuatu yang salah dalam kode Anda, tetapi karena Anda telah salah-memahami konvensi, kesalahan interpretasi tambahan meniadakan kesalahan pertama, dan semuanya bekerja keluar.

Kiri-Kanan dan tangan matriks

Ada rumor ini terus-menerus bahwa ada "kidal" dan "tangan kanan" matriks. Itu tidak benar. Dalam sistem koordinat kidal, rotasi dari vektor X 90 derajat sekitar proyek sumbu Z untuk vektor Y. Dalam sistem koordinat tangan kanan, rotasi dari vektor X 90 derajat sekitar proyek sumbu Z untuk vektor Y. Matematika adalah sama; matriks adalah sama. Satu-satunya perbedaan adalah interpretasi dari data sekali Anda mendapatkannya keluar - Z lebih besar berarti lebih dekat dengan pemirsa di Y-up, X-kanan-kanan sistem koordinat, namun lebih jauh ke layar dalam sistem koordinat kidal . Jika matriks Anda mencoba untuk beberapa-bagaimana sesuatu yang berbeda untuk menggunakan kanan dan kiri tangan, baik itu akan berakhir berputar dalam arah yang berlawanan dari apa yang Anda harapkan, atau akan berakhir mirroring seluruh geometri. Jika Anda memiliki tangan kanan data, dan ingin menampilkan dalam sebuah sistem koordinat kidal, itulah apa yang Anda inginkan, tetapi Anda harus menyatakan bahwa sebagai matriks cermin eksplisit bahwa baik meniadakan satu baris (atau kolom :-), atau membalik dua baris (atau kolom) dari matriks identitas.

Matriks di perpustakaan ODE

Para ODE fisika perpustakaan adalah yang paling baik didukung sumber kaku membuka tubuh dinamika paket Anda dapat menemukan, sejauh yang saya tahu. Karena Anda dapat beberapa hal data dalam (kotak, pesawat, bola, segitiga dll jerat), koefisien ditetapkan, dan membuatnya "pergi", itu populer di kalangan mereka yang berusaha untuk menciptakan berbagai jenis permainan. Namun, setelah Anda melakukan simulasi, Anda harus mengambil data keluar, dan menampilkannya.
Dokumentasi ODE tidak banyak menggunakan vektor atau matriks dalam mencetak sama sekali, jadi sulit untuk mengatakan apakah itu bermaksud untuk menggunakan vektor baris atau vektor kolom. Namun, penyimpanan matriks rotasi seperti itu, bahwa terjemahan (harus itu dalam matriks), akan tinggal di offset 3, 7 dan 11. (ODE tidak benar-benar melihat nilai-nilai ini, itu membuat mereka un-menyentuh karena alasan keselarasan). Ini berarti bahwa Anda harus transpos matriks Anda keluar dari ODE, jika Anda ingin menempatkan kembali ke OpenGL atau DirectX, karena kombinasi konvensi dan penyimpanan untuk ODE bekerja untuk menjadi kebalikan dari itu kombinasi yang sama untuk dua yang terakhir .
Sementara itu, ODE juga menyimpan quaternions unit (lain representasi dari bagian murni rotasi matriks) dalam urutan WXYZ, yang merupakan konvensi yang lebih tua, sedangkan perpustakaan yang paling modern menggunakan quaternions dalam rangka XYZW. Goes untuk menunjukkan bahwa di mana pun ada standar, ada lagi standar yang tidak dengan cara lain sekitar - memilih satu dan klaim Anda sesuai standar! Hanya, mohon, secara eksplisit negara yang standar yang Anda pilih.

Sabtu, 14 Mei 2011

Nilai Uts Kuliah Grafis

Yang pengin tahu hasil kerja kerasmu selama 1/2 semester ini bisa lihat nilai kamu disini

Rabu, 27 April 2011

GRAFIK KOMPUTER DI BIDANG GAME

pada bagian ini saya lebih memfokuskan untuk penjelasan tentang grafik di dalam game.
GRAFIK.
grafik merupakan satu cara penyajian data secara ringkas biasanya menghubungkan antara variabel bebas (X) dengan variabel tidak bebas (Y)
Teknik-teknik yang digunakan pada grafik komputer yaitu:
1. Texture mapping
adalah sebuah metode untuk menambahkan detail, tekstur permukaan (a bitmap atau raster image), atau warna dihasilkan komputer grafis atau model 3D.
2. Bump pemetaan
adalah grafis komputer teknik di mana pada setiap pixel, sebuah Usikan ke permukaan normal objek yang diberikan adalah mendongak dalam peta tekstur dan diterapkan sebelum dilakukan perhitungan iluminasi (lihat, misalnya, Phong shading). Hasilnya adalah lebih kaya, lebih rinci representasi permukaan yang lebih mirip dengan rincian yang melekat pada alam. Normal dan pemetaan paralaks yang paling sering digunakan cara membuat gundukan, dengan menggunakan teknik-teknik baru yang membuat bumpmapping menggunakan Skala abu-abu usang.
3. Pemetaan normal (Dalam grafik komputer 3D,), atau “bump Dot3 pemetaan”, adalah sebuah teknik yang digunakan untuk berpura-pura penyalaan benjol dan penyok. Hal ini digunakan untuk menambahkan rincian tanpa menggunakan lebih poligon.
4. Shadow maps atau proyektif membayangi
adalah proses di mana bayang-bayang ditambahkan ke grafik komputer 3D. Konsep ini diperkenalkan oleh Lance Williams pada tahun 1978, dalam sebuah makalah berjudul “Casting melengkung bayangan pada permukaan lengkung”. Sejak saat itu, telah digunakan baik dalam pra-dirender adegan, secara realtime, bahkan di banyak konsol dan PC high-end game. Bayangan pemetaan digunakan oleh Pixar ’s RenderMan, dan sebaliknya, bayangan pemetaan telah digunakan dalam film-film seperti Toy Story.

BY; agus suroso