Köşe gölgelendiricisini ve matris dönüşümlerini kullanmak yerine, bir doku gölgelendiricisindeki bir dokuyu döndürmeye çalışıyorum.GLSL ES'deki bir Parça Gölgelendiricisi üzerindeki bir dokuyu döndürme
Döndürme, merkezde pivot vardır.
Algoritma, kare şeklinde bir dörtlükte işlenirken iyi çalışır, ancak dörtgen dikdörtgen bir şekle sahip olduğunda, render sonucu bozulur. Sorununu herkes anlayabilir mi?
teşekkür ederiz
o kendim denemedim, ama benim tahminim doku kullanılarak üretilmiş olmasından ötürü, düzeltmek için bazı faktör olmadan dönmesi üzerine bozulmaya neden olur dikdörtgen bir mekan koordinatlarını olmasıdırvarying vec2 v_texcoord;
uniform sampler2D u_texture;
uniform float u_angle;
void main()
{
vec2 coord = v_texcoord;
float sin_factor = sin(u_angle);
float cos_factor = cos(u_angle);
coord = (coord - 0.5) * mat2(cos_factor, sin_factor, -sin_factor, cos_factor);
coord += 0.5;
gl_FragColor = texture2D(u_texture, coord);
}
! Çözüldü mü? – Samsy
Bunu gölgelendirici dışında döndürmek için bir matris oluşturarak yaptım, http://stackoverflow.com/questions/31417365/how-to-rotate-a-texture-in-a-shader-android, ayrıca bunu da bulabilirsiniz matris bileşenlerini bulmak için yararlı, http://www.songho.ca/opengl/gl_projectionmatrix.html – HPP