2B Gezegen Doku 3D Illusion


10

Birkaç yıl önce, kullanıcıya 2D bir doku kullanarak dönen bir gezegenin yanılsamasını veren bir tekniği duydum. Kullanıcının konumunu veya görünüm penceresini değiştiremediği göz önüne alındığında.

Bu tekniğin adı nedir?

Yanıtlar:


25

Tamam sanırım şimdi temsilcim var. Görüntüler gömülü olarak önceki gönderinin içeriği. Bu aradığınız dönen gezegen efekti mi? Bu sadece yıldız alanında yarı saydam bir "delik" ile görüntülenen bir kaydırma 2D görüntü.

Etkinin nasıl görüneceğine dair hızlı küçük bir animasyonlu gif bir araya getirdim. Açıkça çok daha akıcı olabilir - gezegen yüzeyini her karede 4 piksel kaydırdım. Ayrıca görüntüyü sarmak için ayarlanmamıştır, böylece döngünün sonunda bir aksaklık olur.

gezegen http://www.perludus.com/orbit.gif

Bunu Photoshop'ta yaptım, ancak konsept alfa saydamları vb. Yapmanızı sağlayan 2B oluşturma ortamında çalışmalıdır. İşte süreci gösteren bir dizi ekran görüntüsü ...

  1. Boş bir yıldız arka planı oluşturun ve içine yuvarlak bir delik açın.
    alternatif metin
  2. Gezegeniniz için gri tonlamalı gölgeli bir küre bulun, bunun gibi
    alternatif metin
  3. İşte delikli yıldızlarımız ve üstte gölgeli küre, yarı şeffaf
    alternatif metin
  4. Deliğin büyüklüğünde mavi bir daire yapın ve dış mavi bir parıltı verin. Ayrıca yarı saydam olacak şekilde ayarlayın. İşte gölgeli küre ile neye benziyor
    alternatif metin
  5. Şimdi bir gezegen yüzey dokusu bulun. Ben sadece bu "gezegenin yüzey dokusu" googling buldum
    alternatif metin
  6. Gezegen dokusunu, bu görüntüyü elde etmek için yarı saydam delikli yıldız görüntüsünün altına yerleştirin
    alternatif metin

Gezegeninizin yüzeyini canlandırmak için alttaki gezegen yüzey dokusunu hareket ettirmeniz yeterlidir. Kesintisiz ve sonsuz bir dönüş elde etmek için dokuyu kenara ulaştığında kaydırmak konusunda akıllıca davranmanız gerekecek.

Umarım bu yardımcı olur ve aradığınız etkidir!

PS, gezegen dokuları oluşturmak için oldukça yeni bir yolla sanatçılar hakkında bu makaleyi gördüm - bu yanıtı düşünmemi sağladı :) http://www.behance.net/gallery/Pan-Planets/9557465


np Henrik. Gönderinizi görür görmez "Bahse girerim bu adamın ne anlama geldiğini biliyorum." % 100 emin değilim ama sanırım dönen gezegen etkisi orijinal Star Trek TV şovunda böyle yapıldı.
Tim Holt

Bu harika bir cevaptı, sahip olduğum bir oyun projesi için bana bir fikir veriyor. Bir dahaki sefere Starcraft 2 hasta yükü, bunun nasıl yapıldığını görmek zorundayım =)
Bryan Harrington

Harika cevap, harika ekran görüntüleri!
Hata 454

Görüntünüz öldü. Düzeltebileceğini mi düşünüyorsun?
Mart'ta Mithical

3

Ne demek istediğini tahmin edeceğim ve sadece oraya bir fikir atacağım, ama bunu yapmanın 'ünlü' yolu olmayacaktı.

hepsi 2B

2 doku al. biri kara kütleniz, diğeri bulutlarınız. bulutların eşleşen bir alfa katmanı olması gerekir, böylece 'onları görebileceksiniz'.

dokuları tileable yapmak, yani sorunsuz sarın. takip edebileceğiniz photoshop'ta bunları yapmanıza yardımcı olacak programlar veya öğreticiler var.

Sonunda sadece bir daire olan bir şablon maskesi yaparsınız, böylece aslında kare dokularınıza yuvarlak bir delikten bakıyorsunuz, böylece köşeleri maskeliyorsunuz.

Artık kara ve bulut dokularının doku matrislerini hareket ettirmek için canlandırıyorsunuz. farklı yönlerde ve hızlarda hareket etmelerini sağlayın ve dönüyormuş gibi görünecektir. her şey dokularınızı ne kadar sorunsuz yaptığınıza bağlıdır.


2

Bence bu makale tekniği anlatıyor. (Rusça, bu yüzden çevrilmiş link gönderiyorum.)

https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=auto&sp=nmt4&tl=en&u=https://habrahabr.ru/post/248381/&usg=ALkJrhgViuYdAi-Vav3cyhxvydkaBKh6EQ

Buraya uyguladım. http://github.com/meric/renderplanet

