hedgewars/uLandGenPerlin.pas
changeset 10702 528d899443ab
parent 10510 9329dab04490
child 15016 bea068dd9356
equal deleted inserted replaced
10701:3bbbb6caa1bd 10702:528d899443ab
    95                             grad(p[BA  ], x-N , y  )),
    95                             grad(p[BA  ], x-N , y  )),
    96                     lerp(u, grad(p[AB  ], x   , y-N),
    96                     lerp(u, grad(p[AB  ], x   , y-N),
    97                             grad(p[BB  ], x-N , y-N)));
    97                             grad(p[BB  ], x-N , y-N)));
    98 end;
    98 end;
    99 
    99 
   100 function f(t: double): double; inline;
       
   101 begin
       
   102     f:= t * t * t * (t * (t * 6 - 15) + 10);
       
   103 end;
       
   104 
       
   105 procedure inoise_setup();
   100 procedure inoise_setup();
   106 var i, ii, t: Longword;
   101 var i, ii, t: Longword;
   107 begin
   102 begin
   108     for i:= 0 to 254 do
   103     for i:= 0 to 254 do
   109         p[i]:= i + 1;
   104         p[i]:= i + 1;
   128     //bottomPlateHeight = 90;
   123     //bottomPlateHeight = 90;
   129     //bottomPlateMargin = 1200;
   124     //bottomPlateMargin = 1200;
   130     margin = 200;
   125     margin = 200;
   131 
   126 
   132 procedure GenPerlin;
   127 procedure GenPerlin;
   133 var y, x, {dy, }di, dj, df, r, param1, param2, rCutoff, detail: LongInt;
   128 var y, x, di, dj, r, param1, param2, rCutoff, detail: LongInt;
       
   129 var df: Int64;
   134 begin
   130 begin
   135     param1:= cTemplateFilter div 3;
   131     param1:= cTemplateFilter div 3;
   136     param2:= cTemplateFilter mod 3;
   132     param2:= cTemplateFilter mod 3;
   137     rCutoff:= min(max((26-cFeatureSize)*4,15),85);
   133     rCutoff:= min(max((26-cFeatureSize)*4,15),85);
   138     detail:= (26-cFeatureSize)*16000+50000; // feature size is a slider from 1-25 at present. flip it for perlin
   134     detail:= (26-cFeatureSize)*16000+50000; // feature size is a slider from 1-25 at present. flip it for perlin