Есть ли в любом случае, я могу повернуть изображение 2D-текстуры, вращающееся до точки? Я пробовал функцию glRotate, она вращает и перемещает объект. Я ищу функцию/способ для поворота моих текстур в точку, не перемещая их.Текстура 2D Вращение до точки
Вот мой Жеребьевка код:
static void Draw2DTexture(int textureid, float x1, float y1, float width, float height, Color color)
{
float x2 = x1 + width;
float y2 = y1 + height;
RectangleF rect;
rect = new RectangleF(0, 0, 1, 1);
GL.PushAttrib(AttribMask.ColorBufferBit);
GL.Color3(color);
GL.BindTexture(TextureTarget.Texture2D, textureid);
GL.Enable(EnableCap.Texture2D);
GL.Disable(EnableCap.DepthTest);
GL.Rotate(35, 0f, 0f, 1f);
GL.Begin(BeginMode.Quads);
GL.TexCoord2(rect.Right, rect.Bottom); GL.Vertex2(x2, y2);
GL.TexCoord2(rect.Right, rect.Top); GL.Vertex2(x2, y1);
GL.TexCoord2(rect.Left, rect.Top); GL.Vertex2(x1, y1);
GL.TexCoord2(rect.Left, rect.Bottom); GL.Vertex2(x1, y2);
GL.End();
GL.Enable(EnableCap.DepthTest);
GL.PopAttrib();
}
Draw2DTexture(5, 300f, 300f, 256f, 512f, Color.White);
Повернуть в точку? Вы знаете, что конвейер с фиксированной функцией имеет матрицу для каждой единицы текстуры? Обычно это единичная матрица, поэтому при выборке координат текстуры они вообще не преобразуются, но если вы установите матричный режим на «GL_TEXTURE» и выполните вращение, вы можете применить поворот только к координатам текстуры. –