Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2020, 16:32   #1
SADxRobot
 
Регистрация: 13.09.2020
Сообщений: 4
По умолчанию failed to open dib file bmp

Добрый день, после компиляции выходит окно с ошибкой "failed to open dib file bmp". Погуглил и особо ничего не понял, может кто подскажет.


Код:
#include <iostream>
#include<glut.h>
#include <windows.h>
#include <stdio.h>
#include <glaux.h>
#pragma warning(disable : 4996)

using namespace std;

unsigned int T_tex;


const double G = 6.67 * pow(10, -11);
const double M = 5.97 * pow(10, 24), R = 6.37 * pow(10, 6);
const double pi = 3.1415926535;

double hzp;
float omega, T1, v;






GLfloat rx = 0; // Угол поворта сцены вокруг оси X
GLfloat ry = 0; // Угол поворта сцены вокруг оси Y
int mx, my; // Координаты мыши
bool ldown = false; // Нажата левая клавиша мыши?
bool rdown = false; // Нажата правая клавиша мыши?

GLuint list = 0;
float angle;


void Texture()
{
	AUX_RGBImageRec* T = auxDIBImageLoadA("Photo.bmp");
	glGenTextures(1, &T_tex);
	glBindTexture(GL_TEXTURE_2D, T_tex);
	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, 3, T->sizeX, T->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, T->data);
}

void speed()
{
	// double omega = 0;
	cout << "hzp=";
	cin >> hzp;
	omega = sqrt(G * M / pow((R + hzp), 3));
	cout << "omega = " << omega << endl;
	T1 = 2 * pi / omega;
	cout << "T=" << T1 / 3600 << endl;
	v = omega * (R + hzp);
	cout << "v=" << v << endl;
}

void Init() // Инициализация OpenGL
{
	glClearColor(0.5, 0.5, 0.75, 1); // Цвет фона

	glEnable(GL_LIGHTING); // Включаем расчёт освещения
	glEnable(GL_LIGHT0); // Включаем первый источник света

	// Настраиваем источник света GL_LIGHT0
	float light_ambient[4] = { 0.5, 0.5, 0, 0 };
	float light_diffuse[4] = { 1.0,1.0,1.0,1.0 };
	float light_specular[4] = { 0.0,1.0,0.0,1.0 };
	float light_position[4] = { 1.0,1.0,1.0,0.2 };

	glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
	glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
	glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
	glLightfv(GL_LIGHT0, GL_POSITION, light_position);

	glEnable(GL_NORMALIZE); //делаем нормали одинаковой величины во избежание артефактов
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_COLOR_MATERIAL);





	glPopMatrix();



}



void Display() // Вывод изображения на экран
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glLoadIdentity();
	glOrtho(-1.0, 1.0, -1.0, 1.0, 6.0, 8.0);
	gluLookAt(0, 0, 7, 0, 0, 0, 0, 1, 0);
	glMatrixMode(GL_MODELVIEW);
	glEnable(GL_TEXTURE_2D);

	list = glGenLists(1);

	glNewList(list, GL_COMPILE); //Создание дисплейного списка объекта (чайника)

	

	glutSolidSphere(0.25, 30, 30);
	glPushMatrix();//Сохраняем координаты первой сферы
	glColor3f(0.3, 0.5, 0.9);//задаём цвет второй сферы
	glTranslated(0.25 * (hzp + R) / R, 0.0, 0.0);//Сдвиг на 0.7 по оси x

	glTranslated(-0.25 * (hzp + R) / R, 0.0, 0.0);//Перевод камеры в исходное положение
	glRotatef(angle, 0.0, 0.0, 1.0);//Поворот вокруг начала координат
	glTranslated(0.25 * (hzp + R) / R, 0.0, 0.0);//перевод камеры назад
	glutSolidSphere(0.05, 50, 50);
	glEndList();

	glPushMatrix();
	glRotatef(rx, 1, 0, 0);
	glRotatef(ry, 0, 1, 0);
	glCallList(list); // Вывод объекта на экран
	glPopMatrix();
	glutSwapBuffers(); // Смена переднего и заднего буферов экрана
}

void timer(int value)
{
	glutTimerFunc(10, timer, 0);
	Display();
	Texture();
	angle++;
	glRotatef(0.0, 0.0, 0.0, 1.0);
	glutPostRedisplay();

}



void Mouse(int button, int state, int x, int y) //Обработка щелчков мыши
{
	if (button == GLUT_LEFT_BUTTON) //Левая кнопка
	{
		switch (state)
		{
		case GLUT_DOWN: //Если нажата
			ldown = true; //установить флаг
			mx = x; //Запомнить координаты
			my = y;
			break;
		case GLUT_UP:
			ldown = false;
			break;
		}
	}
}

void MouseMotion(int x, int y) //Перемешение мыши
{
	if (ldown) // Левая кнопка
	{
		rx += 0.5 * (y - my); //Изменение угола поворота
		ry += 0.5 * (x - mx);
		mx = x;
		my = y;
		glutPostRedisplay(); //Перерисовать экран
	}
}

void MousePassiveMotion(int x, int y)
{
	char buf[80];
	sprintf(buf, "Mouse coords is: x=%d; y=%d", x, y);
	glutSetWindowTitle(buf);
}

int main(int argc, char* argv[])
{
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); // Задаём параметры окна



	glutCreateWindow("GLUT Teapot"); // Создём окно

	Init();

	// Задаём функцию обратного вызова вывода изображения на экран
	glutIdleFunc(Display);
	
	glutDisplayFunc(Display);


	glutPassiveMotionFunc(MousePassiveMotion); // Обработчик перемещений грызуна при отжатой кнопке мыши
	glutMotionFunc(MouseMotion); // Обработчик перемещений грызуна при зажатой кнопке мыши
	glutMouseFunc(Mouse);

	glutTimerFunc(10, timer, 0);
	speed();
	glutMainLoop();
	Texture();

	return 0;
}
SADxRobot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
failed to open stream: Is a directory Alexandtr PHP 3 11.06.2017 14:17
C1083: Cannot open include file: 'd3dx9.h': No such file or directory CrowleyNoob Общие вопросы C/C++ 15 18.09.2016 21:55
При чтении файла Warning: file_get_contents(files/..): failed to open stream: Permission denied cheburashkaRF PHP 1 17.08.2016 22:04
visual studio не видит заголовочный файл, хотя он есть (fatal error C1083: Cannot open include file: 'GL/glut.h': No such file or sersheg Помощь студентам 0 21.10.2013 13:04
Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory s20 Общие вопросы C/C++ 2 26.09.2009 23:28