我跟隨this tutorial來學習更多關於OpenGL和特別是點精靈的東西。但我被困在頁面末尾的一個練習中:OpenGL點精靈在片段着色器中的旋轉
嘗試通過更改片段着色器來旋轉45度角點。
本章沒有提及這類事情,也沒有提到過這些。而且我沒有找到任何有關如何去做的文檔。這是我的頂點和片段着色器:
的Vertex Shader
#version 140
attribute vec2 coord2d;
varying vec4 f_color;
uniform float offset_x;
uniform float scale_x;
uniform float point_size;
void main(void) {
gl_Position = vec4((coord2d.x + offset_x) * scale_x, coord2d.y, 0.0, 1.0);
f_color = vec4(coord2d.xy/2.0 + 0.5, 1.0, 1.0);
gl_PointSize = point_size;
}
片段着色器
#version 140
varying vec4 f_color;
uniform sampler2D texture;
void main(void) {
gl_FragColor = texture2D(texture, gl_PointCoord) * f_color;
}
我想到在FS採用2×2矩陣旋轉gl_PointCoord
,但我不知道如何填充矩陣來完成它。我是否應該將其作爲制服直接傳遞給FS?
謝謝你的例子,它的工作。 – 2012-01-30 16:35:35