mirror of
https://github.com/aimrebirth/tools.git
synced 2026-04-15 01:43:25 +00:00
Invert x axis for the left hand ue4 xyz system. Print r32 heightmap.
This commit is contained in:
parent
ea7282f3d1
commit
f9c4071b3f
4 changed files with 27 additions and 9 deletions
|
|
@ -174,6 +174,7 @@ void mmp::process()
|
||||||
|
|
||||||
// merge
|
// merge
|
||||||
heightmap = decltype(heightmap)(h.width, h.length);
|
heightmap = decltype(heightmap)(h.width, h.length);
|
||||||
|
heightmap32 = decltype(heightmap32)(h.width, h.length);
|
||||||
//heightmap_segmented = decltype(heightmap)(segment::len, h.length);
|
//heightmap_segmented = decltype(heightmap)(segment::len, h.length);
|
||||||
texmap = decltype(texmap)(h.width, h.length);
|
texmap = decltype(texmap)(h.width, h.length);
|
||||||
texmap_colored = decltype(texmap_colored)(h.width, h.length);
|
texmap_colored = decltype(texmap_colored)(h.width, h.length);
|
||||||
|
|
@ -225,7 +226,7 @@ void mmp::process()
|
||||||
|
|
||||||
alpha_maps.erase(0);
|
alpha_maps.erase(0);
|
||||||
scale16 = 0xffff / (h_max - h_min);
|
scale16 = 0xffff / (h_max - h_min);
|
||||||
const int unreal_koef = 51300;
|
const int unreal_koef = 51200; // 51300?
|
||||||
const int aim_koef = 10;
|
const int aim_koef = 10;
|
||||||
const double diff = h_max - h_min;
|
const double diff = h_max - h_min;
|
||||||
scale = aim_koef * diff / unreal_koef;
|
scale = aim_koef * diff / unreal_koef;
|
||||||
|
|
@ -247,6 +248,8 @@ void mmp::process()
|
||||||
for (int x = 0; x1 < x2; x1++, x++)
|
for (int x = 0; x1 < x2; x1++, x++)
|
||||||
{
|
{
|
||||||
auto height = s.d.Heightmap[y * dx + x];
|
auto height = s.d.Heightmap[y * dx + x];
|
||||||
|
heightmap32(y1, x1) = height; // dunno what is right
|
||||||
|
heightmap32(y1, x1) = height - h_min; // dunno what is right
|
||||||
auto val = (height - h_min) * scale16 * scale;
|
auto val = (height - h_min) * scale16 * scale;
|
||||||
auto &old_height = heightmap(y1, x1);
|
auto &old_height = heightmap(y1, x1);
|
||||||
old_height = val;
|
old_height = val;
|
||||||
|
|
@ -295,14 +298,20 @@ void mmp::writeTexturesList()
|
||||||
}
|
}
|
||||||
|
|
||||||
void mmp::writeHeightMap()
|
void mmp::writeHeightMap()
|
||||||
|
{
|
||||||
|
auto write_hm = [this](const String &name, const auto &v, auto sz)
|
||||||
{
|
{
|
||||||
auto fn = filename;
|
auto fn = filename;
|
||||||
fn += ".heightmap16.r16";
|
fn += name;
|
||||||
auto f = primitives::filesystem::fopen(fn, "wb");
|
auto f = primitives::filesystem::fopen(fn, "wb");
|
||||||
if (f == nullptr)
|
if (f == nullptr)
|
||||||
return;
|
return;
|
||||||
fwrite(&heightmap(0, 0), heightmap.size() * sizeof(decltype(heightmap)::type), 1, f);
|
fwrite(&v(0, 0), v.size() * sz, 1, f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
};
|
||||||
|
|
||||||
|
write_hm(".heightmap16.r16", heightmap, sizeof(decltype(heightmap)::type));
|
||||||
|
write_hm(".heightmap32.r32", heightmap32, sizeof(decltype(heightmap32)::type));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mmp::writeHeightMapSegmented()
|
void mmp::writeHeightMapSegmented()
|
||||||
|
|
|
||||||
|
|
@ -180,6 +180,7 @@ struct mmp
|
||||||
double scale16 = 0;
|
double scale16 = 0;
|
||||||
double scale = 0;
|
double scale = 0;
|
||||||
mat<uint16_t> heightmap;
|
mat<uint16_t> heightmap;
|
||||||
|
mat<float> heightmap32;
|
||||||
//mat<uint16_t> heightmap_segmented;
|
//mat<uint16_t> heightmap_segmented;
|
||||||
mat<uint32_t> texmap;
|
mat<uint32_t> texmap;
|
||||||
mat<uint32_t> texmap_colored;
|
mat<uint32_t> texmap_colored;
|
||||||
|
|
|
||||||
|
|
@ -81,8 +81,16 @@ template <typename T>
|
||||||
void aim_vector3<T>::load(const buffer &b)
|
void aim_vector3<T>::load(const buffer &b)
|
||||||
{
|
{
|
||||||
READ(b, base::x);
|
READ(b, base::x);
|
||||||
|
x = -x; // fix ue4 left hand coordinate system
|
||||||
READ(b, base::z);
|
READ(b, base::z);
|
||||||
READ(b, base::y);
|
READ(b, base::y);
|
||||||
|
|
||||||
|
/*
|
||||||
|
// direction will match to m viewer
|
||||||
|
READ(b, base::y);
|
||||||
|
READ(b, base::x);
|
||||||
|
READ(b, base::z);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void aim_vector4::load(const buffer &b, uint32_t flags)
|
void aim_vector4::load(const buffer &b, uint32_t flags)
|
||||||
|
|
|
||||||
2
sw.cpp
2
sw.cpp
|
|
@ -68,5 +68,5 @@ void build(Solution &s)
|
||||||
String arch = "x64";
|
String arch = "x64";
|
||||||
if (s.Settings.TargetOS.Arch == ArchType::x86)
|
if (s.Settings.TargetOS.Arch == ArchType::x86)
|
||||||
arch = "x86";
|
arch = "x86";
|
||||||
mod_converter += sw::LinkLibrary(sdk / ("lib/vs2015/" + arch + "/" + cfg + "/libfbxsdk-md.lib"));
|
mod_converter += LinkLibrary(sdk / ("lib/vs2015/" + arch + "/" + cfg + "/libfbxsdk-md.lib"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue