PMG

Форумы по созданию игр
Текущее время: 25 сен 2017 20:54

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2006 07:53 
Спасибо за сылки Margenal


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2006 08:18 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2686
Откуда: Кирово-Чепецк
Voland писал(а):
MagicWolf ты написал: Но если есть готовые либы, то зачем писать свои!
Я ответил тебе на это: Если бы я ещё знал как использовать эти самые либы?
На мой ответ ты написал: Какие?
Если тебе не понятно что-то в моё ответе, будь любезен напиши что имено
тебе неясно


Ты не сказал какие либы конкретно тебя интересуют! Либ на свете много! И как правило к либа идет дока, там все и описано.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2006 17:28 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2686
Откуда: Кирово-Чепецк
Вот нашел не давно книгу:
Название: Формати и алгоритмы сжатия изображения в действии
Автор: Дж. МИАНО
Издательство: москва ТРИУМФ
Год: 2003
Страниц: 236
Формат: DJVU
Размер: 3.4 Mb
ISBN: 5-89392-078
Качество: хорошее
Язык: русский

От авторов
В книге рассмотрены все самые популярные алгоритмы сжатия и формы хранения растровых изображений. Исходные тексты программ сопровождаються описанием особенностей цветовых моделей, популярным объяснением математических основ сжатия и демонстрацией эфективных способов программной реализации алгоритмов.

Содержание
Введение
Windows BMP
XBM
Введение в JPEG
Формат файлов JPEG
Кодирование Хаффмана в JPEG
Дискретное косинусное преобразование
Декодирование изображения JPEG, сжатіх в последовательном режиме
Создание последовательніх файлов JPEG
Оптимизация DCT
Прогрессивные изображения JPEG
GIF
PNG
Развертывание сжатых данных PNG- изображения
Создание PNG - файлов

Сама книга:
http://rapidshare.de/files/22081039/compress.djvu
http://www.megaupload.com/?d=CMZSSILH
http://slil.ru/22808602
http://rapidshare.de/files/22093725/0297.tif
http://www.megaupload.com/?d=8Q9VJXQL

Исходники:
http://rapidshare.de/files/22093688/3.part1.rar
http://rapidshare.de/files/22095914/3.part2.rar
http://rapidshare.de/files/22099948/3.part3.rar
http://rapidshare.de/files/22102362/3.part4.rar
http://rapidshare.de/files/22102644/3.part5.rar

http://www.megaupload.com/?d=NX5QLZC3
http://www.megaupload.com/?d=6UYVVAEA
http://www.megaupload.com/?d=D3I055O2
http://www.megaupload.com/?d=BGN84531

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2006 23:32 
Не в сети
Новичок

Зарегистрирован: 24 апр 2006 20:54
Сообщения: 5
Откуда: Москва
Compilers that can compile DevIL or use it include Djgpp, MSVC++, Linux gcc, Delphi, Visual Basic, Power Basic and Dev-C++.

Елы-паль,а он что C++ Builder не поддерживает? Кто-нить пробовал под 2006 его запускать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 июн 2006 23:33 
Не в сети
Новичок

Зарегистрирован: 24 апр 2006 20:54
Сообщения: 5
Откуда: Москва
Compilers that can compile DevIL or use it include Djgpp, MSVC++, Linux gcc, Delphi, Visual Basic, Power Basic and Dev-C++.

Елы-паль,а он что C++ Builder не поддерживает? Кто-нить пробовал под 2006 его запускать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июн 2006 14:33 
MagicWolf

Спасибо за книгу!


Последний раз редактировалось Tiger 19 фев 2007 10:44, всего редактировалось 1 раз.

Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 июн 2006 16:22 
Уважаемый MagicWolf у тебя случайно ненайдётся книжки по 3ds max 7.

