hi people i am new to opengl programming.
I have read up books on opengl and texture mapping on nehe…
I tried some of the tutorials but none work.
I had been trying out the enviroment mapping with these codes.
RenderGL()
void __fastcall TForm1::RenderGLScene()
{
//Place your OpenGL drawing code here
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
//Drawing of Background
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBindTexture(GL_TEXTURE_2D, texture);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.5f,-2.5f,-3.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f( 3.5f,-2.5f,-3.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f( 3.5f, 2.5f,-3.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.5f, 2.5f,-3.0f);
glEnd();glTexGenf(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glTexGenf(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glBindTexture(GL_TEXTURE_2D, texture);
==============================
Initialise()
void __fastcall TForm1::SetupRC()
{
glEnable (GL_DEPTH_TEST);
glEnable (GL_LIGHTING);
glLightModelfv (GL_LIGHT_MODEL_AMBIENT, ambient_light);glLightfv (GL_LIGHT0, GL_DIFFUSE, source_light); glLightfv (GL_LIGHT0, GL_POSITION, light_pos); glEnable (GL_LIGHT0); glEnable (GL_COLOR_MATERIAL); glColorMaterial (GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glEnable (GL_CULL_FACE); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); glFrontFace(GL_CCW); glEnable(GL_TEXTURE_2D); bitmapData = LoadBitmapFile("texture\\scenary.bmp", &bitmapInfoHeader); glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glEnable(GL_TEXTURE_2D); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, bitmapInfoHeader.biWidth, bitmapInfoHeader.biHeight, GL_RGB, GL_UNSIGNED_BYTE, bitmapData); //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, bitmapInfoHeader.biWidth, bitmapInfoHeader.biHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, bitmapData); glFlush();
}
==============================
LoadBitmapFile()
unsigned char* LoadBitmapFile(char *filename, BITMAPINFOHEADER *bitmapInfoHeader)
{
FILE *filePtr;
BITMAPFILEHEADER bitmapFileHeader;
unsigned char *bitmapImage;
int imageIdx = 0;
unsigned char tempRGB;filePtr = fopen(filename, "rb"); if(filePtr == NULL) return NULL; fread(&bitmapFileHeader, sizeof(BITMAPFILEHEADER), 1, filePtr); fseek(filePtr, bitmapFileHeader.bfOffBits, SEEK_SET); bitmapImage = (unsigned char*)malloc(bitmapInfoHeader->biSizeImage); if(!bitmapImage) { free(bitmapImage); fclose(filePtr); return NULL; } fread(bitmapImage, 1, bitmapInfoHeader->biSizeImage, filePtr); if(bitmapImage == NULL) { fclose(filePtr); return NULL; } for(imageIdx = 0; imageIdx < bitmapInfoHeader->biSizeImage; imageIdx+=3) { tempRGB = bitmapImage[imageIdx]; bitmapImage[imageIdx] = bitmapImage[imageIdx + 2]; bitmapImage[imageIdx + 2] = tempRGB; } fclose(filePtr); return bitmapImage;
}
I am using borland C++ builder 3 to do the coding… Nothing comes out from these codes except a purple color layer.
So pls can someone kindly aid me in this. Thank You.