Как вы отображаете изображения в OpenGL - PullRequest
11 голосов
/ 10 августа 2011

Как вы отображаете изображения (.bmp и .jpeg), используя OpenGL? Я сталкивался с некоторыми учебниками, но они были для C #, а не C / C ++. Причина, по которой я хочу визуализировать изображения, заключается в том, что я хочу нарисовать космический корабль (для игры). Я мог бы использовать примитив OpenGL, но на самом деле он выглядит не очень хорошо. Другой вариант - нарисовать космический корабль, используя координаты, но это заняло бы целую вечность и выглядело бы не так хорошо.

выполнение следующего фрагмента всегда возвращает ошибку:

#include <iostream>
#include <GL/glfw.h>
using namespace std;
int main()
{
  GLFWimage image;
  if(glfwReadImage("ship.tga", &image, GLFW_ORIGIN_UL_BIT)!=GL_TRUE);
  cout << "FAILED";
  system("PAUSE");
  return 0;
}

Что я делаю не так? Плохо написанный код. Извини за это. Работает сейчас

Ответы [ 3 ]

4 голосов
/ 10 августа 2011

Текстурируя Quad (или еще лучше, два треугольника).

Если вам действительно не нужны .bmp или .jpeg, я бы предложил использовать .tga (Targa) изображения в том виде, как они естьболее часто используется и поддерживает альфа-канал.

Некоторые ресурсы C ++:

http://nehe.gamedev.net/tutorial/loading_compressed_and_uncompressed_tgas/22001/

http://nehe.gamedev.net/tutorial/texture_mapping/12038/

http://www.lonesock.net/soil.html (aотличная небольшая библиотека изображений для OpenGL. Поддерживает bmp, jpg, png, tga и т. д.)

3 голосов
/ 10 августа 2011

Визуализация текстурированного четырехугольника или двух треугольников, образующих прямоугольник.

2 голосов
/ 10 августа 2011

Quake-подобные игры рендерит людей как кубы с различными текстурами на боку.Вы можете сделать это также.Включите альфа-смешивание и убедитесь, что данные прозрачной текстуры действительно прозрачны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...