Желательно что-нибудь по проше.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 10:43 
Цитата:
pSurf: IDirectDrawSurface7; //загружаться картинка будет на неё
hImage: HBITMAP; { хэндл картинки, его можно получить так:
hImage:=LoadImage(0,file_name,IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_CREATEDIBSECTION);}
.....
var destDC,
srcDC: HDC;
bm: TBITMAP; //из Windows.pas, который в uses пишется
hObj: HGDIOBJ;
....
srcDC:=CreateCompatibleDC(0);
if srcDC=0 then Exit;
hObj:=SelectObject(srcDC,hImage);
if (hObj=0) or (hObj=GDI_ERROR) then Exit;
if GetObject(hImage,SizeOf(bm),@bm)=0 then Exit;
if not CreateSurface(lpSurf,bm.bmWidth,bm.bmHeight) then Exit;
if SUCCEEDED( lpSurf.GetDC( destDC ) ) then
begin
BitBlt(destDC,0,0,bm.bmWidth,bm.bmHeight,srcDC,0,0,SRCCOPY);
lpSurf.ReleaseDC(destDC);
end else Exit;
DeleteObject(hObj);
DeleteDC(srcDC);

Это же GDI. Ненавижу GDI :P.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 10:46 
Цитата:
Вот нашел не давно книгу:
Название: Формати и алгоритмы сжатия изображения в действии
Автор: Дж. МИАНО
Издательство: москва ТРИУМФ
Год: 2003
Страниц: 236
Формат: DJVU
Размер: 3.4 Mb
ISBN: 5-89392-078
Качество: хорошее
Язык: русский

Кто-нибудь перезалейте исходники к книге.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 11:19 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2686
Откуда: Кирово-Чепецк
Lion писал(а):
Уважаемый MagicWolf у тебя случайно ненайдётся книжки по 3ds max 7.

Желательно что-нибудь по проше.


Вот все что есть:
Код:
Paint\3DMax

07.09.2004  14:46           663 069 Inside3DSMAX.rus.chm
07.09.2004  15:08        20 274 866 Иллюстрированный самоучитель по 3DS MAX 5.html.rar
07.09.2004  15:12           670 673 Внутренний мир 3D Studio MAX.html.zip
07.09.2004  15:17         1 839 766 Анимация персонажей в 3D Studio MAX.html.zip
25.11.2004  10:53        15 744 762 New Riders - 3Ds Max 6 Fundamentals.chm
14.06.2005  15:19        69 262 061 Wordware.Publishing.Modeling.A.Character.in.3DS.Max.2nd.Edition.Feb.2005.ISBN155622088.pdf
04.02.2006  15:12        83 095 594 Питер, Бондаренко, 3ds Max 8, Библиотека пользователя, 2006.pdf
26.04.2006  07:31         5 473 355 Кен Бриллиант. Цифровая модель человека.pdf
13.07.2006  09:18        18 228 301 Комбук, Бондаренко, Плагины для 3DS MAX 6, 2004.djvu
               9 файлов    215 252 447 байт

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 11:20 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2686
Откуда: Кирово-Чепецк
Lion писал(а):
Это же GDI. Ненавижу GDI :P.


Где там GDI? И потом GDI+ в принципе не плохая вещь.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 13:09 
Цитата:
Где там GDI? И потом GDI+ в принципе не плохая вещь.

Может вешь и не плохая, но в Линуксе она работать не будет.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 фев 2007 13:42 
Вот простенький загрузчик BMP файла который я написал основываясь на
уроках Андре Ламота:
Код:
#define WIN32_LEAN_AND_MEAN
#pragma comment(lib,"dxguid.lib")
#pragma comment(lib,"ddraw.lib")
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <ddraw.h>

#define  WIDTH  640
#define  HEIGHT 480
#define  BPP    32
//////////////////////////////////////////////////////////////////////////

#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEY_UP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
#define DDRAW_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }
#define _RGB32BIT(a,r,g,b) ((b) + ((g) << 8) + ((r) << 16) + ((a) << 24))
//////////////////////////////////////////////////////////////////////////

