2D mi 3D mi: Arayüzde Üçüncü Eksen Ne Zaman Bilgi Taşır
2D mi 3D mi sorusu genelde estetik tercih gibi tartışılıyor. Karar aslında tek bir ölçüte bakar: temsil ettiğin şeyin kendisi üç boyutlu mu, yoksa sadece verisi üç değişkenli mi. İkisi aynı şey değil ve karıştırıldığında çıkan arayüz kimsenin işine yaramıyor.
Fark boyut sayısında değil, kontrol sayısında
2D bir arayüzde imleç iki serbestlik derecesi taşır ve ekrandaki her nokta tek bir konuma karşılık gelir. Nesneyi üç boyuta taşıdığın anda kullanıcıdan altı serbestlik derecesini yönetmesini istemiş olursun: üç eksende konum, üç eksende dönüş. Giriş aracı ise hâlâ iki boyutlu. Fare, parmak, trackpad.
Aradaki açığı mod kapatır. Sürükleme kimi zaman döndürür, kimi zaman kaydırır; hangisi olduğunu bir tuş kombinasyonu ya da bir mod düğmesi belirler. Kullanıcının öğrenmesi gereken şey böylece içerik olmaktan çıkar, kameranın nasıl sürüleceğine dönüşür.
Soyut veride üçüncü eksen belirsizlik üretir
Üç boyutlu grafiğin ekrandaki hali iki boyutludur, derinlik perspektifle taklit edilir. Bunun iki doğrudan sonucu var. Örtüşme: öndeki nokta arkadakini gizler, gizlenen veri yok sayılır. Ölçek: perspektifte uzaktaki nesne küçülür, dolayısıyla iki çubuğun ekrandaki boyu artık değerlerinin oranı değildir.
Asıl kayıp bundan sonra geliyor. 2D bir grafikte bir noktanın ekran konumu tek bir değer çiftine karşılık gelir, okumak için hareket gerekmez. 3D projeksiyonda aynı ekran konumu, kameradan farklı uzaklıktaki sonsuz sayıda noktaya karşılık gelir; değeri okumak için sahneyi döndürmek zorundasın. Yani her okuma bir etkileşim borcu doğurur. Üçüncü ekseni renkle, boyutla ya da küçük çoklu grafiklerle vermek o borcu tamamen siler.
3D nerede kazanır
Tomografi kesitlerinden hacim çıkarmak, bir dökümün duvar kalınlığını denetlemek, protein katlanmasına bakmak, arazi eğimini görmek. Bu işlerde kullanıcı zihninde zaten üç boyutlu bir model taşıyor ve arayüz o modeli ekrana getiriyor. Ölçüt bu kadar basit: referans nesne fiziksel olarak üç boyutluysa 3D kazanır. Değişken sayısı üç olduğu için kazanmaz.
Canvas'ın arkasında erişilebilirlik ağacı yoktur
Tasarım tartışmalarında en çok atlanan yer burası. Bir WebGL sahnesi erişilebilirlik ağacında tek bir canvas öğesidir. İçindeki yüz nesnenin hiçbirinin adı, rolü, durumu yok; ekran okuyucu boş bir dikdörtgen görür. Klavyeyle gezinmeyi sıfırdan yazarsın, odak sırasını kendin tanımlarsın, sekme davranışını taklit edersin. 2D arayüzde bunların hepsi işaretlemeden bedava gelir.
Test tarafı aynı yere çıkıyor. 2D bir arayüzde iddiayı DOM üzerinden doğrularsın; 3D sahnede aynı iddia için piksel karşılaştırması ya da sahne grafiğine özel bir kanca gerekir, ikisi de kırılgandır. Kamera durumunu genelde URL'ye yazarım: konum, dönüş ve yakınlaştırma serileştirildiği anda görünüm paylaşılabilir olur, hata raporu yeniden kurulabilir, test iki koşuda aynı kareyi üretir. Bunu yapmayan 3D arayüzde kullanıcının gördüğü ekranın adresi yoktur.
Karar
3D'yi 2D'nin yerine değil yanına koy. Genel amaçlı navigasyonda, listede, formda, gösterge panosunda üçüncü eksenin getirdiği tek şey maliyet. Nesnesi gerçekten hacimli olan işlerde 3D görünümü aç, ama okuma ve karşılaştırma için 2D izdüşümü de aynı ekranda bırak. Kullanıcı ölçmek istediğinde düzleme bakar, anlamak istediğinde döndürür.