Temel olarak ortografik projeksiyonu kodlayan bir görüntü alırsınız ( http://mathworld.wolfram.com/OrthographicProjection.html ) ve bir gölgelendirici kullanarak gezegeni ve bulut dokusunu etrafına sararsınız. Döndürmek için gezegen dokusunu dt'ye göre kaydırın. Atmosfer halkası ve gölge için hazırlanmış bir yarı saydam görüntü kullanın veya yarı saydam yaylar çizerek ve gölge için gölgelendiriciyi deneyerek oluşturun.

İşte görüntü:

yazım

Daire içindeki her piksel için Red + Green/255, gezegen / bulut dokusunun aranacak X koordinatı Blue + Alpha/255normalleştirilir ve Y koordinatı normalleştirilir.

İşte sonuç:

örneklem

Gezegen ve bulut dokuları eşkenar dörtgen izdüşümde olmalıdır.


1

Sorunuz, üzerinde çalıştığınız bağlamdaki kısıtlamalar konusunda net değil. 3B oluşturmada dokuların büyük çoğunluğu 2B'dir. Yani sadece etrafında 2B yüzey dokusu olan bir 3D küre gösteriyorsanız, bu gerçekten bir sorun değildir. 3B oluşturmayı kullanamıyorsanız, tam olarak ne kullanabileceğinizi söylemelisiniz.

Temel sorun, bir kürenin yüzeyi üzerinde 3D render ile ücretsiz olarak elde ettiğiniz düz bir doku oluşturmanız gerektiğidir. Gezegen döndükçe, gezegenin yüzeyinin görünür kısımları doğrusal olmayan bir şekilde canlanır (dokunun ekvatoral kısımları kutuplardan daha hızlı hareket eder). Bu yüzden ya diski eşlerken görüntüyü kendiniz deforme etmeniz ya da VirtualVoid tarafından önerilen şekilde yapmanız ve zamanla aralarında değiştirdiğiniz birden fazla görüntünüz olması gerektiğini düşünüyorum.

Uygulamak korkunç olurdu, ancak dokuyu, piksel piksel işleyebiliyorsanız, temel olarak kürenin her satırı için rasterleştirme hesaplarını ayrı ayrı yapabilirsiniz. Yüzey haritası dokunuzun düzleştirildiğini varsayalım, böylece ekvatorda 512 piksel görüntü var. Ayrıca, görünür diskinizin 256 piksel genişliğinde olduğunu varsayalım. Şimdi, oluşturulan diskin her bir çizgisini yüzey dokusu üzerinde kayan bir pencere olarak düşünün. Ekvatorda, pencere doku genişliğinin% 50'sidir ve 256px'in her birini diskteki eşdeğer piksele kopyalamanız yeterlidir. Diskteki bir sonraki satır 256 pikselden biraz daha az olacaktır, ancak bozuk yüzey haritası nedeniyle hala 256 piksel giriş yüzeyi harita verisi vardır. Böylece, giriş yüzeyi harita verilerinin alt-örneğini alıp ortaya çıkan pikseli çıkarırsınız. Kolay matematik için ' Ekvator ile kutup arasındaki yolun 1 / 3'ünün çıkış diskinde 128 piksel genişliğinde olduğunu varsayalım. Bu 128 pikselin her biri 2 komşu pikselin ortalaması olacak. Direğe indiğinizde 256 pikselin tamamını yalnızca birkaç çıkış pikseli olarak ortalamanız gerekir.

Bunu başka şekilde de yapabilirsiniz ve kaynak dokudaki çizgilerin farklı uzunluklarda olmasını sağlayabilirsiniz. Dolayısıyla, kaynak verileri içeren satırın içinde 512 piksel olsa da, aşağı yolun 1/3 satırında yalnızca 256 piksel bulunur ve alttaki satırda yalnızca birkaç piksel vardır. Ancak her çizgi, eşdeğer y koordinatında diskin genişliğinin iki katıdır. Bu tür bir doku yaratması kesinlikle korkunç olurdu. Ve muhtemelen korkunç takma ad sorunlarından muzdarip olurdu.

Bu iki durumda da, animasyonunuz giriş dokusundaki başlangıç ​​pikselini x arttırır ve giriş dokusu çizgisinin başlangıcına kadar sarar.

Şimdi bu konuda ne kadar çok yazarsam, bunun korkunç bir fikir olduğuna ikna oldum, sadece gerçekten başka seçeneğiniz yoksa uygulayacağınıza ikna oldum. Başka seçeneğiniz olmaması için çok sıradışı bir durumda olmanız gerekir.

Belirli bir adlandırılmış teknik olarak bu (oldukça belirsiz) soruna herhangi bir çözüm duyduğuma inanmıyorum.


0

Spritelar. Açıkladığınız şey, ucuz bir şekilde işlemek için bir 3D oyun motorunda bir 2D sprite gibi görünüyor (Nintendo64, birçok erken 3d motorda olduğu gibi bunu her yerde yaptı).

Bir gezegeni döndürmek istiyorsanız, önceden oluşturulmuş bir gezegen dönüşü olan bir hareketli grafik sayfasına dayanarak animasyonlu bir 2D hareketli grafik görüntülemeniz gerekir. Örneğin, animasyonlu bir .GIF gibi. Sorun, önceden oluşturulmuş olması, bu nedenle, yalnızca kullanıcının görüş açısını değiştirmesine izin verilmezse çalışır.

http://en.wikipedia.org/wiki/Sprite_(computer_graphics )


0

Bu, sadece birkaç kare içeren bir doku kullanarak basit bir animasyon olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.