typedef struct BITMAP_FILE_TAG
        {
        BITMAPFILEHEADER bitmapfileheader; 
        BITMAPINFOHEADER bitmapinfoheader; 
        PALETTEENTRY     palette[256];     
        UCHAR            *buffer;         

        } BITMAP_FILE, *BITMAP_FILE_PTR;
//////////////////////////////////////////////////////////////////////////

int Load_Image(BITMAP_FILE_PTR bitmap,char *name);
int Init_Game();
int Game_Render();
int Shutdown_Game();
//////////////////////////////////////////////////////////////////////////

LPDIRECTDRAW7                    d3d7=NULL;
LPDIRECTDRAWSURFACE7             pBuffer=NULL;
LPDIRECTDRAWSURFACE7             sBuffer=NULL;
DDSURFACEDESC2                   ddsd;
BITMAP_FILE                      bitmap;

HWND                             hwnd;
MSG                              msg;
//////////////////////////////////////////////////////////////////////////

int Load_Image(BITMAP_FILE_PTR bitmap,char *name)
{
FILE           *fImage;

fImage=fopen(name,"rb");

fread(&bitmap->bitmapfileheader,sizeof(BITMAPFILEHEADER),1,fImage);

fread(&bitmap->bitmapinfoheader,sizeof(BITMAPINFOHEADER),1,fImage);

bitmap->buffer=(UCHAR *)malloc(bitmap->bitmapinfoheader.biSizeImage);

fread(bitmap->buffer,bitmap->bitmapinfoheader.biSizeImage,1,fImage);

fclose(fImage);

return 0;
}
////////////////////////////////////////////////////////////

int Draw_Image(int width,int height)
{
pBuffer->Lock(NULL,&ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT,NULL);

DWORD *primary_buffer = (DWORD *)ddsd.lpSurface;       

for (int index_y = 0; index_y < height; index_y++)
    {
    for (int index_x = 0; index_x < width; index_x++)
        {
        UCHAR blue  = (bitmap.buffer[index_y*width*3 + index_x*3 + 0]),
              green = (bitmap.buffer[index_y*width*3 + index_x*3 + 1]),
              red   = (bitmap.buffer[index_y*width*3 + index_x*3 + 2]);

        DWORD pixel = _RGB32BIT(0,red,green,blue);

        primary_buffer[index_x + (index_y*ddsd.lPitch >> 2)] = pixel;
        }
    }
pBuffer->Unlock(NULL);

return 0;
}
////////////////////////////////////////////////////////////

LRESULT CALLBACK WinProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
   switch(msg)
   {
   case WM_CREATE:
      {
      return 0;
      }break;

   case WM_DESTROY:
      {
      PostQuitMessage(0);
      return 0;
      }break;

       default:break;

   }

   return DefWindowProc(hwnd, msg, wparam, lparam);
}
////////////////////////////////////////////////////////////

int WINAPI WinMain(   HINSTANCE hinstance,
               HINSTANCE hprevinstance,
               LPSTR lpcmdline,
               int ncmdshow)
{
   WNDCLASSEX win;

    win.cbSize        = sizeof(WNDCLASSEX);
    win.style        = CS_HREDRAW | CS_VREDRAW;
    win.lpfnWndProc   = WinProc;
    win.cbClsExtra     = 0;
    win.cbWndExtra     = 0;
    win.hInstance     = hinstance;
    win.hIcon        = LoadIcon(NULL, IDI_APPLICATION);
    win.hCursor        = LoadCursor(NULL, IDC_ARROW);
    win.hbrBackground = NULL;
    win.lpszMenuName  = NULL;
    win.lpszClassName ="WINX";
    win.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

   RegisterClassEx(&win);

   hwnd=CreateWindowEx(NULL,"WINX","Warcraft 3000",WS_POPUP | WS_VISIBLE,0,0,
                      WIDTH,HEIGHT,NULL,NULL,hinstance,NULL);

   Init_Game();

   ShowWindow(hwnd,SW_SHOWDEFAULT);
   UpdateWindow(hwnd);

   ZeroMemory(&msg,sizeof(msg));
   while(msg.message!=WM_QUIT)
   {
      if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
      {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
      }
      Game_Render();
   }

   Shutdown_Game();
   UnregisterClass("WINX",win.hInstance);

   return 0;
}
////////////////////////////////////////////////////////////

