3B arazi düzenleyicisi oluştururken nereden başlamalı? [kapalı]


22

Araziyi yükselten, indiren, düzleyen ve dokulandırabilen basit bir araç (başlangıç ​​için) inşa etmek istiyorum.

Peki, böyle bir arazi editörü yapmak için geçirmem gerekenler nelerdir?

Ve belki de konuyla ilgili değerli kaynaklar var?

Evet, bir 3D arazi editörüyle ilgilendiğimi söylemeyi unuttum.

Yanıtlar:


24

'Klasik' 3B arazi düzenleyicisi için adımlar şu olabilir:

Bir kafes (örneğin bir kareler ızgarası, her iki kareden iki kare yapılmış) bir karesi oluşturun, tüm köşeler üçgenler arasında paylaşılır (böylece kesişim başına yalnızca bir tane normal olur). görüntü tanımını buraya girin

Bu bir 3DMesh yapılmalı ve programınızda gösterilmelidir.

Izgara parçalarını yükseltmek ve alçaltmak (küçültmek veya büyütmek) için bir araç yapın (fare imlecinin kafesin neresinde olduğunu hesaplamanız ve kafeslerin köşelerini değiştirmeniz gerekir, ancak yalnızca yukarı ve aşağı).

Büyük bir doku (1024x1024x4 veya daha iyisi gibi) oluşturun ve uyarıyla eşleme adı verilen şeyle dokulayın: görüntü tanımını buraya girin

Boyamanın (örneğin R, G, B VEYA Alpha ile, örneğin pembe değil) boyamasını ve çirkin ana renkleri (Kırmızı, Mavi, Yeşil, Alfa) değiştiren dokuları seçmeyi veya dahası bunları temsil etmeyi mümkün kılın:

Gölgelendirici (yaratmanız gerekecek), bu güzel dokuları (örneğin taş, çimen, ...) sıçratma yoğunluğuyla (çirkin olan) yoğunluğuyla çarpmalı ve daha sonra bütün görünecek şekilde karıştırmalıdır (örneğin sadece 2 renk gibi), bunun gibi: görüntü tanımını buraya girin

Büyük görüntüler için özür dilerim, bunu işte birlikte çırptım ...


Ah, bu biraz daha netleşti. Teorik olarak, 3B ağ örgüsünden sonra basitçe yeniden konumlandırma (yukarı / aşağı) ve bu örnekteki tekstüre "splatmap" yolunu yaptınız, ardından gölgelendirici "3B" arazisine benziyor mu?
joltmode

1
3D ağ için düzeltin. Gölgelendirici ağ ile (tepe noktası gölgelendiricisi) özel bir şey yapmaz, büyük iş parçalama gölgesindedir ("piksel gölgelendiricisi"); (elbette ayrıca her zaman% 100 olan taş gibi, aynı zamanda diğer dokular üzerine sıçrayan bir 'temel' yapıya da sahip olabilirsiniz).
Valmond

6

İlki, arazinizin veri yapısı ve ne bir editörden ne istediğinizi net olarak bilmek. Bir örgü mü? Bir dizi yükseklik? Bir çeşit Minecraft tarzı voksel sistemi? Ağaçlar ve binalar gibi kafes arazi özellikleri ekleyebilmeniz mi gerekiyor? El ile, otomatik olarak veya her ikisi de? Devam edebilirim ama ne demek istediğimi anladın.

Temel bir arazi editörü yazmak zor değil, ancak yaptığınız oyuna ve dolayısıyla yapmak istediğiniz arazi türüne bağlı olarak ayrıntılar çok değişecektir.


Eh, bir kafes / dizi og yükseklikleri / vokseller vb sadece tahsis edilmiş verileri saklamak için bir yoldur, daha fazla ilgilendim, bu verileri doldurmak için araçların nasıl yazılacağına daha çok ilgi duydum. Aslında, bir arazi editörünün "perde arkasında" nasıl göründüğü hakkında hiçbir fikrim yok. Buna saygı gösterebilirim, ama sadece kendi yolumda, iddiaya girmem gereken bazı kurallar var ...
joltmode 18:11

2
-1. Bu bana bir cevap gibi görünmüyor. Bir yorum olarak daha iyi olurdu bazı sorular soruyorsun.
16'da bummzack

5

Bu sadece Valmond'un cevabının bir takibi, ancak yorum olarak eklemek için yeterince kısa görünmüyor.

Temel bir editör yapmak için uğraştıktan sonra, yükseklik haritasını tamamen GPU'da oluşturarak deneme yapmak isteyebilirsiniz. Bu tamamen isteğe bağlıdır ancak sürekli değişen bir arazi için işi GPU'ya boşaltmanın iyi bir yoludur. Valmond, doku gölgelemesinin piksel gölgelendirici üzerinde yapılmasından çoktan bahsetti; İşte vertex shader ile bunun nasıl yapılacağı hakkında bir öğretici . Gölgelendirici olmayan şeyler C # ve XNA'ya özgüdür, ancak önemli şeyler gölgelendirici kodundadır.

Bu durumda, CPU tarafındaki kodunuz bellekte depolanan gri tonlamalı dokuyu değiştirmekle ilgilenir. Kafes ızgaralarınız düz kalır, köşeler CPU tarafından güncellenmez. Doku her değiştirildiğinde, yeni doku GPU'ya aktarılabilir.

Tüm gölgelendirici modellerinin, köşe gölgelendiricisinde doku örneklemeyi desteklemediğini unutmayın (örneğin, HLSL'de en azından gölgelendirici model 3.0'a ihtiyacınız vardır).


0

Ogre’nin ETM’ine bakabilirsiniz http://www.ogre3d.org/addonforums/viewforum.php?f=16 , size bazı fikirler vermelisiniz. Artifex Terra , hareket halindeyken görmek istiyorsanız üzerine kuruludur.


2
Cevaplarınızı birleştirmenizi ve kullanılmayanları silmenizi öneririm.
joltmode,

GPU için yaratılmış / manipüle edilmiş arazi için Gilliam de Carpentier'in Scape makalelerini inceleyin, konuyla ilgili çok bilgilendirici bir şekilde okuyun. decarpentier.nl/scape-render
Johann

Tom'un daha önce de önerdiği gibi, Scape makaleleri zaten araziyi oluşturmak ve oluşturmak için ilginç bir referans olarak kullanılmış olabilir. Ancak bu öneriden bu yana, bu konuya daha uygun olan başka bir Scape makalesi yayınladım. Bu yüzden sana haber vereyim. www.decarpentier.nl/scape-brush-pipeline
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.