Похожую тему создавал уже но она была нещадно погребена новыми поэтому вопрос остался.
Возниикла проблема с наложением текстуры в слудующем коде.
-------------------------------- main.cpp ----------------------------------------------
#include "bmp.h"
#include "GL/glut.h"
#include "GL/gl.h"
#include "GL/glu.h"
GLdouble angel = 0.0;
GLdouble angel_pos = 50.0;
GLdouble k = 5;
int n = 0;
tagBITMAPFILEHEADER bmpFileHeader;
tagBITMAPINFOHEADER bmpInfoHeader;
int file_bmp,nCol,nRow;
tagRGBQUAD* flat;
void readFile(void)
{
file_bmp = open ("/home/alexandr/Documents/Coding/C++/MyProjects/sphere/32b.bmp", O_RDONLY);
read (file_bmp, &bmpFileHeader, 14);
read (file_bmp, &bmpInfoHeader, 40);
nCol = bmpInfoHeader.biWidth;
nRow = bmpInfoHeader.biHeight;
n = nCol * nRow;
for (int y = bmpInfoHeader.biHeight; y > 0; y--)
{
for (int x = 0; x < bmpInfoHeader.biWidth; x++)
{
read (file_bmp, &flat[n].r, 1);
read (file_bmp, &flat[n].g,1);
read (file_bmp, &flat[n].b,1);
read (file_bmp, &flat[n].a,1);
n++;
}
}
}
void setTexture(GLuint name)
{
glBindTexture(GL_TEXTURE_2D,name);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,nCol,nRow,0,GL_RGB,GL_UNSIGNED_BYTE,flat);
}
void Init (void)
{
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
void resize(int width,int height)
{
glClearColor(0.0,0.0,0.0,0.0);
glViewport(0,0,width,height);
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(-12,12, -12,12, -20,20);
gluLookAt( 3,1,1, 0,0,0, 0,1,0 );
glMatrixMode( GL_MODELVIEW );
}
void display(void)
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); //Function of clear window
///// Plase code here //////
GLuint* num;
glPushMatrix();
glGenTextures(1,num);
setTexture (num[0]);
glBegin(GL_POLYGON);
glTexCoord2f(0,2*k);
glVertex3d(-1*k,0*k,1*k);
glTexCoord2f(0,2*k);
glVertex3d(1*k,0*k,1*k);
glTexCoord2f(0,2*k);
glVertex3d(1*k,0*k,-1*k);
glTexCoord2f(0,2*k);
glVertex3d(-1*k,0*k,-1*k);
glEnd();
glPopMatrix();
///////////////////////////////////////////
glFlush();
glutSwapBuffers();
}
void timer(int value)
{
glutPostRedisplay(); //Reshape function
glutTimerFunc(10, timer, 0); //Create loop of timers
angel ++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(900, 900); //Position and
glutInitWindowPosition(0, 0); // size of window
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE ); //Mode of MainWindow
glutCreateWindow(" Created by Cyclon (_cyclon_@mtu.ru) "); //Create window with Caption
Init(); //Initalization function
glutReshapeFunc(resize); //Function for reshape
glutDisplayFunc(display); //Function for resize
glutTimerFunc(25, timer, 0); //Timer with 25ms interval
glutMainLoop(); //Just run main loop
return 0;
}
-------------------------------------------------------------------------------- --------------
--------------------------------bmp.h------------------------------------------- -----------
#include <fcntl.h>
#include <unistd.h>
#include <iostream.h>
#pragma pack(push,1)
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef signed long LONG;
typedef unsigned int UINT;
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; // 'BM' = 4D42h
DWORD bfSize;
UINT bfReserved1;
UINT bfReserved2;
DWORD bfOffBits;
};
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
};
-------------------------------------------------------------------------------- --------------
Пожалуйсто покажите где может быть ошибка и почему текстура не накладывается, или же кинте ссылкой н пример реально работающего примера делающего тоже самое и таким же способом, т.е. прямым чтением из файла, но имеющего небольшой размер (в строчках, чтобы было проще разобраться).
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
Re
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
Re
от cyclon
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от cyclon
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Почему не накладывается текстура? (2003)
- Форум Segmentation fault при чтении файла. (2003)
- Форум Как работать с BMP разной битности. (2003)
- Форум Тормоизт текстурированный куб в OpenGL. (2003)
- Форум Запись структуры в файл (2014)
- Форум Построение бинарного дерева (2005)
- Форум Можно ли подружить glubuild2dmipmaps и qt? (2022)
- Форум Изменение цвета пикселей в простой программе по копированию bmp файла (2016)
- Форум Помощь в gluLookAt (2013)
- Форум [X11]Не могу понять, где по-нормальному объявлена структура Display (2011)