diff --git a/hmp2obj/hmp2obj.lpi b/hmp2obj/hmp2obj.lpi index 234e8e5..edec08e 100644 --- a/hmp2obj/hmp2obj.lpi +++ b/hmp2obj/hmp2obj.lpi @@ -17,9 +17,6 @@ - - - @@ -36,12 +33,10 @@ - - @@ -55,12 +50,6 @@ - - - - - - diff --git a/hmp2obj/hmp2obj.lpr b/hmp2obj/hmp2obj.lpr index 534954e..9b6266a 100644 --- a/hmp2obj/hmp2obj.lpr +++ b/hmp2obj/hmp2obj.lpr @@ -35,6 +35,7 @@ begin writeln('tile size: ', world.TileWidth, 'x', world.TileHeight); world.ExportToObj('heightmap.obj'); + world.ExportToRaw('heightmap.raw'); writeln('world exported'); world.Free; diff --git a/hmp2obj/rs_world.pas b/hmp2obj/rs_world.pas index c8be78d..e0abe28 100644 --- a/hmp2obj/rs_world.pas +++ b/hmp2obj/rs_world.pas @@ -65,6 +65,7 @@ type procedure LoadFromFiles(const hmp, tex, texmap: string); procedure ExportToObj(const objfname: string); + procedure ExportToRaw(const rawfname: string); constructor Create; destructor Destroy; override; @@ -347,7 +348,6 @@ var v: TVertex3f; x, y, stride: integer; i2, i3: integer; - texfname: string; begin AssignFile(f, objFname); Rewrite(f); @@ -405,6 +405,22 @@ begin WriteToObj(objfname); end; +procedure TWorld.ExportToRaw(const rawfname: string); +var + f: file; + image_size, i: integer; + y: Byte; +begin + AssignFile(f, rawfname); + Rewrite(f,1); + image_size := heightmap.width * heightmap.height; + for i := 0 to image_size - 1 do begin + y := 255 - height_texture[i]; //negative scale - Unity uses it like this, for example + BlockWrite(f, y, 1); + end; + CloseFile(f); +end; + constructor TWorld.Create; begin height_texture := nil;