2017-05-31 2 views
2

J'ai besoin de générer un bruit 3D homogène et mosaïque qui ressemble à un bruit perlin détaillé. Plusieurs forums disent "pour 3D en mosaïque vous avez besoin de bruit 6D" sans expliquer comment. Ce que j'ai trouvé jusqu'ici est le 'Accident Noise' lib, qui fournit le bruit simplex jusqu'à la 6ème dimension comme j'en aurais besoin, mais nulle part n'est expliqué comment générer un bruit 3D transparent hors de lui. Génération d'un bruit 3D homogène et mosaïque

Il va être implémenté en C#, mais il n'y a aucun problème avec moi dans la traduction d'autres langues.

J'espère que quelqu'un est en mesure d'aider, merci d'avance!

Dom

Répondre

1

Je ne comprends pas pourquoi on aurait besoin du bruit 6D pour rendre la fonction transparente; à ma connaissance, il suffirait d'implémenter une fonction pseudo-aléatoire 3D qui serait rendue possible en enveloppant les indices aux limites en utilisant un certain calcul de module. Ce bruit tridimensionnel pourrait alors être utilisé comme base pour un bruit de Perlin tridimensionnel pouvant être joint sans aucun mécanisme supplémentaire; lorsque les octaves du bruit de Perlin sont ajoutées, les seamlessnes sont générées automatiquement lorsque les valeurs de bruit à interpoler sont répétées.

+0

C'est exactement ce à quoi j'ai pensé, mais je n'ai pas réussi à réécrire une fonction de bruit que j'ai trouvée. Le problème est que je ne comprends pas la méthode de permutation de l'index de l'octet aléatoire sélectionné. J'ai essayé de changer celui-ci: https://github.com/keijiro/PerlinNoise – Dommar92

+0

Eh bien d'accord, donc en gros vous avez du bruit Perlin tridimensionnel et le problème est de le rendre facilement inclinable dans toutes les dimensions? – Codor

+0

Correct. Il est traduit plus tard dans Unity3D Color Array et utilisé comme Texture3d. Et les informations de profondeur sont nécessaires, non seulement pour texturer un cube. – Dommar92