Как мне текстую куба в этой программе? Я установил 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
Freeglut opengl [дубликат] ⇐ C++
Программы на C++. Форум разработчиков
1750015469
Anonymous
Как мне текстую куба в этой программе? Я установил FreeGlut, используя следующие инструкции. https://www.transmissionzero.co.uk/software/freeglut-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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79666809/freeglut-opengl[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия