이 예제에서는 누군가가 나를 위해이 문제를 해결할 수 있도록 노력하겠습니다.C# OpenGL 텍스처가 표시되지 않음
텍스처를 표시하는 C# OpenGL 코드의 간단한 작동 예제를 찾을 수 없습니다. 그래서 여기에 하나 만들려고했습니다. 불행히도이 코드는 저에게 적합하지 않습니다. 오류는 발생하지 않지만 텍스처도 표시되지 않습니다.
아마도 내가 잘못 설정했을 수도 있습니다. 누군가이 코드를 붙여넣고 실행되는지 확인할 수 있습니다.
using System;
using System.Drawing;
using Tao.OpenGl;
using Tao.DevIl;
using System.Windows.Forms;
namespace TextureTest
{
public partial class Form1 : Form
{
int imageID = 1;
int texture = 1;
public Form1()
{
InitializeComponent();
OpenGlControl.InitializeContexts();
Il.ilInit();
Il.ilBindImage(imageID);
bool success = Il.ilLoadImage(@"test.bmp");
Il.ilConvertImage(Il.IL_RGBA, Il.IL_UNSIGNED_BYTE);
Gl.glEnable(Gl.GL_TEXTURE_2D);
Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture);
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR);
Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Il.ilGetInteger(Il.IL_IMAGE_BPP),
Il.ilGetInteger(Il.IL_IMAGE_WIDTH), Il.ilGetInteger(Il.IL_IMAGE_HEIGHT), 0,
Il.ilGetInteger(Il.IL_IMAGE_FORMAT), Gl.GL_UNSIGNED_BYTE, Il.ilGetData());
Il.ilDeleteImage(imageID);
Gl.glBegin(Gl.GL_QUADS);
Gl.glTexCoord2f(0.0f, 0.0f); Gl.glVertex2f(-1.0f, -1.0f);
Gl.glTexCoord2f(1.0f, 0.0f); Gl.glVertex2f(1.0f, -1.0f);
Gl.glTexCoord2f(1.0f, 1.0f); Gl.glVertex2f(1.0f, 1.0f);
Gl.glTexCoord2f(0.0f, 1.0f); Gl.glVertex2f(-1.0f, 1.0f);
Gl.glEnd();
Gl.glFlush();
Gl.glDeleteTextures(1, ref texture);
}
}
}