버텍스 쉐이더와 매트릭스 변환 대신 프래그먼트 셰이더에서 텍스처를 회전하려고합니다.GLSL ES의 조각 쉐이더에서 텍스처 회전하기
회전에는 중심점이 있습니다.
사각형 모양의 사각형에서 렌더링 할 때 알고리즘이 잘 작동하지만 쿼드가 사각형 모양 인 경우 렌더링 결과가 엉망이됩니다. 누구든지 문제를 발견 할 수 있습니까?
감사합니다
나 자신을 그것을 밖으로 시도하지 않은,하지만 내 생각 엔 당신이 텍스처를 사용하고 있기 때문에하는 것은, 그것을 해결하기 위해 몇 가지 요소없이 회전에 따라 왜곡의 원인이됩니다 직사각형 공간 좌표 점이다varying 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);
}
! 해결 되었습니까? – Samsy
셰이더 밖에서 회전하는 행렬을 구축하여이 작업을 수행했습니다. http://stackoverflow.com/questions/31417365/how-to-rotate-a-texture-in-a-shader-android 매트릭스 구성 요소를 파악하는 데 도움이되는 http://www.songho.ca/opengl/gl_projectionmatrix.html – HPP