#version 330 core
out vec4 vertexcolor;
out vec2 texturecoord;
layout(location = 3) in vec3 apos;
layout(location = 4) in vec3 acolor;
layout(location = 5) in vec2 atexturecoord;
uniform mat4 transform;//從cpu獲取乙個四維矩陣
void main()
main.cpp
先導入包
#include #include #include
然後
glm::mat4 trans;//申請乙個單位矩陣,如果是0.99版本以上的,為零矩陣,需要用 glm::mat4 trans=glm::mat4(1.0f)
trans = glm::translate(trans, glm::vec3(0.5f, -0.5f, 0));//位移
trans = glm::rotate(trans, glm::radians(45.0f), glm::vec3(0, 0, 1.0f));//旋轉,第二個引數是旋轉角度,第三個為軸
trans = glm::scale(trans, glm::vec3(0.5f, 0.5f, 0.5f));//縮放
while (!glfwwindowshouldclose(window))
執行結果:
記住:變換的過程,是先縮放ms,在旋轉mr,最後位移mt。
但公式卻是:trans=mtmrms*v;
v是影象位置。因為這個計算是從右向左運算的,而矩陣不滿**換律,因此其他順序會無法得到你想要的效果。
簡單的說就是位移操作最先寫,然後是旋轉,最後是縮放。
OpenGL學習筆記 OpenGL的變換和矩陣
opengl的變換和矩陣 1 指定矩陣型別 opengl中使用glmatrixmode指定當前要設定的矩陣型別,常用的引數是gl projection和gl modelview,還有gl texture。opengl將視點變換 即攝像機變換 和模型變換 即物體變換和世界變換 合二為一了。glmatr...
OpenGL學習筆記 OpenGL的變換和矩陣
opengl的變換和矩陣 1 指定矩陣型別 opengl中使用glmatrixmode指定當前要設定的矩陣型別,常用的引數是gl projection和gl modelview,還有gl texture。opengl將視點變換 即攝像機變換 和模型變換 即物體變換和世界變換 合二為一了。glmatr...
opengl學習筆記(六)
光的強度和離點光源的位置的平方成反比,並且為了使模型更加逼真,加入了常量因子,線性因子,指數因子,使其更加符合真實的效果。與平行光模型不同的是,平行光的入射方向由點光源和表面位置決定,就像計算人的視線和表面一樣。並且考慮衰減和多個點光源的效果。struct attenuation 點光源的三個引數 ...