From 63d6036e3af1552ce312edd209bdd3a81a71c4ca Mon Sep 17 00:00:00 2001 From: castano Date: Thu, 3 Apr 2014 22:10:12 +0000 Subject: [PATCH] Fix issue 206. --- src/nvimage/NormalMap.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/nvimage/NormalMap.cpp b/src/nvimage/NormalMap.cpp index 2db99a7..559e4f8 100644 --- a/src/nvimage/NormalMap.cpp +++ b/src/nvimage/NormalMap.cpp @@ -31,6 +31,8 @@ #include "nvcore/Ptr.h" +#include // memcpy + using namespace nv; @@ -66,9 +68,9 @@ static FloatImage * createNormalMap(const Image * img, FloatImage::WrapMode wm, Vector3 n = normalize(Vector3(du, dv, heightScale)); - fimage->pixel(x, y, 0, 0) = 0.5f * n.x + 0.5f; - fimage->pixel(x, y, 0, 1) = 0.5f * n.y + 0.5f; - fimage->pixel(x, y, 0, 2) = 0.5f * n.z + 0.5f; + fimage->pixel(0, x, y, 0) = 0.5f * n.x + 0.5f; + fimage->pixel(1, x, y, 0) = 0.5f * n.y + 0.5f; + fimage->pixel(2, x, y, 0) = 0.5f * n.z + 0.5f; } } @@ -101,20 +103,22 @@ static FloatImage * createNormalMap(const FloatImage * img, FloatImage::WrapMode Vector3 n = normalize(Vector3(du, dv, heightScale)); - img_out->pixel(x, y, 0, 0) = n.x; - img_out->pixel(x, y, 0, 1) = n.y; - img_out->pixel(x, y, 0, 2) = n.z; - } + img_out->pixel(0, x, y, 0) = n.x; + img_out->pixel(1, x, y, 0) = n.y; + img_out->pixel(2, x, y, 0) = n.z; + } } // Copy alpha channel. - for (uint y = 0; y < h; y++) + /*for (uint y = 0; y < h; y++) { for (uint x = 0; x < w; x++) { - img_out->pixel(x, y, 0, 3) = img->pixel(x, y, 0, 3); + + img_out->pixel(3, x, y, 0) = img->pixel(3, x, y, 0); } - } + }*/ + memcpy(img_out->channel(3), img->channel(3), w * h * sizeof(float)); return img_out.release(); }