Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.20.57] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, пытаюсь выполнить этот урок https://thedelphi.ru/opengl/oles3.php. Только на OpenGl, без DGLUT который прикладывается к уроку. Для этого использую glVertex3f. Но почему-то вместо куба у меня вырисовывается белый прямоугольник на всю рабочую область, как сделать куб и отдалить его. Вот исходник.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OpenGL; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } hrc: HGLRC; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); begin wglMakeCurrent(Canvas.Handle, hrc); glClearColor (0.5, 0.5, 0.75, 1.0); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_QUADS); // Лицевая сторона glVertex3f(-1.0, -1.0, 1.0); glVertex3f( 1.0, -1.0, 1.0); glVertex3f( 1.0, 1.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); //Задняя сторона glVertex3f(-1.0, -1.0, -1.0); glVertex3f(-1.0, 1.0, -1.0); glVertex3f( 1.0, 1.0, -1.0); glVertex3f( 1.0, -1.0, -1.0); // Верхняя сторона glVertex3f(-1.0, 1.0, -1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f( 1.0, 1.0, 1.0); glVertex3f( 1.0, 1.0, -1.0); // Нижняя сторона glVertex3f(-1.0, -1.0, -1.0); glVertex3f( 1.0, -1.0, -1.0); glVertex3f( 1.0, -1.0, 1.0); glVertex3f(-1.0, -1.0, 1.0); // Правая сторона glVertex3f( 1.0, -1.0, -1.0); glVertex3f( 1.0, 1.0, -1.0); glVertex3f( 1.0, 1.0, 1.0); glVertex3f( 1.0, -1.0, 1.0); // Левая сторона glVertex3f(-1.0, -1.0, -1.0); glVertex3f(-1.0, -1.0, 1.0); glVertex3f(-1.0, 1.0, 1.0); glVertex3f(-1.0, 1.0, -1.0); glEnd(); SwapBuffers(Canvas. Handle); // содержимое буфера - на экран end; procedure SetDCPixelFormat (hdc : HDC); var pfd : TPIXELFORMATDESCRIPTOR; nPixelFormat : Integer; begin FillChar(pfd, SizeOf(pfd), 0); nPixelFormat := ChoosePixelFormat (hdc, @pfd); SetPixelFormat (hdc, nPixelFormat, @pfd); end; procedure TForm1.FormCreate(Sender: TObject); begin SetDCPixelFormat(Canvas.Handle); hrc := wglCreateContext(Canvas.Handle); end; procedure TForm1.FormDestroy(Sender: TObject); begin wglDeleteContext(hrc); end; end. |
Сообщ.
#2
,
|
|
|
Вот у меня тут что-то готовое валяется
Прикреплённый файлOpenGL_Cube.zip (53,57 Кбайт, скачиваний: 31) |
Сообщ.
#3
,
|
|
|
Да это подойдет работает, а как наложить текстуры?
|
Сообщ.
#4
,
|
|
|
Это тебе лучше на форумах геймдеваа спрашивать, там ребята профессионально с OpenGL работают.
|
Сообщ.
#5
,
|
|
|
Цитата Rouse_ @ Это тебе лучше на форумах геймдеваа спрашивать, там ребята профессионально с OpenGL работают. Хорошо, поищу информацию еще где-нибудь, может исходники добуду. Спасибо за помощь. |
Сообщ.
#6
,
|
|
|