Freeglut opengl [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Freeglut opengl [дубликат]

Сообщение Anonymous »

Как мне текстую куба в этой программе? Я установил FreeGlut, используя следующие инструкции. https://www.transmissionzero.co.uk/soft ... lut-devel/
Загрузить и извлечь Archive Freeglut-Mingw-3.0.0-1, чтобы попасть в папку FreeGlut.
Enter the freeglut folder and copy the files 1-4 from freeglut/include/GL/
File 1 freeglut.h
File 2 freeglut_ext.h
File 3 freeglut_std.h
File 4 glut.h

To
C:Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include/GL

And 2 files from freeglut/lib/x64
File 1 libfreeglut.a
File 2 libfreeglut_static.a

To
C:Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib

and 1 file from freeglut/bin/x64
File 1 freeglut.dll

To C/Windows/System32
< /code>
Сделайте новый проект приложения консоли и щелкните правой кнопкой мыши проект в дереве списка проектов. Щелкните правой кнопкой мыши -> Параметры проекта и перейдите на вкладку «Параметры». Затем добавьте следующее в область настройки линкера.
-lopengl32
-lfreeglut
-lglu32 < /p>
Чего не хватает в этом коде? Я хочу использовать краску или бесплатное редактирование пикселя или, может быть, Gimp, чтобы сделать изображения для загрузки с библиотекой STB, чтобы загрузить несколько текстур, будь то .bmp или .png. Чего не хватает для куба, чтобы иметь 6 текстур на поверхности куба? Пожалуйста, настройте функцию, если вы напишите одну, чтобы открыть .bmp или .png из Paint. Размер текстур варьируется до предела типа файла, даже если я буду в основном загружать небольшие текстуры. < /P>
#include
#define "STB_IMAGE_IMPLEMENTATION"
#include "stb_image.h"
#include

GLuint Texture[6];

float angleX = 0.0f;
float anglyY = 0.0f;

GLuint LoadTexture(const char* filename)
{
//Missing code
}
void drawCube()
{
//Top face
glBindTexture(GL_TEXTURE_2D, Texture[0]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0,1.0,-1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.0,1.0,-1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(1.0,1.0,1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,1.0,1.0);
glEnd();

//Left face
glBindTexture(GL_TEXTURE_2D, Texture[1]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0,-1.0,-1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(-1.0,-1.0,1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(-1.0,1.0,1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,1.0,-1.0);
glEnd();

//Front face
glBindTexture(GL_TEXTURE_2D, Texture[2]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0,-1.0,1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.0,-1.0,1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(1.0,1.0,1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,1.0,1.0);
glEnd();
//Right face
glBindTexture(GL_TEXTURE_2D, Texture[3]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(1.0,-1.0,-1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.0,-1.0,1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(1.0,1.0,1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,1.0,1.0);
glEnd();
//Bottom face
glBindTexture(GL_TEXTURE_2D, Texture[4]);
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0,-1.0,-1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.0,-1.0,-1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(1.0,-1.0,1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,-1.0,1.0);
glEnd();
//Back face
glBindTexture(GL_TEXTURE_2D, Texture[5])
glBegin(GL_QUADS);
glTexCoord2f(0.0f,0.0f);
glVertex3f(-1.0,-1.0,-1.0);
glTexCoord2f(1.0f,0.0f);
glVertex3f(1.0,-1.0,-1.0);
glTexCoord2f(1.0f,1.0f);
glVertex3f(1.0,1.0,-1.0);
glTexCoord2f(0.0f,1.0f);
glVertex3f(-1.0,1.0,-1.0);
glEnd();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT)

glPushMatrix();
glRotatef(angleX, 1.0, 0.0, 0.0);
glRotatef(angleY, 0.0, 1.0, 0.0);

drawCube();
glPopMatrix();
glutSwapBuffers();

angleX = angleX + 0.2f;
angleY = angleY + 0.2f;
}

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH);
glutInitWindowSize(800,600);
glutCreateWindow("Game window");

glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);

glMatrixMode(GL_PROJECTION);
glOrtho(-3,3,-3,3,-10,10);

Texture[0] = loadTexture("1.bmp");
Texture[1] = loadTexture("2.bmp");
Texture[2] = loadTexture("3.bmp");
Texture[3] = loadTexture("4.png");
Texture[4] = loadTexture("5.png");
Texture[5] = loadTexture("6.png");

glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... lut-opengl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»