Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Графика в 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 вся ветка

Форум: "Media";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.046 c
2-1129650821
Darkwing
2005-10-18 19:53
2005.11.13
Есть заполненная таблица данных, не могу создать индекс.


2-1129572587
~SaM~
2005-10-17 22:09
2005.11.13
А в паскале есть функции аналогичные дельфовским StrToInt и т.п.?


2-1129802515
Андрей__
2005-10-20 14:01
2005.11.13
DBLookUpComboBox


11-1109269615
rofl
2005-02-24 21:26
2005.11.13
KOLMediaPlayer SendCommand


2-1129784806
SMATMP
2005-10-20 09:06
2005.11.13
LoadFromFile





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский