From a5c5726601b54844500035e361a6dc4273b0959a Mon Sep 17 00:00:00 2001 From: kervala Date: Tue, 3 Jan 2017 13:43:52 +0100 Subject: [PATCH] Merge with develop --- code/nel/tools/3d/textures_tool/main.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/code/nel/tools/3d/textures_tool/main.cpp b/code/nel/tools/3d/textures_tool/main.cpp index b7bbaa114..997557ffc 100644 --- a/code/nel/tools/3d/textures_tool/main.cpp +++ b/code/nel/tools/3d/textures_tool/main.cpp @@ -312,7 +312,8 @@ int main(int argc, char **argv) NLMISC::fromString(tokens[1], u); NLMISC::fromString(tokens[2], v); - verticeTextureCoords.push_back(NLMISC::CUV(u * (float)TextureSize, v * (float)TextureSize)); + // V coordinates are inverted + verticeTextureCoords.push_back(NLMISC::CUV(u * (float)TextureSize, (1.f - v) * (float)TextureSize)); } else { @@ -377,12 +378,20 @@ int main(int argc, char **argv) NLMISC::CUV uv1 = verticeTextureCoords[face.indices[1]]; NLMISC::CUV uv2 = verticeTextureCoords[face.indices[2]]; - std::vector > pixels; + std::vector > pixels, temp; // draw the triangle with vertices UV coordinates - NLMISC::drawLine(uv0.U, uv0.V, uv1.U, uv1.V, pixels); - NLMISC::drawLine(uv1.U, uv1.V, uv2.U, uv2.V, pixels); - NLMISC::drawLine(uv2.U, uv2.V, uv0.U, uv0.V, pixels); + NLMISC::drawFullLine(uv0.U, uv0.V, uv1.U, uv1.V, pixels); + + // append pixels + NLMISC::drawFullLine(uv1.U, uv1.V, uv2.U, uv2.V, temp); + pixels.reserve(pixels.size() + temp.size()); + pixels.insert(pixels.end(), temp.begin(), temp.end()); + + // append pixels + NLMISC::drawFullLine(uv2.U, uv2.V, uv0.U, uv0.V, temp); + pixels.reserve(pixels.size() + temp.size()); + pixels.insert(pixels.end(), temp.begin(), temp.end()); // for each pixels, set them to black for (uint j = 0, jlen = pixels.size(); j < jlen; ++j)