Sanatsal (2D) bir ağacı gerçek zamanlı olarak (L-Sistem) prosedürel olarak (nasıl) büyütürüm?


20

Son zamanlarda bir L-sistem modülü programladım , beni daha fazla ilgilendirdi. Ben de bir Bitkiler vs Zombies bağımlısı, Bilgelik Ağacı kavramını gerçekten sevdim. Sadece eğlence için benzer prosedürel sanatlar yaratmak ve daha fazla bilgi edinmek isterim.

Soru: Sanatsal bir ağaç oluşturma sürecine (belki sabit kamera / perspektifle 2d) dinamik olarak nasıl yaklaşmalıyım?

İdeal olarak bir bitki ile başlamak istiyorum (sadece bir yaprak ile bir kök) ve yapısı üzerinde bir miktar etki (girdi / kullanıcı eylemi) kullanarak dinamik olarak büyütmek istiyorum. Bu etkiler farklı dallanma türlerine, dallardaki eğrilere, yayılmasına, meyvelerin yerlerine, çiçeklerin rengine vb. Neden olabilir. Gerçekten yaşam / ruhla dolu olmasını ister. :)

Bitkiler vs Zombies: Bilgelik Ağacı Benzer bir ağacı dinamik olarak büyütmek harika olurdu, ancak çok daha fazla varyasyon ve animasyon gerçekleşiyor.

Arkaplan: Programcı, birkaç oyun motoru kullanmış (Ogre3d, cocos2d, birlik). Bunu düzeltmeye çalışırken, doğrudan openGL kullanarak doğrudan programlanmadı :).

Çok zaman harcamaya hazırım, lütfen API'ları bana bildirin? ve sizin gibi bir uzman bu sorunu nasıl ele alacaktı?

Neden 2D? Bence sorunu sadece 2 boyutta çözmek daha kolay.

Sanatsal ilham kaynakları:

Altta çalılar olmadan sadece meyve ve yaprakları olan ağaç

Büyük ağaç maymun arkasında solda (görünür dallar, yeşil yapraklar, çiçekler, meyveler, vs.).

PixelJunk's Eden (Sanat tarzı ilham).

Fraktallar kullanılarak işlemsel olarak oluşturulan elma ağacı

Lütfen soruyu anlamanızın kolay olup olmadığını bana bildirin, daha fazla ayrıntı verebilirim.

Umarım çeşitli yaklaşımlarla ilgili bir tartışma herkes için yararlı olur. Siz harikasınız.


2
Sana bir cevap vermeyebilirim, ama bunun nereye gittiğini kesinlikle görmek isterim. Müthiş bir konsept!
Bloodyaugust

Harika bir soru, bir süredir L-Systems ile ilgileniyorum ama bu ilgiyle hiçbir şey yapmadım :)
Luther


1
@Stephen sadece bu yüzden bu soru 2011'den itibaren ve dışarı düzenleme soruyu soran kullanıcı tarafından üstüne necro'd var biliyor Student/denStudent/Programmer
PeterT

@lalan Lütfen sadece soru için önemli düzenlemeler yapın, artık öğrenci olmamanız önemli bir değişiklik veya düzenleme nedeni değildir.
MichaelHouse

Yanıtlar:



8

"Oyun" için bazı fikirler:

  • Önce kullanıcıyı ağacı için bir ad verin. Algoritma bir tohum oluşturmak için bu adı kullanın. Yani her ismin kendine özgü bir ağacı olacak. Tohum ayrıca ağacın yaprak ve meyve türünü de etkileyebilir.
  • Sen "ağaç çeşit uygulamak Tamagotchi ağacın (vb gübreleme, su,) hakkında daha büyük ve daha kullanıcı ihtimamlarından daha güzel yetişir"
  • En yüksek ağaçların yüksek puanlar listesini oluşturun. Başka bir fikir, ağacınızın yanındaki diğer kullanıcıların yüksekliklerini ve adlarını göstermek olacaktır. Böylece ağaç yüksekliğinizi doğrudan diğer kullanıcılarla karşılaştırabilirsiniz. Bkz Bu videoyu bir örnek olarak. Bulutlar, diğer kullanıcıların elde ettiği yüksekliği gösterir.

Prosedürel ağaç üretimi için çok sayıda algoritma ve makale var ( bu konu ilginç olabilir ). Zor bir görev dalları güzelce karıştırmaktır. Alfa-harmanlama ile çözebileceğiniz için 2D bu konuda kesinlikle daha kolay olacak.

Ogre3D, Unitiy ve cocos2d ile deneyimlendiğiniz için, hemen devam edip o şeyi uygulayabilirsiniz (OpenGL'yi şimdi öğrenmeye gerek yok IMHO). Şahsen cocos2d'yi seçer ve iPad ve / veya iPhone için serbest bırakırım, böylece herkes ağacını mobil cihazıyla taşıyabilir.


1
Bu oyunda L-Systems ile sosyal / rekabetçi bir şekilde oynamak isterdim.
deft_code

1
Beni gamedev iplik işaret ettiğiniz için teşekkür ederiz .. Güzel fikirler, tamagotchi ve goo-kule .. mobil uygulama gerçekten harika olurdu. 3DS Max eklenti video bulundu - oldukça harika bir bağlantı ..
lal

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.