因此,我開始在特定的(3.2)中使用新的OpenGL版本開發遊戲。 我使用着色器和VBOs。在較新版本的OpenGL上旋轉(如何在不使用glRotatef的情況下旋轉)
如何實現旋轉?(我以前只是使用glRotatef)我寧願通過程序而不是着色器,因爲我根本不理解着色器編碼..我甚至不知道從哪裏開始輪換,因爲我不知道它是如何開始的將工作..
注:我需要一個2D遊戲..我想旋轉自己周圍的三角形(即補四)一個簡單的方法..
走進詳細例子..
編輯:我的頂點着色器
#version 150 core
in vec4 in_Position;
in vec4 in_Color;
in vec2 in_TextureCoord;
in float in_angle;
out vec4 pass_Color;
out vec2 pass_TextureCoord;
void main(void) {
mat4x4 roll=mat4x4(1.0);
roll[0][0]=cos(in_angle);
roll[0][1]=sin(in_angle);
roll[1][0]=-(sin(in_angle));
roll[1][1]=cos(in_angle);
gl_Position = in_Position*roll;
pass_Color = in_Color;
pass_TextureCoord = in_TextureCoord;
}
雖然你可以通過CPU做旋轉,但你真的應該學會使用着色器來做到這一點。着色器代碼並不難,最重要的可能只是您使用「統一」來設置將在逐漸變化的着色器中使用的值(例如旋轉)。 – thecoshman