Берегись дьявольской дыры в киберпро..в;.??/”:?;/…………..
Введение
В свое время я здорово помучался, решая вопрос - каким же образом создатели игр ухитряются делать трехмерные персонажи двигающиеся в реальном времени. Я предположил, что части тела у персонажей отделены от основного тела, что позволяет независимо поворачивать и перемещать их. Знаете, в Direct3D даже есть понятие фрейма, фрейм - это основное тело, к нему прикрепляются другие тела. Когда фрейм движется, прикрепленные к нему объекты движутся вместе с ним, кроме того, прикрепленные объекты могут двигаться и самостоятельно не влияя на движение фрейма. Все это замечательно подходит для создания механических объектов и персонажей, но совершенно не годится для создания объектов живого мира. Для таких объектов характерна плавность линий и отсутствие изломов на местах стыков частей объекта. Создатели компьютерных игр замечательно решили эту проблему.
Как создается двумерная анимация? Рисуется несколько кадров движения, затем поледовательно выводятся на экран и таким образом создается иллюзия движения. То же самое происходит в современных трехмерных компьютерных играх. Создается несколько 3D моделей (сеток), характеризующих фазы движения персонажа в различные моменты времени, затем поледовательно выводятся на экран, создавая иллюзию движения. Возможно, это приводит к повышенному расходу оперативной памяти, поскольку все сетки желательно хранить в памяти, но зато значительно упрощается процесс программирования и, скорее всего, увеличивается скорость работы приложения.
Read more »
Filed in Графика by admin | Февраль 27, 2008 | No Comments
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение OpenGL расширений
Зависимости: OpenGL
Автор: Gua, gua@ukr.net, ICQ:141585495, Simferopol
Copyright: Gua
Дата: 18 июля 2002 г.
***************************************************** }
function GetOGLExtensions: string;
var
DC: HDC;
hrc: HGLRC;
{Установка формата пикселей}
procedure SetDCPixelFormat;
var
DC: HDC;
nPixelFormat: Integer;
pfd: TPixelFormatDescriptor;
begin
FillChar(pfd, SizeOf(pfd), 0);
nPixelFormat := ChoosePixelFormat(DC, @pfd);
SetPixelFormat(DC, nPixelFormat, @pfd);
end;
begin
DC := GetDC(0);
SetDCPixelFormat;
hrc := wglCreateContext(DC);
wglMakeCurrent(DC, hrc);
Result := StrPas(PChar(glGetString(GL_EXTENSIONS)));
wglMakeCurrent(0, 0);
wglDeleteContext(hrc);
ReleaseDC(0, DC);
DeleteDC(DC);
end;
Пример использования:
MessageDlg(GetOGLExtensions,mtInformation,[mbOK],0);
Filed in Графика by admin | Февраль 27, 2008 | No Comments
Райский сад. Всюду деревья с сочными плодами. Знаменитости прогуливаются. Ангелы всюду порхают. Музыка нежная. В общем, рай. Поднимается лифт, оттуда выползает окровавленный DOOM’ер с BFG в руках, оглядывается вокруг и орет: “ХA-A-A-A-A!!!! BONUS LEVEL!!!!!!!!”
Прежде всего, определим сначала, какие навыки нам нужны, многие из вас изучали или изучаете язык программирования Pascal, именно с его помощью мы попробуем написать несколько программ. Сейчас почти все игры разрабатываются для Windows, так что нам придётся работать со средой Delphi. Программы в среде Delphi (Delphi не язык программирования) пишутся на языке Object Pascal, специальном диалекте Паскаля. От языка Pascal этот диалект отличается тем, что он имеет большое количество дополнительных возможностей. Также вам следует уметь работать хотя бы с одним графическим редактором, хотя бы с Paint. В следующих статьях мы рассмотрим ряд других возможностей, например, как создать движущийся объект с помощью программы AutoCAD или как создать множество визуальных эффектов: тень, отражение. В данной статье мы рассмотрим несколько самых аспектов: как с помощью точек нарисовать простой движущийся объект, как управлять объектами с помощью клавиатуры.
Read more »
Filed in Графика by admin | Февраль 27, 2008 | No Comments
На кого рассчитана статья
Я рассчитываю на то, что вы знакомы с азами создания приложений в С++Builder или Delphi и совсем не знаете OpenGL.
Введение
OpenGL (Open Graphics Library) – популярная библиотека для работы с 3D графикой. Стандарт OpenGL появился в 1992 году благодаря компании Silicon Graphics и сейчас переживает годы своего самого бурного развития.
Чуть-чуть побольше узнать об OpenGL и о том, как с ним работать в VC, можно, почитав wat’а: http://www.gamedev.ru/coding/11203.shtml
Я хочу показать, как работать с этой библиотекой в таких популярных и, на мой взгляд, очень удобных средах разработки, как Delphi и С++Builder.
Read more »
Filed in Графика by admin | Февраль 27, 2008 | No Comments
Часть 1. Координаты и всё, что с ними связано
Системы координат
Рассматривая какой-либо трёхмерный объект, мы всегда определяем его положение и размеры относительно некоторой привычной, и удобной в настоящий момент системы координат, связанной с реальным миром. Такая исходная система координат в компьютерной графике является правосторонней и называется мировой системой координат. Для того, чтобы можно было изобразить объект на экране, его необходимо предварительно перевести (или преобразовать) в другую систему координат, которая связана с точкой наблюдения и носит название видовой системы координат. Эта система координат является левосторонней. И, наконец, любое трёхмерное изображение мы всегда рисуем на двумерном экране, который имеет свою экранную систему координат. (Этот абзац я списал у Ю.Тихомирова).
Read more »
Filed in Графика by admin | Февраль 27, 2008 | No Comments