Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaia Clary <gaia.clary@machinimatrix.org>2013-03-04 04:17:20 +0400
committerGaia Clary <gaia.clary@machinimatrix.org>2013-03-04 04:17:20 +0400
commitf19206a361dbb75b737c253270196c34c3808799 (patch)
tree8645d9e9f0f253529f31da41770933ea89cf18ed /source/blender/collada/GeometryExporter.cpp
parentf1f702a5ecd97ebe3490f567a5d39ddc3c83a0fc (diff)
Collada: Fix export of Normals where shading is set to smooth
Diffstat (limited to 'source/blender/collada/GeometryExporter.cpp')
-rw-r--r--source/blender/collada/GeometryExporter.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/collada/GeometryExporter.cpp b/source/blender/collada/GeometryExporter.cpp
index 751628acf53..7cdda87766e 100644
--- a/source/blender/collada/GeometryExporter.cpp
+++ b/source/blender/collada/GeometryExporter.cpp
@@ -563,19 +563,19 @@ void GeometryExporter::createNormalsSource(std::string geom_id, Mesh *me, std::v
void GeometryExporter::create_normals(std::vector<Normal> &normals, std::vector<BCPolygonNormalsIndices> &polygons_normals, Mesh *me)
{
- MVert *vert = me->mvert;
std::map<unsigned int, unsigned int> shared_normal_indices;
+ int last_normal_index = -1;
+ MVert *verts = me->mvert;
+ MLoop *mloops = me->mloop;
for (int poly_index = 0; poly_index < me->totpoly; poly_index++) {
MPoly *mpoly = &me->mpoly[poly_index];
- MLoop *mloops = me->mloop;
- unsigned int last_normal_index = -1;
if (!(mpoly->flag & ME_SMOOTH)) {
- // For flat faces calculate use face normal as vertex normal:
+ // For flat faces use face normal as vertex normal:
float vector[3];
- BKE_mesh_calc_poly_normal(mpoly, mloops, vert, vector);
+ BKE_mesh_calc_poly_normal(mpoly, mloops, verts, vector);
Normal n = { vector[0], vector[1], vector[2] };
normals.push_back(n);
@@ -593,8 +593,7 @@ void GeometryExporter::create_normals(std::vector<Normal> &normals, std::vector<
else {
float vector[3];
- normal_short_to_float_v3(vector, vert[vertex_index].no);
- normalize_v3(vector);
+ normal_short_to_float_v3(vector, verts[vertex_index].no);
Normal n = { vector[0], vector[1], vector[2] };
normals.push_back(n);