diff --git a/src/gl/data/gl_vertexbuffer.h b/src/gl/data/gl_vertexbuffer.h index 84967a9ee..a9619876d 100644 --- a/src/gl/data/gl_vertexbuffer.h +++ b/src/gl/data/gl_vertexbuffer.h @@ -204,7 +204,7 @@ public: FModelVertexBuffer(); ~FModelVertexBuffer(); - unsigned int SetupFrame(unsigned int frame1, unsigned int frame2, float factor); + unsigned int SetupFrame(unsigned int frame1, unsigned int frame2); }; #define VMO ((FModelVertex*)NULL) diff --git a/src/gl/models/gl_models.cpp b/src/gl/models/gl_models.cpp index ae34e882d..31d05ab41 100644 --- a/src/gl/models/gl_models.cpp +++ b/src/gl/models/gl_models.cpp @@ -138,7 +138,7 @@ FModelVertexBuffer::~FModelVertexBuffer() // //=========================================================================== -unsigned int FModelVertexBuffer::SetupFrame(unsigned int frame1, unsigned int frame2, float factor) +unsigned int FModelVertexBuffer::SetupFrame(unsigned int frame1, unsigned int frame2) { glBindBuffer(GL_ARRAY_BUFFER, vbo_id); glVertexAttribPointer(VATTR_VERTEX, 3, GL_FLOAT, false, sizeof(FModelVertex), &VMO[frame1].x); diff --git a/src/gl/models/gl_models_md2.cpp b/src/gl/models/gl_models_md2.cpp index 3d0fad8aa..33548f2e6 100644 --- a/src/gl/models/gl_models_md2.cpp +++ b/src/gl/models/gl_models_md2.cpp @@ -304,10 +304,12 @@ void FDMDModel::RenderFrame(FTexture * skin, int frameno, int frameno2, double i FMaterial * tex = FMaterial::ValidateTexture(skin, false); gl_RenderState.SetMaterial(tex, CLAMP_NONE, translation, -1, false); + gl_RenderState.SetInterpolationFactor((float)inter); gl_RenderState.Apply(); - GLRenderer->mModelVBO->SetupFrame(frames[frameno].vindex, frames[frameno2].vindex, inter); + GLRenderer->mModelVBO->SetupFrame(frames[frameno].vindex, frames[frameno2].vindex); glDrawArrays(GL_TRIANGLES, 0, lodInfo[0].numTriangles * 3); + gl_RenderState.SetInterpolationFactor(0.f); } diff --git a/src/gl/models/gl_models_md3.cpp b/src/gl/models/gl_models_md3.cpp index 4b1788306..1dbda6acd 100644 --- a/src/gl/models/gl_models_md3.cpp +++ b/src/gl/models/gl_models_md3.cpp @@ -251,6 +251,7 @@ void FMD3Model::RenderFrame(FTexture * skin, int frameno, int frameno2, double i { if (frameno>=numFrames || frameno2>=numFrames) return; + gl_RenderState.SetInterpolationFactor((float)inter); for(int i=0;imModelVBO->SetupFrame(surf->vindex + frameno * surf->numVertices, surf->vindex + frameno2 * surf->numVertices, inter); + GLRenderer->mModelVBO->SetupFrame(surf->vindex + frameno * surf->numVertices, surf->vindex + frameno2 * surf->numVertices); glDrawElements(GL_TRIANGLES, surf->numTriangles * 3, GL_UNSIGNED_INT, (void*)(intptr_t)(surf->iindex * sizeof(unsigned int))); } + gl_RenderState.SetInterpolationFactor(0.f); } FMD3Model::~FMD3Model() diff --git a/src/gl/models/gl_voxels.cpp b/src/gl/models/gl_voxels.cpp index b1bb4de5a..7fb18766f 100644 --- a/src/gl/models/gl_voxels.cpp +++ b/src/gl/models/gl_voxels.cpp @@ -420,7 +420,7 @@ void FVoxelModel::RenderFrame(FTexture * skin, int frame, int frame2, double int gl_RenderState.SetMaterial(tex, CLAMP_NOFILTER, translation, -1, false); gl_RenderState.Apply(); - GLRenderer->mModelVBO->SetupFrame(vindex, vindex, 0.f); + GLRenderer->mModelVBO->SetupFrame(vindex, vindex); glDrawElements(GL_TRIANGLES, mIndices.Size(), GL_UNSIGNED_INT, (void*)(intptr_t)(iindex * sizeof(unsigned int))); }