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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2011, 03:28   #1
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
Радость дайте исходник программы на GLFW и OpenGL с загруской текстуры...

дайте исходник программы на GLFW и OpenGL с загруской текстуры...
а то у меня ничего не выходит...
впрочем вот нерабочий код
Код:

#define GLFW_DLL
#include <GL/glfw.h>
#include <GL/glu.h>
#include <stdio.h>
#include <GL/gl.h>

void movement (float *x, float *y, float *z)
{
    if (glfwGetKey(0x0057))
    {
        if (*y > -5.0)
        {
        *y=*y-0.001;
        }
    }
    if (glfwGetKey (0x0053))
    {
        if (*y < 5.0)
        {
                *y=*y + 0.001;
        }
    }
    if (glfwGetKey(0x0041))
    {
        if (*x < 5.0)
        {
                 *x=*x+0.001;
        }
    }
    if (glfwGetKey(0x0044))
    {
        if (*x > -5.0)
        {
                 *x=*x-0.001;
        }
    }
}


int main (int argc, char *argv[])//argv[0] название окна
{
    int running;//переменная по проверке работы окна
    GLuint	texture[1];		// Место для одной текстуры
    int id;
    if (!glfwInit())//обьявляем работу с glfw
    {
        glfwTerminate();
        printf("error: Init");
        return 0;
    }

  texture[3] = glfwLoadTexture2D("Data/background.tga", GLFW_BUILD_MIPMAPS_BIT);

    glGenTextures(1, &texture[0]);
	glBindTexture(GL_TEXTURE_2D, texture[0]);
	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, 128, 128, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);

    if (!glfwOpenWindow(0,0,0,0,0,0,0,0,GLFW_FULLSCREEN))//открываем окно
    {
        glfwTerminate();
        printf("error: open window");
        return 0;
    }
    float red = 0.0;//цвета фона
    float green = 1.0;
    float blue = 0.0;
    float rtri = 1.0;
    float x = 0.0;
    float y = 0.0;
    float z = 0.0;
    while(running)//проверка открытого окна и нажатия ESC
    {
glEnable(GL_TEXTURE_2D);		// Разрешение наложение текстуры
        glClearColor(red,green,blue,0.0);//цвет очистки фона красный, зеленый, синий
        glClear(GL_COLOR_BUFFER_BIT);//очистка
        glOrtho (-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);//создаем систему координат
        glLoadIdentity();//сброс
        	glBindTexture(GL_TEXTURE_2D, texture[0]);
 glRotatef(180.0,0.0,0.0,0.0);
                 glTranslatef(x,y,z);
                 	glBindTexture(GL_TEXTURE_2D, texture[0]);
glBegin(GL_QUADS);

				// Передняя грань
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх лево

				// Задняя грань
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ лево

				// Верхняя грань
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право

				// Нижняя грань
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право

				// Правая грань
glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);	// Верх лево
glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);	// Низ лево

				// Левая грань
glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);	// Низ лево
glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);	// Низ право
glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);	// Верх право
glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);	// Верх лево

glEnd();
        glFlush();
                glfwSwapBuffers();
                rtri = rtri + 0.001;
        movement(&x,&y,&z);
        running=!glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
    }

}

и раз уш я спрашиваю, Вы не знаете как сделать текстуру фоном очестки экрана? например как в КР фон космоса...

и ещё не знаете ли Вы руской литературы по glfw, а то на англиском не всегда понятно... друг посоветовал, я пробую нравится, ток все учебники на старом GLAUX
всем ответившим зарание спасиба и будут +
Это ещё не конец и даже не начало конца, это возможно только конец начала.

Последний раз редактировалось pufystyj; 11.07.2011 в 03:32.
pufystyj вне форума Ответить с цитированием
Старый 16.07.2011, 07:12   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от pufystyj Посмотреть сообщение
Вы не знаете как сделать текстуру фоном очестки экрана? например как в КР фон космоса...
Ну можно просто выводить квадрат в начале сцены с отключенным z-buffer
По умолчанию у OpenGL координаты экрана от -1.0 до 1.0. Вот как раз выводить квадрат в этих координатах перед экраном.
В начале сцены:
1. glClear( GL_DEPTH_BUFFER_BIT); // Очищаем буфер глубины.
2. glDisable( GL_DEPTH_TEST); // Выключаем буфер глубины.
3. Рисуем квадрат с текстурой.
4. glEnable( GL_DEPTH_TEST); // Включаем буфер глубины.
5. Дальше рисуем все остальные объекты.
An1ka вне форума Ответить с цитированием
Старый 16.07.2011, 22:18   #3
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

спасиба в
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL. Текстуры. _PROGRAMM_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 14 01.06.2011 20:32
OpenGL и текстуры N!ckeL Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 05.05.2010 15:46
Текстуры OpenGl Stanislav Мультимедиа в Delphi 7 17.12.2008 17:55
Дайте исходник LuMax Помощь студентам 4 02.03.2008 12:41
OpenGL текстуры NoName_emaNoN Win Api 3 29.11.2007 20:11