Software,Game,Movie,Picture,Music,DLL
 
IndeksGalleryPendaftaranLogin
Latest topics
» Peringatan!
Wed Nov 25, 2009 7:38 pm by Admin

» Download Film Part2
Mon Nov 23, 2009 2:52 pm by Admin

» Download Film Terbaru Gratis.!
Sun Nov 22, 2009 12:12 pm by Admin

» Cara Hack Cyberbilling ^_^
Sun Nov 22, 2009 12:06 pm by Admin

» Foto Part 2
Sun Nov 22, 2009 11:59 am by Admin

» Editing Lagu Jadi Ok.!
Sun Nov 22, 2009 11:55 am by Admin

» Cara Edit Foto
Sun Nov 22, 2009 11:46 am by Admin

» http://bonapito.darkbb.com/
Sun Nov 22, 2009 11:42 am by Admin

» Your first subject
Sun Nov 22, 2009 11:04 am by Admin

Navigation
 Portal
 Indeks
 Anggota
 Profil
 FAQ
 Pencarian
Forum
Affiliates
free forum


Share | 
 

 http://bonapito.darkbb.com/

Topik sebelumnya Topik selanjutnya Go down 
PengirimMessage
Admin
Admin
avatar

Jumlah posting : 9
Join date : 22.11.09

PostSubyek: http://bonapito.darkbb.com/   Sun Nov 22, 2009 11:42 am

* Work

* Fun

* Hobby

* Pix

* Twits


Dasar Rendering MinGL Bekerja


15 November 2009


Sebelumnya,
saya menjelaskan motivasi saya untuk melakukan sesuatu yang konyol
seperti menulis perangkat lunak rasterizer di underfeatured hari ini
dan usia.


Yah, aku mencetak OpenGL ES 1.x spesifikasi, dan saya sudah melakukan sedikit benturan menjauh. Beberapa tersangka yang membangkitkan kemarahan:


* SSE sucks. Seperti
kata Max pada hari Jumat, dengan SSE4 +, mereka telah mendapatkan semua
cara sampai 75% dari vektor yang baik instruksi set!

* Saya berharap ada lingkungan debug yang lebih baik pada Ubuntu. I haven't tried antarmuka asli pada 2,2 MonoDevelop belum, mungkin itu akan menyelamatkan aku.

*
Dan tentu saja bodoh biasa C + + omong kosong, tapi hei, "Hanya ada dua
jenis bahasa: orang-orang yang mengeluh dan yang tidak ada yang
menggunakan." Jadi aku akan melewatkan bahwa untuk hari ini.


Ternyata OpenGL tidak terlalu cocok untuk (non-jitting) implementasi perangkat lunak. Bahkan
dalam dikupas-bawah, kurang-featureful, fixed-fungsi ES versi yang 1.0,
ada yang durhaka jumlah titik penyisipan di mana pipa dapat ulang. Untuk
menghindari runtime switching di tingkat terendah bagian dari
rasterization (yaitu menggambar scanline), akan ada perlu ratusan
berbeda "shader" untuk fungsi tetap. Contoh:


*


dhuwur warna (bool)

*


texture0 (bool)

*


texture1 (bool)

*


kabut (4 mungkin persamaan)

*


tekstur metode sampling (6 metode yang berbeda tekstur * 2 unit)

*


warna topeng (bool)

*


kedalaman topeng (bool)

*


stensil topeng (bool)

*


semua fragmen ops:

o pixel kepemilikan (bool)

o gunting (bool)

o alpha test (bool)

o stensil tes (bool)

o tes kedalaman (bool)

o pencampuran (11 paduan fungsi)

o Logika ops (16 logika ops)


Ini tidak termasuk tingkat dhuwur operasi, hanya tingkat fragmen, dan aku yakin aku masih hilang beberapa. Itu juga hanya untuk dua unit tekstur, yang merupakan spesifikasi minimum memungkinkan. Anda harus melakukan beberapa lebih x2's untuk setiap unit tekstur tambahan. Permuting keluar semua kombinasi, hanya dengan apa yang ada di sana meskipun sudah 17.301.504 shader! Jadi, jelas bahwa tidak akan bekerja.


Itu
masuk akal (mungkin) untuk membuat semua bagian dari hardware pipa
untuk tambahan sedikit di atas kepala, tapi ada crapload pemeriksaan,
pengujian, dan melompat terjadi untuk melakukannya di tingkat perangkat
lunak.


Alternatif lain akan menjadi generasi runtime melalui JITing. Ini jatuh di luar MinGL apa yang akan dilakukan. Platform
yang ditargetkan mencakup x86, x64, PPC32, dan ppc64 minimal yang
terlalu banyak kode untuk menjejalkan ke dalam sebuah header. Ini juga tidak mungkin untuk JIT pada semua platform saya ingin menjalankannya di atas, khususnya Xbox 360 dan PS3.


Jadi, kurasa aku harus melakukan sesuatu seperti ini 10-100 mengambil "shader" yang tampak seperti pengaturan rata-rata. e.g. kedalaman tex0 + tes + noblending, atau tidak ada kedalaman warna + tes + one_minus_src_alpha, dan seterusnya. Ini
akan menjadi cepat (er) mudah-mudahan jalan yang digunakan 95% + dari
waktu, dan pengaturan lainnya harus jatuh kembali di
uber-do-all-tes-di-runtime shader.

Kemajuan


Supaya
jangan tampaknya seperti semua berita buruk, aku sudah mengurutkannya
jalan melalui bongkahan baik dari vertex pipeline, dan telah menulis
beberapa dari mereka cepat-jalur shader. Inilah
yang selalu menarik Gouraud + gelap dalam kasus ini, melakukan apa yang
mungkin adalah versi 3D "Halo, dunia!": Sebuah kubus yang berputar
berwarna primer.


Saya
juga memasukkan kode di code.google, pada kesempatan off Anda ingin
trik mengeluarkan matematika vektor SSE perpustakaan, atau pamer gila
anda optimasi skillZ pemetaan tekstur, memiliki itu.
Kembali Ke Atas Go down
Lihat profil user http://bonapito.darkbb.com
 
http://bonapito.darkbb.com/
Topik sebelumnya Topik selanjutnya Kembali Ke Atas 
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
NEW :: Your first category :: Your first forum-
Navigasi: