From ae00a2b3fd0680f6950a65b8fca38b48972f68fb Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Mon, 12 May 2014 13:03:02 +0900 Subject: [PATCH] Freestyle: Removed redundant flipping of UV coordinates. Patch contribution by Paolo Acampora. Thank you! --- .../BlenderStrokeRenderer.cpp | 4 ---- .../freestyle/intern/stroke/StrokeRep.cpp | 20 +++++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp index 6fff2feec95..f135f2ebee6 100644 --- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp +++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp @@ -536,10 +536,6 @@ void BlenderStrokeRenderer::RenderStrokeRepBasic(StrokeRep *iStrokeRep) const loopsuv[L][2].uv[0] = svRep[0]->texCoord(L).x(); loopsuv[L][2].uv[1] = svRep[0]->texCoord(L).y(); } - /* freestyle tex-origin is upside-down */ - for (int i = 0; i < 3; i++) { - loopsuv[L][i].uv[1] *= -1; - } loopsuv[L] += 3; } } diff --git a/source/blender/freestyle/intern/stroke/StrokeRep.cpp b/source/blender/freestyle/intern/stroke/StrokeRep.cpp index 8e84228f37f..86164f0c9b0 100644 --- a/source/blender/freestyle/intern/stroke/StrokeRep.cpp +++ b/source/blender/freestyle/intern/stroke/StrokeRep.cpp @@ -523,7 +523,7 @@ void Strip::computeTexCoord (const vector& iStrokeVertices, floa sv = (*v); _vertices[i]->setTexCoord(Vec2r((real)(sv->curvilinearAbscissa() / (_averageThickness * texStep)), 0)); i++; - _vertices[i]->setTexCoord(Vec2r((real)(sv->curvilinearAbscissa() / (_averageThickness * texStep)), 1)); + _vertices[i]->setTexCoord(Vec2r((real)(sv->curvilinearAbscissa() / (_averageThickness * texStep)), -1)); i++; } } @@ -561,12 +561,12 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice if (u > 0.25) break; - svRep->setTexCoord(Vec2r((real)u, 0.5), true); + svRep->setTexCoord(Vec2r((real)u, -0.5), true); i++; ++currentSV; svRep = *currentSV; - svRep->setTexCoord(Vec2r((real)u, 1), true); + svRep->setTexCoord(Vec2r((real)u, -1), true); i++; ++currentSV; uPrev = u; @@ -582,7 +582,7 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice tvRep[k] = new StrokeVertexRep((1 - t) * _vertices[i - 2]->point2d() + t * _vertices[i]->point2d()); tvRep[k]->setTexCoord((1 - t) * _vertices[i - 2]->texCoord() + t * _vertices[i]->texCoord()); // v coord is 0.5 for tvRep[0], 1.0 for tvRep[1] - tvRep[k]->setTexCoord(Vec2r(0.25, 0.5 * (k + 1)), true); + tvRep[k]->setTexCoord(Vec2r(0.25, -0.5 * (k + 1)), true); tvRep[k]->setColor((1 - t) * _vertices[i - 2]->color() + t * Vec3r(sv->attribute().getColorRGB())); tvRep[k]->setAlpha((1 - t) * _vertices[i - 2]->alpha() + t * sv->attribute().getAlpha()); i++; @@ -596,7 +596,7 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice for (int k = 0; k < 2; k++) { tvRep[k] = new StrokeVertexRep(*(_vertices[i - 2])); // v coord is 0.0 for tvRep[0], 0.5 for tvRep[1] - tvRep[k]->setTexCoord(Vec2r(0.0, 0.5 * k), true); // FIXED u coord + tvRep[k]->setTexCoord(Vec2r(0.0, -0.5 * k), true); i++; } for (int k = 0; k < 2; k++) { @@ -620,7 +620,7 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice ++currentSV; svRep = *currentSV; - svRep->setTexCoord(Vec2r((real)u, 0.5), true); + svRep->setTexCoord(Vec2r((real)u, -0.5), true); i++; ++currentSV; @@ -638,7 +638,7 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice tvRep[k] = new StrokeVertexRep((1 - t) * _vertices[i - 2]->point2d() + t * _vertices[i]->point2d()); tvRep[k]->setTexCoord((1 - t) * _vertices[i - 2]->texCoord() + t * _vertices[i]->texCoord()); // v coord is 0.0 for tvRep[0], 0.5 for tvRep[1] - tvRep[k]->setTexCoord(Vec2r((real)tiles, 0.5 * k), true); // FIXED u coord + tvRep[k]->setTexCoord(Vec2r((real)tiles, -0.5 * k), true); tvRep[k]->setColor((1 - t) * _vertices[i - 2]->color() + t * Vec3r(sv->attribute().getColorRGB())); tvRep[k]->setAlpha((1 - t) * _vertices[i - 2]->alpha() + t * sv->attribute().getAlpha()); i++; @@ -652,7 +652,7 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice for (int k = 0; k < 2; k++) { tvRep[k] = new StrokeVertexRep(*(_vertices[i - 2])); // v coord is 0.5 for tvRep[0], 1.0 for tvRep[1] - tvRep[k]->setTexCoord(Vec2r(0.75, 0.5 * (k + 1)), true); + tvRep[k]->setTexCoord(Vec2r(0.75, -0.5 * (k + 1)), true); i++; } for (int k = 0; k < 2; k++) { @@ -667,12 +667,12 @@ void Strip::computeTexCoordWithTips (const vector& iStrokeVertice svRep = *currentSV; u = 0.75 + sv->curvilinearAbscissa() / spacedThickness * fact - float(tiles) - 0.25; - svRep->setTexCoord(Vec2r((real)u, 0.5), true); + svRep->setTexCoord(Vec2r((real)u, -0.5), true); i++; ++currentSV; svRep = *currentSV; - svRep->setTexCoord(Vec2r((real)u, 1), true); + svRep->setTexCoord(Vec2r((real)u, -1), true); i++; ++currentSV; }