#opentk
#opentk
Вопрос:
Я пытался на прошлой неделе разобраться в этом, но я не могу понять это,
layout (location = 1) in vec2 aTexCoord;
out vec2 texCoord;
uniform mat4 ortho;
//as i write this i just finished the fragment shader and fml
void main()
{
texCoord = aTexCoord;
gl_Position = ortho * vec4(aPosition, 1.0);
}
это мой текущий вершинный шейдер OpenTK / OpenGL, и независимо от того, что я делаю, всякий раз, когда присутствует ‘ortho’, ничего не отображается.
protected override void OnRenderFrame(FrameEventArgs e)
{
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.BindVertexArray(VertexArrayObject);
Palette.Use();
texture1.Use(TextureUnit.Texture1);
//shaders.SetMatrix4("view", mat_view);
mat_ortho = Matrix4.CreateOrthographicOffCenter(0.0f, Width, Height, 0.0f, -1f, 1.0f);
shaders.SetMatrix4("ortho", mat_ortho);
shaders.Use();
GL.DrawElements(PrimitiveType.Triangles, indexes.Length, DrawElementsType.UnsignedInt, 0);
Console.WriteLine(GL.GetError());
Context.SwapBuffers();
base.OnRenderFrame(e);
}
Я пробовал перемещать vvv везде в функции, и ничего не помогает
mat_ortho = Matrix4.CreateOrthographicOffCenter(0.0f, Width, Height, 0.0f, -1f, 1.0f);
shaders.SetMatrix4("ortho", mat_ortho);
shaders.Use();
Я понятия не имею, что я делаю не так, если кто-нибудь может мне помочь, я был бы очень признателен!
Комментарии:
1. Каковы координаты вершин (
aPosition
)? Находятся ли они между ближней и дальней плоскостями ортографической проекции?2. Как вы загружаете текстуру? Что делает фрагментный шейдер?
3. Вы пробовали использовать шейдер перед установкой его формы? Это единственная проблема, которую я вижу из фрагментов кода. Хотя проблема может заключаться в чем-то другом (вы проверяете наличие ошибок или ошибок компилятора шейдеров?)