Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 01.05.2008, 17:42   #1
Witaliy
Форумчанин
 
Регистрация: 27.04.2008
Адрес: г.Роздол. Украина
Сообщений: 179
Репутация: 10
По умолчанию OpenGL

Кто то умеет пользоваться OpenGL?
Witaliy вне форума   Ответить с цитированием
Старый 01.05.2008, 21:05   #2
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Адрес: Россия, Краснодар
Сообщений: 300
Репутация: 129

icq: 5-880-697
По умолчанию

Громоздкий код
Код:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons OpenGl; //OpenGl в uses

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
    dc:hdc;
    hrc:hglrc;
    procedure pixelformat;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
dc:=getdc(handle);
pixelformat;
hrc:=wglcreatecontext(dc);
wglmakecurrent(dc, hrc);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
WGLMAKECURRENT(0,0);
wgldeletecontext(hrc);
releasedc(handle, dc);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
x, y:integer;
ps:tpaintstruct;
begin
glmatrixmode(gl_projection);
glloadidentity();
if width <= height then
glortho (-2, 2, -2*height/width, 2*height/width, -10.0, 10.0)
else
glortho (-2*height/width, 2*height/width, -2, 2, -10.0, 10.0);
glviewport(0, 0, width, height);


beginpaint(handle, ps);
glclearcolor(1,0.5,0.5,1); //цвет фона в RGB
glclear(gl_color_buffer_bit or gl_depth_buffer_bit);
glpushmatrix;

{вот сюда вставляем команды на рисование, о них ниже}

gldisable (gl_depth_test);
glflush();
swapbuffers(dc);
endpaint(handle, ps);
end;

procedure TForm1.FormResize(Sender: TObject);
begin
formpaint(nil);;
end;

procedure TForm1.pixelformat; //настройка цветов и прочего
var
npixelformat:integer;
pfd:tpixelformatdescriptor;
begin
fillchar(pfd, sizeof(pfd), 0);
pfd.nSize:=sizeof(pfd);
pfd.nVersion:=1;
pfd.dwFlags:=pfd_doublebuffer+pfd_support_opengl+pfd_draw_to_window;
pfd.iPixelType:=pfd_type_rgba;
pfd.cColorBits:=128;
pfd.cAlphaBits:=128;
pfd.cAccumBits:=128;
pfd.cDepthBits:=128;
pfd.cStencilBits:=128;
pfd.iLayerType:=pfd_main_plane;
npixelformat:=choosepixelformat(dc, @pfd);
if npixelformat<>0 then
setpixelformat(dc, npixelformat, @pfd);
end;

end.

Команды рисования:
Код:

 glcolor3f(1, 0, 0); //цвет в системе RGB
 glbegin(gl_quad_strip);//начинаем рисовать замкнутые квадраты
 glvertex3f(x, y, z);//первая вершина (x, y, z-координаты)
 glvertex3f(x, y, z);//вторая
 glvertex3f(x, y, z);//третья
 glvertex3f(x, y, z);//четвёртая
 glend;//заканчиваем рисовать замкнутые квадраты

 glbegin(gl_lines);//начинаем рисовать линии
 glvertex3f(x, y, z);//первая вершина (x, y, z-координаты)
 glvertex3f(x, y, z);//вторая
 glend;//заканчиваем рисовать линии

Вообще таких команд много, особенно если взять GLU советую почитать литературу
__________________
Карп преодолевший водопад становится драконом.

Последний раз редактировалось N!ckeL; 01.05.2008 в 21:26.
N!ckeL вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 12:31
OpenGL psyke Gamedev - cоздание игр: Unity, OpenGL, DirectX 10 10.07.2008 02:24
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43
OpenGL Nbveh Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 25.10.2007 18:56


20:40.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru