diff --git a/qglview/glvbo.cpp b/qglview/glvbo.cpp index 4e7ee68..62187aa 100644 --- a/qglview/glvbo.cpp +++ b/qglview/glvbo.cpp @@ -222,6 +222,19 @@ void GLVBO::clear() { } +void GLVBO::translatePoints(const QVector3D & dp) { + if (vertices_.isEmpty()) return; + int vcnt = vertices_.size() / 3; + for (int i = 0; i < vcnt; ++i) { + int vi = i * 3; + vertices_[vi + 0] += dp.x(); + vertices_[vi + 1] += dp.y(); + vertices_[vi + 2] += dp.z(); + } + rebuffer(); +} + + bool GLVBO::saveToFile(const QString & filename) { if (filename.isEmpty()) return false; QFile f(filename); diff --git a/qglview/glvbo.h b/qglview/glvbo.h index 9563938..885ed04 100644 --- a/qglview/glvbo.h +++ b/qglview/glvbo.h @@ -46,6 +46,8 @@ public: QVector & texcoords() {changed = true; return texcoords_;} QVector & colors() {changed = true; return colors_;} + void translatePoints(const QVector3D & dp); + bool saveToFile(const QString & filename); bool loadFromFile(const QString & filename); diff --git a/qglview/shaders/dsl_pass_1.frag b/qglview/shaders/dsl_pass_1.frag index c7a71ea..962e9a9 100644 --- a/qglview/shaders/dsl_pass_1.frag +++ b/qglview/shaders/dsl_pass_1.frag @@ -129,9 +129,9 @@ void main(void) { sh_pow = 1. / max((1. - v1.w), 0.0001); sh_mul = max(1. - v1.w, 0.0001); - //for (int i = 0; i < 8; ++i) - // calcLight(i, n, v, v2); - calcLight(0, n, v, v2); + for (int i = 0; i < 8; ++i) + calcLight(i, n, v, v2); + // calcLight(0, n, v, v2); qgl_FragData[0].rgb = li * dc + si * v2.rgb + v3.rgb + texelFetch(t_pp, tc, 0).rgb; //qgl_FragData[0].rgb = li + vec3(texelFetch(t_pp, tc, 0).xyz);