int Init_Game()
{
   DirectDrawCreateEx(NULL,(void **)&d3d7,IID_IDirectDraw7,NULL);

   d3d7->SetCooperativeLevel(hwnd,DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE);

   d3d7->SetDisplayMode(WIDTH,HEIGHT,BPP,0,0);

   DDRAW_INIT_STRUCT(ddsd);

   ZeroMemory(&ddsd,sizeof(ddsd));
   ddsd.dwSize=sizeof(ddsd);
   ddsd.dwFlags=DDSD_CAPS;
   ddsd.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;

   d3d7->CreateSurface(&ddsd,&pBuffer,NULL);

   Load_Image(&bitmap,"bitmap24.bmp");
   
   return 0;
}
////////////////////////////////////////////////////////////

int Game_Render()
{
   Draw_Image(WIDTH,HEIGHT);

   if(KEY_DOWN(VK_ESCAPE))
   {
   PostMessage(hwnd,WM_DESTROY,0,0);
   }

   return 0;
}
////////////////////////////////////////////////////////////

int Shutdown_Game()
{
   if(sBuffer!=NULL)
   {
    sBuffer->Release();
   }

   if(pBuffer!=NULL)
   {
    pBuffer->Release();
   }

   if(d3d7!=NULL)
   {
    d3d7->Release();
   }

   return 0;
}
////////////////////////////////////////////////////////////

Это загрузчик основан на структурах BMP файла которые определены в заголовочном файле windows.h, следовательно этот загрузчик
может работать только в Виндузе.
Вопрос на засыпку: как написать собственные структуры BMP файла для того чтобы загрузчик мог работать не только в Виндовсе, но и в Линуксе тоже.
Буду рад любой помощи. =)


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 фев 2007 11:16 
Не в сети
Постоянный
Аватара пользователя

Зарегистрирован: 11 фев 2006 15:55
Сообщения: 79
Откуда: г. Ульяновск
Lion, эти структуры можно извлечь из заголовочных файлов Windows. Для этого в редакторе MSVS над именем структуры жмёшь правую кнопку мыши и выбираешь "Go To Definition" или "Go To Declaration", после чего откроется header в том месте, где определена структура. Вот, что я выбрал:
Код:
typedef unsigned short   WORD;
typedef unsigned long   DWORD;
typedef long      LONG;
typedef unsigned char   BYTE;
typedef unsigned char   UCHAR;

typedef struct
{
   WORD   bfType;
   DWORD   bfSize;
   WORD   bfReserved1;
   WORD   bfReserved2;
   DWORD   bfOffBits;
} BITMAPFILEHEADER;

typedef struct
{
   DWORD   biSize;
   LONG   biWidth;
   LONG   biHeight;
   WORD   biPlanes;
   WORD   biBitCount;
   DWORD   biCompression;
   DWORD   biSizeImage;
   LONG   biXPelsPerMeter;
   LONG   biYPelsPerMeter;
   DWORD   biClrUsed;
   DWORD   biClrImportant;
} BITMAPINFOHEADER;

typedef struct
{
   BYTE   peRed;
   BYTE   peGreen;
   BYTE   peBlue;
   BYTE   peFlags;
} PALETTEENTRY;

Я не проверял, будет ли это работать. Можно ещё использовать библиотеку SDL, а именно функцию SDL_LoadBMP. Кроме этого, на сайте steps3d.narod.ru поищи кроссплатформенную библиотеку libTexture, позволяющую загружать текстуры из bmp, tga и других форматов файлов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 фев 2007 11:52 
Спасибо за помощь Александр Иваныч. Я думал что ты тоже как и я учишься на программиста. Теперь я вижу что ты профессионал, наверное
работаешь программистом в игровой индустрии.


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB