OpenGL學習筆記(六)變換的使用

2021-09-26 11:11:16 字數 1064 閱讀 7880

#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 點光源的三個引數 ...