На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Как создать куб в delphi 7 + OpenGL?
    Здравствуйте, пытаюсь выполнить этот урок https://thedelphi.ru/opengl/oles3.php. Только на OpenGl, без DGLUT который прикладывается к уроку. Для этого использую glVertex3f. Но почему-то вместо куба у меня вырисовывается белый прямоугольник на всю рабочую область, как сделать куб и отдалить его. Вот исходник.

    ExpandedWrap disabled
      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.
      Вот у меня тут что-то готовое валяется
      Прикреплённый файлПрикреплённый файлOpenGL_Cube.zip (53,57 Кбайт, скачиваний: 31)
        Да это подойдет работает, а как наложить текстуры?
          Это тебе лучше на форумах геймдеваа спрашивать, там ребята профессионально с OpenGL работают.
            Цитата Rouse_ @
            Это тебе лучше на форумах геймдеваа спрашивать, там ребята профессионально с OpenGL работают.

            Хорошо, поищу информацию еще где-нибудь, может исходники добуду. Спасибо за помощь.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0287 ]   [ 18 queries used ]   [ Generated: 27.04.24, 12:13 GMT ]