Je veux générer du bruit sous forme de valeurs entre -128 et 127 (la plage de sbytes) mais le bruit perlin/simplex génère des flottants entre -1 et 1 et je n'arrive pas à comprendre comment le convertir . Par exemple, 0.5f signifie 64 ou quelque chose comme ça. Avez-vous une idée sur la conversion de ces valeurs?Conversion du bruit en sbytes
1
A
Répondre
0
Utilisation lerp:
(sbyte)Mathf.Lerp(-128, 127, (noise+1)/2)
2
En venant de fond Arduino, je me retrouve avec toujours leur fonction map dans l'unité. Il est utilisé pour passer d'une gamme à l'autre. Vous passez l'entrée à la fonction, puis la plage de cette entrée qui est -1
à 1
. Enfin vous passez dans la gamme de sortie que vous voulez qui est -128f
et 127f
. La fonction renverra la valeur mise à l'échelle.
float mappedVal = mapValue(yourSimplexnoise, -1f, 1f, -128f, 127f);
float mapValue(float mainValue, float inValueMin, float inValueMax, float outValueMin, float outValueMax)
{
return (mainValue - inValueMin) * (outValueMax - outValueMin)/(inValueMax - inValueMin) + outValueMin;
}
0
certains comme celui-ci.
float r = (Random.Range(-1f, 1f) + 1)/2;
sbyte b = (sbyte)Mathf.Lerp(-128f,127f, r);
Eh bien, que se passe-t-il si vous ne faites que doubler la valeur de 127 et passer à 'sbyte'? Cela vous donnerait une gamme de -127 à 127 ... –
Essayez (octets) (noiseFloat * 127) – n8wrl
Eh bien ouais c'est assez simple maintenant que je pense à nouveau merci quand même pour les réponses rapides – Statey