Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Графика в OpenGL   Найти похожие ветки 

 
Sash1988 ©   (2005-03-07 23:25) [0]

Я пытаюсь составить простейшую программу в OpenGL - нарисовать точку - и не могу понять в чём у меня ошибка???????

glViewPort(0,0,500,500);
glpointsize(20);
glcolor3f(100,0,0);
glBegin(gl_points);
glvertex2f(1,1);
glEnd;
swapbuffers(canvas.Handle);


 
XProger ©   (2005-03-08 00:15) [1]

glpointsize(8);


 
AlterEgo of WondeRu ©   (2005-03-08 12:07) [2]

Sash1988 ©   (07.03.05 23:25)
glcolor3f(100,0,0);


на всякий случай

glColor3b(100, 0, 0);


 
XProger ©   (2005-03-08 16:59) [3]

Или :)
glColor4ub(100, 0, 0, 255);
тож на всякий


 
Sash1988 ©   (2005-03-09 00:41) [4]

Ничего не изменилось, я не могу понять где и как эта точка должна выглядеть, он либо не выводит его на форму либо я что-то неправильно написал, но в коде ошибок не должно быть, может процидуру вывода как-нибудь заменить можно?


 
марсианин ©   (2005-03-09 01:21) [5]

ты там точку ищешь?
glvertex2f(1,1); - это верхний правый угол :)

swapbuffers(canvas.Handle); - эта строчка не нравится.. дело в том, что canvas.Handle может вернуть хоть правильный dc, пригодный для рисования.. но другой, не тот, что использовался при инициализации ОпенГл..

и дай посмотреть весь код инициализаци...


 
WondeRu ©   (2005-03-09 08:53) [6]

марсианин ©   (09.03.05 1:21) [5]
угу, лучше взять HDC, а точку попробуй нарисовать в (0, 0)


 
Sash1988 ©   (2005-03-09 21:58) [7]

unit OOpennGL;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, openGL, ExtCtrls;

type
 TForm1 = class(TForm)
   procedure FormKeyUp(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
//canvas.Ellipse(200,200,100,100);
glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
glViewPort(0,0,500,500);
glpointsize(8);
glcolor3D(100,0,0);
glBegin(gl_points);
glvertex2f(0,0);
glEnd;
swapbuffers(canvas.handle);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
canvas.Brush.Color:=clgreen;
end;

end.


 
Sash1988 ©   (2005-03-09 22:00) [8]

Я не пойму, на что надо изменить "canvas.handle" ?????


 
XProger ©   (2005-03-09 23:16) [9]

Sash1988, если это вся твоя программа то прими мои глубочайшие соболезнования...
Во-первых, где у тебя инициализация OpenGL для данного приложения?
Во-вторых, а где ты настраиваешь матрицу проекции и матрицу вида?

Лучше бы взял пример вращаючегося кубика и разобрал по частям, прежде чем задавать вопросы ответы на которые даже и не пытаешься искать сам...


 
Sash1988 ©   (2005-03-10 23:49) [10]

XProger спасибо, не подскажешь где ещё можно взять немудрёного вспомогательного материала


 
WondeRu ©   (2005-03-11 08:28) [11]

на сайте www.podgoretsky.com есть книга М.Краснова "OpenGL.Графика в проектах Delphi"... а лучше купи ее в магазине (как сделал я), она порядка 90 рублей стоит всего. Там куча примеров + поддержка автора по мылу!


 
XProger ©   (2005-03-12 04:32) [12]

http://XProger.narod.ru/Files/OpenGL_book.rar
http://XProger.narod.ru/Files/Disk.rar


 
Sash1988 ©   (2005-03-24 23:47) [13]

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


 
Sash1988 ©   (2005-03-25 01:23) [14]

XPoger спасибо, я нашёл тот пример который искал, т.е. полный вид программы, но теперь у меня другой вопрос, при создании проэкта Делфи автоматически создаёт форму стандартного типа, ак мне настроить её так что бы она создавала формы для ОпенЖЛ, поскольку, если я не ошибаюсь, на обычной форме с ОпенЖл работать трудно, а создавать другую, потом удалять старую, удалять  паз, немного нудно, и почему я могу создавать формы для ЖЛ только когда всю шапку оформлю???


 
XProger ©   (2005-03-25 18:56) [15]

Нет никакой разницы на какой форме что делать. Также нет GL форм.
Есть Win API посредством которого можно создать окно (форму). Но делается всё ручками. В итоге твоя прога может занимать около 20 кб.
Чтобы удалить VCL форму:
Project - Remove from project...
там выбираешь всё и удаляешь. Фора исчезнет. Затем жми на Project - View Source. И удали всё не нужное из кода, получив при этом:

program Project1;

uses
Windows, Messages;

{$R *.res}

begin

end.

Теперь можешь сохранять проект и приступать к работе.
А создание окон и инициализация OpenGL для этого случая хорошо продемонстрировано во всех примерах Яна Хорна (светлая память ему) http://www.sulaco.co.za/


 
П7   (2005-06-23 19:54) [16]

А не проще ли создавать консольную прорамму, а потом удалить из неё всео одну строчку?



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.07 c
2-1129975111
Ugrael
2005-10-22 13:58
2005.11.13
Помогите с QuickReport 3,пожалуйста.


2-1129575723
ctokas
2005-10-17 23:02
2005.11.13
90 DEC в 90HEX


14-1130020587
kaif
2005-10-23 02:36
2005.11.13
Высококачественный перевод на английский


14-1129816274
flipper
2005-10-20 17:51
2005.11.13
Никто не может зайти в компик (хр)


4-1126619198
Erik1
2005-09-13 17:46
2005.11.13
Как получить статус процесса?