unit unAbout;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls{, jpeg},shellapi, ComCtrls;

type
  TfrmAbout = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Image2: TImage;
    Label7: TLabel;
    im_bru: TImage;
    lb_list: TListBox;
    Label8: TLabel;
    Label9: TLabel;
    Button1: TButton;
    re_what: TMemo;
    procedure Label5Click(Sender: TObject);
    procedure Label6Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure lb_listClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
//  IPicture=interface(IUnknown)
//  ['{7BF80980-BF32-101A-8BBB-00AA00300CAB}']
//
//  end;
var
  frmAbout: TfrmAbout;
implementation
const arWhat:array[0..23] of string=(
'Без его замечательной книги по OpenGL и 3D-графике я просто не смог бы '+
'запрограммировать прорисовку моделей.'#13#10#13#10'ЦИТАТА:'#13#10+
'"Такой способ создания полноэкранного окна работает для '+
'большинства графических карт, но я должен предупредить, '+
'что на некоторых картах он всё же не срабатывает, т.е. '+
'окно не разворачивается на весь экран."',

'Его статья об устройстве MDL-файлов положила начало созданию MdlVis.'+
#13#10#13#10'ЦИТАТА:'#13#10+
'Меш - это, условно говоря, собрание полигонов (треугольников). '+
'Они могут быть соединены или не соединены между собой, но '+
'они считаются единым целым. Это означает, что у них один на '+
'всех материал и ещё кое-что. Звучит непонятно, но я надеюсь '+
'из дальнейшего текста всё станет ясно.',

'Он создал очень подробное и развёрнутое описание MDX и MDL-форматов. '+
'Я очень много почерпнул именно оттуда.'+#13#10#13#10'ЦИТАТА:'#13#10+
'The four values listed above GlobalSeqId are the LineTypes for '+
'the animation. GlobalSeqId is only shown if its value is not '+
'0xFFFFFFFF; And InTan and OutTan values are only '+
'listed if the LineType is Hermite or Bezier.',

'Единственное известное мне описание форматов WMO, M2 (WoW-модели) и BLP2 '+
'создано им. Жаль, что его имя осталось неизвестным.'+
#13#10#13#10'ЦИТАТА:'#13#10+
'Every model has four of these, at 0x2C bytes each. '+
'I''m not sure if it is LOD because each one of them has '+
'the same amount of vertices for all four data sets. (???)'+
' First I thought this might be different vertex orderings '+
'from different views, to ease polygon sorting for '+
'transparent faces, but that''s not it either. Hmm.',

'При работе с 3D-графикой без хорошей математической подготовки не '+
'обойтись. Поэтому автор учебника по высшей математике '+
'получает вполне заслуженную благодарность.'#13#10#13#10+
'ЦИТАТА:'#13#10+
'Результатом перемножения двух векторов может быть не '+
'только скаляр, но и вектор, который может умножаться на '+
'третий вектор.',

'Автор статьи "Кватернионы в программировании игр". В моделях War '+
'все повороты представлены в виде кватернионов, а эта '+
'статья содержит все необходимые алгоритмы для работы с ними.'+
#13#10#13#10'ЦИТАТА:'#13#10+
'Одним из наиболее полезных свойств кватернионов является '+
'достижение гладкой анимации при интерполяции. Рассмотрим '+
'интерполяцию между двумя кватернионами, которые задают '+
'вращение.',

'Автор статьи, посвящённой скелетной анимации. Без этой статьи '+
'редактора анимаций не было бы даже в проекте.'#13#10#13#10+
'ЦИТАТА:'#13#10+
'Все просто: для каждого joint''а строим относительную '+
'матрицу поворота, а затем, используя ее, вектор '+
'относительного перемещения и родительскую матрицу '+
'преобразований строим текущую матрицу трансформаций.',

'Один из "тонких моментов" рендеринга - сортировка примитивов. '+
'Скоростной алгоритм такой сортировки я взял из сборника алгоритмов, '+
'написанного этими людьми.'#13#10#13#10+'ЦИТАТА:'#13#10+
'Идея, лежащая в основе этого метода сортировки, заключается '+
'в том, что данные предварительно сортируются в блоках, и '+
'затем число блоков уменьшается до тех пор, пока все данные '+
'не окажутся в одном блоке.',

'Благодаря их замечательной утилите UPX размер MdlVis до сих пор '+
'менее 0,5Мб.',

'А ссылку на UPX мне дал именно Atom1. Кроме того, он активно '+
'участвовал в тестировании бета-версии редактора. Сейчас Atom1 почему-то '+
'перестал попадаться мне на форумах. Возможно, у него поменялся ник.',

'Он очень долго перерывал всю сеть в поисках необходимой документации '+
'по форматам. И в конце концов нашёл всё необходимое.',

'Очень активный пользователь MdlVis. Выдвинул массу ценных идей, '+
'позволивших обогатить редактор полезными инструментами.'#13#10#13#10+
'ЦИТАТА:'#13#10+
'отлаживать ошибки в такой cross-reference структуре, как у тебя,'+
' просто нереально, однако передача данных корню не требуется'+
'(это плюс), что облегчает обмен данными между структурами.',

'Ещё один отличный модельщик. Предложил простую и удобную схему '+
'переименования WoW-анимаций для War''а и'+
' названия фрагментов моделей персонажей.',

'Один из лучших тестеров, обнаруживший фантастическое количество глюков. '+
'А самое главное, что он умеет правильно эти глюки описывать. '+
'Остальные же зачастую присылают посты вида: "Аааа! MdlVis глючит! '+
'Чо за...?!", и при этом хотят ещё, чтобы я этот глюк тут же исправил. '+
'Более того, он предоставил мне ряд моделей для тестирования конвертера.',

'Нашёл множество глюков - особенно связанных с WoW-конвертером '+
'и цифровой клавиатурой. Выдвинул ряд оригинальных идей - '+
'например, идею счётчика полигонов.',

'Ещё один активный бета-тестер. Благодаря ему интерфейс программы '+
'стал значительно проще.',

'Выдвинул идею алгоритма, увеличивающего сжимаемость MDX-моделей. '+
'Сейчас эта идея реализована в Оптимизаторе.',

'Активно помогал проекту советами и сообщениями об ошибках. '+
'В последнее время его активность, к сожалению, снизилась.',

'Активно включился в поиск глюков MdlVis. Участвует в выборе'+
' стратегии дальнейшего развития редактора.',

'Откликнулся на просьбу поделиться моделями.',

'Первый выдвинул идею добавления конвертера моделей WoW в MdlVis.',

'Откликнулся на просьбу поделиться моделями.',

'Без разработанного ими языка программирования Delphi '+
'мне пришлось бы писать MdlVis на ассемблере.',

'Если бы не их игры WarcraftIII и WoW, программы WorldEditor и '+
'Art Tools, не было бы смысла писать MdlVis.'#13#10#13#10+
'ЦИТАТА:'#13#10+
'..."черного списка" Департамента Торговли США. Устанавливая '+
'Программу, вы подтверждаете и гарантируете, что не '+
'находитесь на территории одной из таких стран, не являетесь'+
' ее гражданином или подданным, а также не состоите ни в '+
'одном из перечисленных списков.'
);
{$R *.DFM}

procedure TfrmAbout.Label5Click(Sender: TObject);
begin
 ShellExecute(frmAbout.handle,'open','http://www.xgm.ru',nil,nil,SW_NORMAL);
end;

procedure TfrmAbout.Label6Click(Sender: TObject);
begin
 ShellExecute(frmAbout.handle,'open','http://www.blizzard.ru',nil,nil,SW_NORMAL);
end;

procedure TfrmAbout.FormCreate(Sender: TObject);
begin
 lb_list.ItemIndex:=0;   
 lb_listClick(Sender);
end;

procedure TfrmAbout.Button1Click(Sender: TObject);
begin
 SendMessage(frmAbout.Handle,WM_SYSCOMMAND,SC_CLOSE,0);
end;

procedure TfrmAbout.lb_listClick(Sender: TObject);
begin
 if lb_list.ItemIndex>=0 then
    re_what.Lines.text:=arWhat[lb_list.ItemIndex];
end;

end.
