*author: sla8a#13#10date: 04.08.2014#13#10version: 1.2#13#10forum: http://forum.hiasm.com/forum.html?q=3&p=270548 Make(delphi) ver(4.04 build 185) Add(InfoTip,10266483,574,434) { Info=#44:Ссылка на тему форума с выложенными уроками:| Font=[MS Sans Serif,8,1,0,1] Transparent=1 HAlign=0 Width=309 Height=46 Margin=2 } Add(InfoTip,8062808,574,294) { Info=#70:Перед преобразованием матрицы её нужно сохранить и после восстановить.|55:doPushMatrix сохраняет состояние матрицы преобразований|60:doPopMatrix восстанавливает состояние матрицы преобразований|105:Значения свойства элемента (ClearColor и т.д.) при сохранении и восстановлении матрицы значения не имеют.| Frame=2 Transparent=1 HAlign=0 Width=266 Height=130 Margin=5 } Add(Shape,15061846,301,154) { Width=259 Height=221 Transparent=0 } Add(InfoTip,3138422,301,154) { Info=#15:Очистка буфера | Frame=2 Transparent=1 Width=259 Height=20 Margin=3 } Add(MainForm,2953706,336,49) { Caption="OpenGL" Point(Handle) } Add(InfoTip,9639906,14,7) { Info=#105: Перед началом работы с уроками, по ознакомлению с элементами из вкладки OpenGL, нужно знать следующее:|0:|85: Выводить рисунок OpenGL можно на любой интерфейсный элемент, имеющий точку Handle.|0:|141: Перед тем как вывести рисунок на экран (нарисовать на элементе), он вначале формируется в буфере (он же буфер кадра или буфер накопления).|193: Буфер это участок в памяти. Подробней о буфере, точнее о буферах, так как их несколько (буфер кадра, буфер глубины, буфер цвета, буфер трафарета, буфер аккумуляции) будет в отдельном уроке.|0:|272: Матрица преобразований отвечает за расположения вашего объекта на экране. Изменить матрицу преобразований можно с помощью элементов из вкладки OpenGL\Преобразования. Перед изменением матрицы её нужно сохранить, чтоб после восстановить для возврата в исходную позицию.|182: По матрице будет не один урок. Желательно почитать по этой теме дополнительную информацию, так как понимание матрицы преобразования является очень важным для работы с OpenGL. |0:|282: Флаг может быть установлен или сброшен (или проще говоря включен\выключен). В зависимости от того, какой флаг установлен в момент рисования объекта к нему будет применены определенные настройки. К примеру, установив флаг освещения, к объекту будут применены настройки освещения.|3: |254: Вершина (точка) имеет координату (X,Y,Z) и является единицей информации из которой состоят другие объекты (линии, полигоны). Не путайте вершину с пикселем (пиксель - это самый маленький видимый элемент, который монитор может поместить на свой экран). |0:|211: Полигон это закрытая область, определенная вершинами. Ребра полигона не должны пересекаться. Нет максимального ограничения по количеству вершин, из которых состоит полигон, минимум три (треугольный полигон).|2: | Frame=2 Transparent=1 HAlign=0 Width=281 Height=655 Margin=5 } Add(GL_GTools,2982690,434,203) { @Hint=#8:очистить| Point(doClear) AddHint(-21,-22,60,13,@Hint) } Add(GL_Main,5030602,336,98) { link(Handle,2953706:Handle,[]) } Add(Label,306922,420,49) { Left=685 Top=40 Point(Handle) } Add(GL_Main,7067454,427,98) { link(Handle,306922:Handle,[]) } Add(ChildPanelEx,5128189,511,49) { } BEGIN_SDK Add(EditMultiEx,2100228,21,21) { VarCount=#6:Handle| link(Handle,7715736:Handle,[(27,169)(97,169)]) } Add(Panel,7715736,91,84) { Left=35 Top=105 Point(Handle) } END_SDK Add(GL_Main,2184845,511,98) { link(Handle,5128189:Handle,[]) } Add(InfoTip,3248894,301,7) { Info=#72:Для вывода OpenGL подключаемся к интерфейсному элементу по точке Handle.| Frame=2 Transparent=1 Width=257 Margin=2 } Add(LineBreakEx,7446613,315,203) { Caption="очистить буфер" Type=1 link(OnEvent,2982690:doClear,[]) } Add(GL_Options,3749185,448,441) { @Hint=#14:флаг освещения| AddHint(-47,-25,100,13,@Hint) } Add(InfoTip,5786998,301,245) { Info=#68: В свойствах элемента устанавливается, какие буферы будут очищены:|24:ClearColor= буфера цвета|26:ClearDepth= буфера глубины|30:ClearStencil= буфера трафарета|166: Буфер трафарета можно не очищать (ClearStencil = False), до тех пор пока не будете работать с трафаретом (о трафарете будет отдельный урок и скорее всего не один).| Frame=2 Transparent=1 HAlign=0 Width=259 Height=130 Margin=5 } Add(Shape,13949255,301,7) { Width=257 Height=137 Transparent=0 } Add(Shape,15028707,301,385) { Width=259 Height=102 Transparent=0 } Add(LineBreakEx,3146595,322,441) { Caption="установить флаг" Type=1 link(OnEvent,3749185:doEnabled,[]) } Add(LineBreakEx,11729703,322,462) { Caption="сбросить флаг" Type=1 link(OnEvent,3749185:doDisabled,[(440,468)(440,454)]) } Add(InfoTip,13132622,301,385) { Info=#25:Изменение флага состояния| Frame=2 Transparent=1 Width=259 Height=20 Margin=3 } Add(GL_Rotate,6525618,609,56) { @Hint=#7:поворот| AddHint(-19,-20,56,13,@Hint) } Add(Gl_Translate,6869214,686,56) { @Hint=#7:перенос| AddHint(-13,-22,57,13,@Hint) } Add(Gl_Scale,16018875,770,56) { @Hint=#6:маштаб| AddHint(-16,-22,54,13,@Hint) } Add(GL_GTools,10456095,714,203) { @Hint=#9:сохранить| Point(doPushMatrix) AddHint(-24,-17,67,13,@Hint) } Add(GL_GTools,9353849,714,259) { @Hint=#12:восстановить| Point(doPopMatrix) AddHint(-30,-17,85,13,@Hint) } Add(Shape,14426673,574,7) { Width=266 Height=417 Transparent=0 } Add(InfoTip,2128012,574,7) { Info=#22:Матрица преобразования| Frame=2 Transparent=1 Width=266 Height=20 Margin=3 } Add(InfoTip,10820842,574,98) { Info=#190:Применив один из элементов преобразования, вы можете повернуть, перенести или изменить масштаб. При этом изменится матрица преобразования и объект будет рисоваться с учетом текущей матрицы. |0:|0:| Frame=2 Transparent=1 HAlign=0 Width=266 Height=81 Margin=5 } Add(LineBreakEx,2334484,581,203) { Caption="сохранить" Type=1 link(OnEvent,10456095:doPushMatrix,[]) } Add(LineBreakEx,5109664,581,259) { Caption="восстановить" Type=1 link(OnEvent,9353849:doPopMatrix,[]) } Add(InfoTip,15628685,581,455) { Info=#46:http://forum.hiasm.com/forum.html?q=3&p=270548| Font=[MS Sans Serif,8,5,16711680,1] Frame=1 Transparent=1 HAlign=0 Width=288 Height=18 } Add(Shape,2918232,26,402) { Width=35 Height=15 Transparent=0 PColor=128 PWidth=2 } Add(Shape,16344131,26,233) { Width=137 Height=15 Transparent=0 PColor=128 PWidth=2 } Add(Shape,8317819,26,154) { Width=37 Height=17 Transparent=0 PColor=128 PWidth=2 } Add(Shape,78027,26,493) { Width=50 Height=15 Transparent=0 PColor=128 PWidth=2 } Add(Shape,13402460,26,584) { Width=49 Height=15 Transparent=0 PColor=128 PWidth=2 }