Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.83.150] |
|
Сообщ.
#1
,
|
|
|
Для загрузки использую такой код:
private void LoadGLTexturePartial(Bitmap textureImage, int elementIndex, bool flip) { if (flip) { textureImage.RotateFlip(RotateFlipType.Rotate180FlipX); } Rectangle rectangle = new Rectangle(0, 0, textureImage.Width, textureImage.Height); BitmapData bitmapData = textureImage.LockBits(rectangle, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb); GL.glBindTexture(GL.GL_TEXTURE_2D, this.texture[elementIndex]); GL.glTexImage2D(GL.GL_TEXTURE_2D, 0, (int)GL.GL_RGB8, textureImage.Width, textureImage.Height, 0, GL.GL_BGR_EXT, GL.GL_UNSIGNED_byte, bitmapData.Scan0); GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, (int)GL.GL_LINEAR); GL.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, (int)GL.GL_LINEAR); if (bitmapData != null) { textureImage.UnlockBits(bitmapData); } } Вывожу так: LoadTexture(new Bitmap("1.bmp"), 0, true); quadr = Glu.gluNewQuadric(); Glu.gluQuadricTexture(quadr, Gl.GL_TRUE); Gl.glEnable(Gl.GL_TEXTURE_2D); Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture[0]); Glu.gluSphere(quadr, 0.4, 50, 50); Gl.glDisable(Gl.GL_TEXTURE_2D); Текстура 256х256 (Икс на синем фоне) Почему отображается вот с такими проблемами? При повороте сферы glRotate текстура отображается нормально, как на скрине или вообще пропадает. |
Сообщ.
#2
,
|
|
|
Подобные артефакты могут возникать при включенном depth test, если забываешь очищать depth buffer. Проверь, очищаешь ли ты его.
|
Сообщ.
#3
,
|
|
|
Добавил
Gl.glEnable(Gl.GL_DEPTH_TEST); и всё стало нормально. Просто я ещё новичок в этом деле Ощищать-то - очищал, а что включить надо его - незнал. Спасибо |