Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
OpenGL текстуры. Объясните
Давно меня тут не было ... но все же вернулся, ибо есть проблема...
Точнее, проблема была. Решил. Спасибо NeHe. Но вот я не могу понять...
Смотрите мой код:
Global tex:TPixmap = LoadPixmap ("2.png")
Global Texture
glGenTextures(1, Int Ptr(Texture)) ;
glBindTexture(GL_TEXTURE_2D, Texture) ;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR) ;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR) ;
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, PixmapWidth(tex) , PixmapHeight(tex) , 0, GL_RGB, GL_UNSIGNED_BYTE, tex) ;
|
При юзании этого кода у нас текстура накладывается.... немного странно :
И вот код от NeHe :
glGenTextures(1, Int Ptr(Texture)) ;
glBindTexture(GL_TEXTURE_2D, Texture) ;
Global PointeurImg:Byte Ptr
Global TexWidth
global TexHeight
TexWidth = PixmapWidth(tex)
TexHeight = PixmapHeight(tex)
Local Checkimage:Byte[TexWidth, TexHeight, 4]
PointeurImg = PixmapPixelPtr(tex, 0, 0)
pp=0
For y=TexHeight-1 To 0 Step -1
For x=0 To TexWidth-1
Checkimage[y, x, 0] = PointeurImg[pp + 0]
Checkimage[y, x, 1] = PointeurImg[pp + 1]
Checkimage[y, x, 2] = PointeurImg[pp + 2]
Checkimage[y, x, 3] = 100
pp = pp + 3
Next
Next
tex = Null
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TexWidth, TexHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, Checkimage)
|
Почему мой код дает ТАКОЙ эффект, а код от NeHe работает нормально?
Может кто-нибудь объяснить доходчиво, что делает его код, и почему он робит, а мой нет ?
Не пойму...
|