使用紋理繪製正方形我正在嘗試使用Tao.Framework
生成OpenGL
的簡單測試。我需要畫一個帶紋理的正方形。到目前爲止,我來到這個:簡單的示例如何使用Tao.Framework
private void simpleOpenGlControl1_Paint(object sender, PaintEventArgs e)
{
simpleOpenGlControl1.InitializeContexts();
Gl.glClearColor(0f, 0f, 0f, 0f);
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glOrtho(-1, 2, -1, 2, 1, -1);
// Open image
var fileName = @"C:\mypath\image.bmp";
var bmp = new Bitmap(fileName);
var bmpData = bmp.LockBits(
new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb);
// Texture
Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, (int)Gl.GL_RGB8,
bmp.Width, bmp.Height, 0, Gl.GL_BGR_EXT,
Gl.GL_UNSIGNED_BYTE, bmpData.Scan0);
Gl.glBindTexture(Gl.GL_TEXTURE_2D, 0);
// Draw a square.
Gl.glBegin(Gl.GL_POLYGON);
Gl.glVertex2f(0, 0);
Gl.glVertex2f(0, 1);
Gl.glVertex2f(1, 1);
Gl.glVertex2f(1, 0);
Gl.glEnd();
}
正方形呈現在預期的形狀,但沒有紋理。我是OpenGL
,Tao.Framework
甚至更多。我該如何解決它?或者如何添加紋理的正確方法?
EDITED
隨着@ J-p I將是幫助試試這個:
//...
Gl.glEnable(Gl.GL_TEXTURE_2D);
// Draw a square.
Gl.glBegin(Gl.GL_POLYGON);
Gl.glTexCoord2f(0, 0); Gl.glVertex2f(0, 0);
Gl.glTexCoord2f(0, 1); Gl.glVertex2f(0, 1);
Gl.glTexCoord2f(1, 1); Gl.glVertex2f(1, 1);
Gl.glTexCoord2f(1, 0); Gl.glVertex2f(1, 0);
Gl.glEnd();
但方繼續使用,無需質感。
有很多工作要做:-) –