Пример #1
0
public void FastHash2D(Float2 Pos,out Float4 hash_0, out Float4 hash_1){
	//Float2 Offset = new Float2(26,161);
	float Domain = 71;
	Float2 SomeLargeFloats = new Float2(951.135664f,642.9478304f);
	Float4 P = new Float4(Pos.x,Pos.y,Pos.x+1,Pos.y+1);
	P = P-floor(P*(1.0f/Domain),false)*Domain;
	P.x += 26;
	P.y += 161;
	P.z += 26;
	P.w += 161;
	P.Mul(P);
	P = P.xzxz.Mul(P.yyww);
	hash_0 = frac(P*(1/SomeLargeFloats.x),false);
	hash_1 = frac(P*(1/SomeLargeFloats.y),false);
}
Пример #2
0
//Float2 Interpolation_C2( Float2 x ) { return (x*x).Square().Mul((x * ((x * 6.0f) - 15.0f)).Add(10.0f)); }
void FastHash2D(Float2 Pos,out Float4 hash_0, out Float4 hash_1, out Float4 hash_2){
	Float2 Offset = new Float2(26,161);
	Float Domain = 71f;
	Float3 SomeLargeFloats = new Float3(951.135664f,642.9478304f,803.202459f);
	Float4 P = new Float4(Pos,Pos+1);
	P = P.Sub(floor(P.Mul((1.0f/Domain)),true).Mul(Domain));
	P.Add(Offset.xyxy);
	P.Square();
	P = P.xzxz*P.yyww;
	hash_0 = frac(P*(1f/SomeLargeFloats.x),true);
	hash_1 = frac(P*(1f/SomeLargeFloats.y),true);
	hash_2 = frac(P*(1f/SomeLargeFloats.z),true);
}
Пример #3
0
public Float4 CellularWeightSamples( Float4 Samples )
{
	Samples = Samples.Mul(2.0f).Sub(1);
	//return (1.0 - Samples * Samples) * sign(Samples);
	return ((Samples+0).Square().Square()).Sub(sign(Samples,false));
}