Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенаправление оси ординат, Как перенаправить ось 
:(
    Опции темы
pashokq
Дата 31.8.2007, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.8.2007

Репутация: нет
Всего: нет



Народ, помогите вывожу битовый образ в OpenGL, он выводится в перевернутом виде! Как изменить направление оси Y, т.е чтоб она шла не снизу вверх, а сверху вниз (как GDI)! smile 
PM MAIL   Вверх
Solomon
Дата 31.8.2007, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Именно битовый образ или текстуру?


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
pashokq
Дата 31.8.2007, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.8.2007

Репутация: нет
Всего: нет



Битовый образ! Не в этом дело я вообще спрашиваю можно ли изменить направление оси Y smile 
PM MAIL   Вверх
Solomon
Дата 4.9.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



конечно можно

glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);

т.е. если допустим у нас задано как 
glOrtho (0,800,600,0);
то ось У будет сверху вниз... 

если наоборот 
glOrtho (0,800,0,600);
то наоборот

попробуй должно все выйти.. а вообще лучше бы код свойй привел


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
pashokq
Дата 6.9.2007, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.8.2007

Репутация: нет
Всего: нет



Спасибо, большое! щас попробую!!! Код выложу чуть попозжее! smile 
PM MAIL   Вверх
Solomon
Дата 6.9.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Только одна проблема.. это перевернет ось координат для всего. т.е. если у тебя только битмап неправильно выводился то проблема не в этом я думаю


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
pashokq
Дата 8.9.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.8.2007

Репутация: нет
Всего: нет



Код вот такой!!!

Код

//$$---- Form CPP ----
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main_form.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}

bool TForm1::Init_OpenGL(HWND hWnd)
{
 PIXELFORMATDESCRIPTOR nPixel;
 int PixelFormat=NULL;
 nPixel.nSize=sizeof(PIXELFORMATDESCRIPTOR);
 nPixel.nVersion=1;
 nPixel.dwFlags=PFD_SUPPORT_OPENGL|PFD_DRAW_TO_WINDOW|PFD_DOUBLEBUFFER;
 nPixel.iPixelType=PFD_TYPE_RGBA;
 nPixel.cDepthBits=32;
 if((hDc=GetDC(hWnd))==NULL) return false;
 if((PixelFormat=ChoosePixelFormat(hDc,&nPixel))==NULL) return false;
 if(SetPixelFormat(hDc,PixelFormat,&nPixel)==false) return false;
 if((Context=wglCreateContext(hDc))==NULL) return false;
wglMakeCurrent(hDc,Context);
return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if (!Init_OpenGL(Form1->Handle))
{
 MessageBox(Application->Handle,"","",0);
}
glPixelStorei(GL_UNPACK_ALIGNMENT,1);
if ((image = new pcx("fon.pcx"))==NULL)
 {
  MessageBox(NULL,"Ошибка выделения памяти и загрузка фона.","Ошибка.",MB_ICONWARNING|MB_OK);
  PostQuitMessage(0);
 }
Form1->Width=image->head.width;
Form1->Height=image->head.height;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
                    if (Context)
                    {
                    wglMakeCurrent(0,0);
                    wglDeleteContext(Context);
                    }
                    if (hDc)
                    {
                    ReleaseDC(Form1->Handle,hDc);
                    DeleteDC(hDc);
                    }
                    if (image)
                    {
                    delete image;
                    }
}
//---------------------------------------------------------------------------void pcx::fon_update()
void TForm1::fon_update()
{
glViewport(0,0,Form1->Width,Form1->Height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,(GLdouble)Form1->Width,0,(GLdouble)Form1->Height);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearColor(0.0f,0.0f,0.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
image->draw(0,0);
SwapBuffers(hDc);
i=0;
pp=new spr("pricel.pcx",50,50);
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
fon_update();
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
pp->move(i);
SwapBuffers(hDc);
++i;
}
//---------------------------------------------------------------------------



Объект Image это объект раскодирования файла формтата PCX!!! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.