Bagaimana cara Zoom Jauh (Microsoft Seadragon) bekerja?

1

Saya melihat luar biasa demo di Photosynth dan Seadragon, beberapa teknologi "deep zoom" yang baru-baru ini diakuisisi oleh Microsoft. Ada juga a versi yang kurang responsif di web.

Saya benar-benar ingin tahu cara kerja teknologi. Entri blog dan halaman web diterima, tetapi jawaban yang ideal akan mencakup satu atau lebih referensi untuk makalah yang diterbitkan dalam literatur profesional.

Norman Ramsey
sumber
Mungkin lebih cocok untuk SO?
Bobby
Teknologi Microsoft keren lainnya yang terkait, yang juga menggunakan zoom mendalam untuk beberapa fungsinya adalah Photosynth - photosynth.net - Sangat mudah untuk mengunduh klien dan membuatnya sendiri untuk melihat cara kerjanya, yang Anda butuhkan adalah seluruh rangkaian foto digital dari area / objek yang sama.
GAThrawn
@ GAThrawn: Memang begitu. Itu sebabnya saya menyebut Photosynth dalam teks pertanyaan :-)
Norman Ramsey
Pastikan untuk memeriksa ketiga tautan di livelabs.com ;-)
Tom Wijsman
Dan untuk dengan mudah membuat kunjungan Anda sendiri zoom.it ;-)
Tom Wijsman

Jawaban:

3

Intinya: jangan mencoba membuat lebih banyak piksel daripada apa yang mungkin dilakukan oleh layar. Anda tidak perlu menyentuh data yang tidak relevan untuk gambar akhir karena tidak bisa dilihat. mari kita ambil penampil gambar normal:

  • Anda memiliki gambar asli sebagai piksel rgb di ram
  • Anda ingin menampilkan gambar

jadi, biasanya Anda membuat permukaan yang bisa Anda gambar dan kemudian Anda mengulangi data asli dan mengecat piksel pada permukaan. jika Anda "memperbesar lebih dekat", Anda menggambar 4, 8, 16 piksel per zoom daripada aslinya. dan jika Anda "memperkecil", Anda hanya menggambar setiap piksel ke-4, ke-8, ke-16 (atau, untuk meningkatkan kualitas, Anda menghitung warna baru berdasarkan piksel di sekitar piksel yang akan Anda pilih).

masalah dengan memperbesar lebih dekat: Anda cenderung membiarkan sistem jendela klip piksel di luar area yang dapat dilihat, meskipun Anda masih memiliki, katakanlah, 8k * 8k permukaan besar. layar Anda adalah 1980x1020 .. jadi itu pemborosan besar memori (dan kecepatan pada akhirnya). akan lebih baik untuk mencari tahu apa yang terlihat SEBELUM Anda mulai mendapatkan data dari sumber aslinya.

masalah dengan perkecil: Anda harus menghitung berulang piksel terakhir. akan lebih baik untuk memiliki data asli sebaik mungkin DAN pada beberapa resolusi yang lebih rendah.

jadi, seadragon menggabungkan beberapa hal: menghitung apa yang dapat dilihat pengguna, mengakses data hanya untuk mengisi area yang dapat dilihat, dan melakukannya dengan sangat cepat. selain itu bersiaplah untuk mengambil data yang "dekat" ke tempat Anda melihat sekarang. tidak biasa untuk memperbesar gambar yang SANGAT dekat dan kemudian melompat INSTAN ke sudut lain gambar itu. biasanya Anda menjelajah dalam satu wilayah sedikit sehingga orang bisa mengambil data sebelumnya juga.

penjelasan yang lebih baik dan lebih dalam:

akira
sumber