Sadece 3D gürültü ile devam etmeyi ve kürenin yüzeyinde değerlendirmeyi düşünürdüm.
Kürenin yüzeyi alanında doğal olarak yer alan gradyan gürültüsü için, yüzeyde doğal bağlantı bilgilerine sahip, her bir hücrede kabaca eşit alana sahip düzenli bir örnek nokta desenine ihtiyacınız vardır, böylece bitişik değerleri enterpole edebilir veya toplayabilirsiniz. Bir Fibonacci ızgarası gibi bir şeyin işe yarayıp yaramayacağını merak ediyorum :
Dört komşunuzun indekslerini ve mesafesini belirlemenin ne kadar iş olacağını belirlemek için matematikte çiğnemedim (her durumda iyi tanımlanmış dört komşuya sahip olup olmadığınızı bile bilmiyorum), ve 3D gürültüsü kullanmaktan daha az verimli olabileceğinden şüpheleniyorum.
Düzenleme: Birisi matematik ile çiğnedi! Küresel Fibonacci Haritalaması hakkındaki bu yeni makaleye bakınız . Görünüşe göre onu küre gürültüsüne uyarlamak kolay olacaktır.
Bir küreyi oluşturuyorsanız, sadece bir kürenin yüzeyindeki gürültüyü değerlendirmekle kalmaz ve kürenizi gürültü kafesinizin çözünürlüğüne göre süslemede sorun yaşıyorsanız , kürenin yüzeyinde jeodezik bir ızgara oluşturabilirsiniz (alt bölümlere ayrılmış bir ikosahedron, genelde):
Kürenin her tepe noktası, gradyan gürültüsü için rastgele oluşturulmuş bir eğime sahip olabilir. Bu bilgiyi piksel gölgelendiricisine almak için (değer gürültüsü gibi doğrudan enterpolasyon istemiyorsanız), bu makalenin barycentric koordinatlarla tel kafes oluşturma gibi bir tekniğe ihtiyacınız olabilir : her köşe, üçgendeki bu tepe noktasının barycentric koordinatlarını içeren . Daha sonra SV_PrimitiveID
piksel gölgelendiricisinden (veya OpenGL eşdeğerini) okuyabilir, bulunduğunuz üçgene bağlı olarak köşelerden üç gürültü gradyanını okuyabilir ve enterpolasyonlu barycentric koordinatları kullanarak istediğiniz gürültü hesaplamasını kullanabilirsiniz.
Bu yöntemin en zor kısmı, her tepe noktasında gürültü değerlerine bakmak için üçgen kimliğinizi üç örneğe eşlemek için bir şema ile geliyor.
Küre modelinizden daha iyi bir çözünürlükte birden fazla oktav veya gürültüye ihtiyacınız varsa, köşeleri olan kaba bir jeodezik ızgara yapabilir ve piksel gölgelendiricisinde birkaç alt bölüm yapabilirsiniz. yani üçgen bölünmüş rakam hangi barycentric koordinatlar, gelen olur örgü ayrıca tessellated olsaydı olmak ve sonra ilkel kimliği ve barycentric koordinatlar o üçgenin için ne olacağını anlamaya.