关于纹理映射的问题!

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:23:51
最近刚接触纹理映射,遇到了问题,请大虾帮忙!

我写了个纹理载入类,代码如下:

#ifndef __CTEXTURE_H__
#define __CTEXTURE_H__

#include "stdafx.h"

class CTexture
{
public:
CTexture();
~CTexture();

public:
void Load(char *filename); //载入纹理

AUX_RGBImageRec *auxIR;
GLuint ID; //纹理ID
};

#endif

函数的实现如下:
CTexture::~CTexture ()
{
if (auxIR)
{
delete auxIR;
auxIR = 0;
}

glDeleteTextures(1 , &ID);
}

CTexture::CTexture ()
{
}

void CTexture::Load (char *filename)
{
memset(&auxIR , 0 , sizeof(void *));
auxIR = auxDIBImageLoad(filename);

glGenTextures(1 , &ID);
glBindTexture(GL_TEXTURE_2D , ID);

glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_WRAP_S , GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_WRAP_S , GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D , GL_TEXTURE_MAG

1,初始化的时候glEnable(GL_TEXTURE_2D);启用纹理

2,glBindTexture(GL_TEXTURE_2D , boxTexture.ID);这个地方应该是绑定纹理的,确定你有CTexture对象并且初始化载入图像

3,你在载入图像的地方插入断点,看看图像是不是载入了。
图像是bmp格式,此图像的宽和高必须是2的n次方;宽度和高度最小必须是64象素;并且出于兼容性的原因,图像的宽度和高度不应超过256象素。如果您的原始素材的宽度和高度不是64,128,256象素的话,使用图像处理软件重新改变图像的大小试一试。