1
最近OpenTKをダウンロードしました。私は基本的なゲームクラスとクワッドを作りました。私は自分のクワッドでテクスチャをレンダリングしようとしましたが、動作しません。ここに私のコードです。これがテクスチャの読み込みです。 GetWidth()とGetHeight()は、単にBitmap.WidthとBitmap.Heightを返します。C#OpenTK - Textured Quad
Texture Texture = new Texture();
Texture.Bitmap = new Bitmap (Path);
Texture.ID = GL.GenTexture();
GL.BindTexture (TextureTarget.Texture2D, Texture.ID);
BitmapData data = Texture.Bitmap.LockBits (new Rectangle (0, 0, Texture.GetWidth(), Texture.GetHeight()), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
GL.TexImage2D (TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, Texture.GetWidth(), Texture.GetHeight(), 0, OpenTK.Graphics.OpenGL.PixelFormat.Rgba, PixelType.Bitmap, data.Scan0);
Texture.Bitmap.UnlockBits (data);
GL.TexParameter (TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.Linear);
GL.TexParameter (TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)All.Linear);
return Texture;
これはレンダリング方法です。
GL.Enable (EnableCap.Texture2D);
GL.BindTexture (TextureTarget.Texture2D, ID);
GL.Begin (PrimitiveType.Quads);
GL.TexCoord2 (0, 1); GL.Vertex2 (0, 32);
GL.TexCoord2 (1, 1); GL.Vertex2 (32, 32);
GL.TexCoord2 (1, 0); GL.Vertex2 (32, 0);
GL.TexCoord2 (0, 0); GL.Vertex2 (0, 0);
GL.End();
GL.Disable (EnableCap.Texture2D);
これはクワッドだけをレンダリングし、それ以外のものはレンダリングしません。誰か助けてくれますか?
ありがとうございました。 –