From 54331cfa75c4a8e6b0289285554094f82e78220a Mon Sep 17 00:00:00 2001 From: blobt Date: Wed, 22 Apr 2020 17:21:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=89=E7=85=A7=E4=BF=AE=E5=A4=8D=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/shader/v14/.suo | Bin 5120 -> 20992 bytes Res/model.fs | 17 ++++++++++++++++- Res/model.vs | 6 +++++- model.cpp | 5 +++++ shader.VC.db | Bin 37879808 -> 37879808 bytes shader.cpp | 21 +++++++++++++++++++++ shader.h | 10 ++++++++++ shader.vcxproj | 2 ++ shader.vcxproj.filters | 6 ++++++ 9 files changed, 65 insertions(+), 2 deletions(-) diff --git a/.vs/shader/v14/.suo b/.vs/shader/v14/.suo index 90a26418b17c5cfc2b3a6d7e702db4f94839912b..d2da9452153ea9b33617afadca1ccce0646fce33 100644 GIT binary patch literal 20992 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 P^{2nAR(4WN_QC%FWYS)K delta 391 zcmZoz!q}iO!9anD0SW{d7+8QzMj-z8|NnoGC^Ham7UbH%IEl%Jk!kWmEd|~hoeN9E zuQ9R%WgHkMS20yhGGm$igUN>nqz|MXsP+G3K^=|B70eC1u|NS302%mqVxaIOE{@G2 zTo0h;DKg3P2^g`?TMIOh1E}f%$Ux7@heb?rn8+T$0dgYPia=(SNro({FdIN(AixTg z{|lr+Hi9r1Z06;9%s5FxVzU6(3&u%2GLvOQ)F&TiG6cGvF&gMt@5wH{dnPOBxBzLJ zNh$)H1q4KyCeQQYo4i@rcT#|*fVljDZ~d-e-?>vO?;Gl_`!@NkoAG1=CYD9+jFTIL j8}KQaBy2A5+eV`yNw5B&>L>ZnNAAo_hiYe=Init("Res/model.vs", "Res/model.fs"); + mShader->SetVec4("U_LightPos", 0.0f, 1.0f, 1.0f, 0.0f);//设置光源位置 + mShader->SetVec4("U_LightAmbient", 1.0f, 1.0f, 1.0f, 1.0f);//设置环境光分量 + mShader->SetVec4("U_LightDiffuse", 1.0f, 1.0f, 1.0f, 1.0f);//设置慢反射光分量 + mShader->SetVec4("U_AmbientMaterial", 0.1f, 0.1f, 0.1f, 1.0f);//设置环境光材质分量 + mShader->SetVec4("U_DiffuseMaterial", 0.6f, 0.6f, 0.6f, 1.0f);//设置漫反射材质分量 } void Model::Draw(glm::mat4 & viewMatrix, glm::mat4 projectionMatrix) { diff --git a/shader.VC.db b/shader.VC.db index 9f9e9a6ab698dcf17c25c1eb8a4dfa58d91ea51c..9c2b5cacd26ecbf6e9c1a5ccb3acd03fb6986197 100644 GIT binary patch delta 9725 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 e-JzEnlm=XOicpc1g#VEG`il2lQ7@q;jQx`O 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 diff --git a/shader.cpp b/shader.cpp index 7db3232..3615b43 100644 --- a/shader.cpp +++ b/shader.cpp @@ -70,4 +70,25 @@ void Shader::SetTexture(const char * name, const char*imagePath) { glDeleteTextures(1, &iter->second->mTexture); iter->second->mTexture = CreateTexture2DFromBMP(imagePath); } +} +void Shader::SetVec4(const char * name, float x, float y, float z, float w) { + auto iter = mUniformVec4s.find(name); + if (iter == mUniformVec4s.end()) { + GLint location = glGetUniformLocation(mProgram, name); + if (location != -1) { + UniformVector4f*v = new UniformVector4f; + v->v[0] = x; + v->v[1] = y; + v->v[2] = z; + v->v[3] = w; + v->mLocation = location; + mUniformVec4s.insert(std::pair(name, v)); + } + } + else { + iter->second->v[0] = x; + iter->second->v[1] = y; + iter->second->v[2] = z; + iter->second->v[3] = w; + } } \ No newline at end of file diff --git a/shader.h b/shader.h index 1775678..8358e5d 100644 --- a/shader.h +++ b/shader.h @@ -8,13 +8,23 @@ struct UniformTexture { mTexture = 0; } }; +struct UniformVector4f { + GLint mLocation; + float v[4]; + UniformVector4f() { + mLocation = -1; + memset(v, 0, sizeof(float) * 4); + } +}; class Shader { public: GLuint mProgram; std::map mUniformTextures; + std::map mUniformVec4s; GLint mModelMatrixLocation, mViewMatrixLocation, mProjectionMatrixLocation; GLint mPositionLocation, mColorLocation, mTexcoordLocation, mNormalLocation; void Init(const char*vs, const char*fs); void Bind(float *M, float *V, float*P); void SetTexture(const char * name, const char*imagePath); + void SetVec4(const char * name, float x, float y, float z, float w); }; \ No newline at end of file diff --git a/shader.vcxproj b/shader.vcxproj index efd4f70..edf2ade 100644 --- a/shader.vcxproj +++ b/shader.vcxproj @@ -163,6 +163,8 @@ + + diff --git a/shader.vcxproj.filters b/shader.vcxproj.filters index 55722d1..f8a7d60 100644 --- a/shader.vcxproj.filters +++ b/shader.vcxproj.filters @@ -73,5 +73,11 @@ 璧勬簮鏂囦欢 + + 璧勬簮鏂囦欢 + + + 璧勬簮鏂囦欢 + \ No newline at end of file