![]() |
|
Модераторы: Rickert |
![]()
|
|
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 1 Всего: 5 |
Antialiasing.
Расскажу я про Antialiasing. Можно перевести как антиступенчатость. Так называемый артефакт, возникающий при рисовании линий. В виду дискретности экрана монитора, это получается в свою очередь благодаря тому, что экран разбит на элементы - пикселы. Когда на экране рисуется линия, она представляется в виде совокупности этих самых пикселов. В отличии от настоящего, непрерывного видения линии, мы видим ее разбитой на пиксели. Появляется эффект ступенчатости. Во многих случаях устранение ступенчатости (antialiaisng) реализуется при помощи сглаживания цветов, смазывания и добавления/удаления пикселов. --------------------
|
|||
|
||||
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 1 Всего: 5 |
Double buffering.(Двойная буферизация)
Когда на экране монитора формируется изображение частота обновления должна быть достаточно высокой, чтобы зритель не заметил прорисовки кадра (как там у нас очищается экран и рисуется новое изображение). Обычно частота должна быть больше чем 50 Гц, оптимальным является частота около 85 Гц. Откуда берется изображение, которое мы хотим вывести на экран? Наше изображение берется из специального буфера кадра. Если содержимое буфера всегда постоянно, т.е. мы на экране видим одну и ту же картинку, то все будет в порядке и мы спокойно наблюдаем нашу картину. Но если же содержимое буфера изменяется, то мы можем увидеть некоторе "дерганье" картинки, заторможенность и мерцание. Специально для решения этой проблемы было создан метод двойной буферизации. Представим себе,что у нас есть не один буфер, а два. Обычно их называют следующими именами: Front Buffer - рабочий; Back Buffer - фоновый. Рабоичй буфер - это тот, из которого происходит считывания данных, для отображение картинки непосредственно на монитор, а в фоновом буфере картинка формируется с помощью программы. По определенной команде от программы можно переключить эти буферы. Т.е. сделать рабочий буфер фоновым, а фоновый - рабочим. Таким образом мы сменили нашу картинку на новую (раньше она была фоновой), которую теперь выводим на монитор,а в теперешней фоновой(ранее она была рабочей) мы рисуем следующий кадр. Таким образом, каждый раз сменяя эти два буфера мы достигаем впечатляющего эффекта. Пропадает мерцание и дерганье. Работу Double buffering можно сравнить со следующйе общеизвестой вещичкой: Наверняка многие из нас смотрели в детстве мультики P.S. Стоит учесть тот факт, что двойная буферизация не решит проблемы со скростью формирования изображения, она уже зависит от ваших технический характеристик. --------------------
|
|||
|
||||
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 1 Всего: 5 |
BMP и BITBLT(битовая карта и ее отображение)
Структура данных, в которой сохраняется изображение называется битовой картой - Bitmap(сокр BMP). BMP обесечивает компактное хранение экранных образов, изорбажений. BMP - это просто массив байтов, в которых содержатся значения цвета экранных пикселей. Внутри массива пиксели хранятся слева направо и сверху вниз. Этот порядок хранения соответствует порядку хранения пикселей в видеопамяти и делает операцию отображения BMP на экране очень простой, с минимальными трудностями. Чтобы нарисовать саму картинку, битовую карту нужно перенести ее из опративной памяти в память видеокарты. Вот этот самый процесс переноса байтов из оперативной памяти в видеопамять называется BITBLT(bit block transfer). Далее видеокарта, оперируя этими байтам, строит изображение и выводит его на экран монитора. --------------------
|
|||
|
||||
| Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 2 Всего: 10 |
MIP-Mapping (Мип маппинг по русски
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: нет Всего: 8 |
Я конечно извиняюсь, но может пора уже приступить к конкретным практическим советам? Вот предположим (только предположим!), что я собираюсь сделать некую тупейшую стрелялку типа подошел-замочил. С чего я должен начать? Очевидно. модели должны быть составлены в среде трехмерного моделирования - Maya или 2D SNax. Как ими пользоваться? Как потпом оттуда экспортировать модели? А как насчет азов DirectX? Накладка текстур и т п. Последовательность действий, наконец. А от пустого теоретического трепа толку маловато будет.
-------------------- Поехали! |
|||
|
||||
| Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: 1 Всего: 5 |
Амортизатор
--------------------
|
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: нет Всего: 8 |
Я признаю, что это не просто. Но поскольку являюсь убежденным практиком, то считаю. что все познается в процессе. И что все эти термины можно по настоящему понять, только поработав ручками. Если вы с этим не согласны, можете удалить этот пост чтобы не засорять энциклопедию.
-------------------- Поехали! |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
Сначала надо придумать и описать концепт игры Потом написать дизайн-документ Потом спланировать работы Потом их выполнять |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 2 Всего: 165 |
Сбор материалов здесь.
Здесь обсуждение. Добавлено @ 03:05 Народ, а аббревиатуру какую сделаем? Есть варианты, типа: ЭНИ, но можно и по другому... --------------------
|
|||
|
||||
| MakcSheff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 2.1.2006 Репутация: нет Всего: нет |
Olone принялся было делать доброе дело - помогать новичкам, но что-то остановился.
Самый простой, хоть и трудоёмкий способ - это с нуля создавать 3D игру, и через строчку коментарить совои действия. Вот это будет самый наглядный пример для новичков. |
|||
|
||||
| Olone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 3.10.2004 Где: Лефортово, Москва Репутация: 1 Всего: 2 |
Привет всем и с Новым Годом!! С Рождеством!!!
Как пожитваете? Чтож я вижу дело пока застыло и попробую доделать начатую работу и наладить механизм ЭНИ. Я тут заново перечитал все сообщения и статьи, посмотрел Wiki сервер и остальное. (Кстати кто нибудь объясните мне что такое Wiki!) Так вот после прочтения понял что дело так не пойдет и нужны новые правила и принципы. Я думаю что надо попробовать написать сообща подобие общего дизайн документа, в независимости от жанра игры. Писать же код и комментировать каждую строку будет почти бесполезной тратой времени: во-первых код очень большой, во-вторых новичок должен учится решая задачи и исправляя ошибки, а не списывать чужой труд. Попытаюсь сам что нибудь накалякать. |
|||
|
||||
| Olone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 3.10.2004 Где: Лефортово, Москва Репутация: 1 Всего: 2 |
Я думаю наша задача найти обобщенную формулу для создания игры. Такую чтобы подходила и для шахмат и для экономической стратигии и др.
Я начертил что вроде простейшей схемы, и попытался описать по мере своих знаний, поправляйте! ![]() Я думаю любая игра состоит из следующих компонентов: Интерфейса Инициализирующего кода Движка и иногда вспомогательных утилит. Интерфейс игры включает в себя все что выводится на экран, кроме игрового процесса, то есть меню. Меню содержит функции сохранения/загрузки, управления настройками игры и неважно (титры и т.п.). Инициализирующий код выполняется в первую очередь при запуске игры. В этом отраывке кода игра проверяет наличие всех файлов необходимых для запуска, выгружает/загружает системные ресурсы, загружает в память файлы интерфейса, инициализирует Direct X/ OpenGL, проверяет совместимость оборудования. Движок есть сердце игры, самая сложная её часть отвечающая за весь игровой процесс. Я думаю Движок можно разделить на следующие части: Графический д-к, Физический д-к, Звуковой д-к, Д-к Искусственного Интеллекта. Графический движок - это часть кода отвечающая за загрузку моделей, текстур, фонов; обтягивание моделей тесктурами, выведением всего этого на экран, проигрывание видео, построение окружающего мира (ландшафта) и всего что связано с изображением. Физический движок представляет собой нечто вроде свода законов применимых для вашего мира. В этом участке кода описывается физические свойства мира и материала(сквозь какие стены можно проходить,а сквозь какие нет, как высоко персонаж прыгает и как меняется окружающее пространство), здесь описано что такое шаг, что такое выстрел, что такое пропасть и гора и как на нее забратся, почему по воде ходить нельзя, все элементарные вещи. Со звуковым движком я думаю понятно - здесь описывается алгоритм проигрывания звуков и музыки. Ничего больше и не скажешь. Движок ИИ - я выделил отдельно так как ИИ это основной фактор инетресности игры. В этом движке описываются принципы поведения противника, на основе свойств мира, описанного в физическом движке. Как понятно здесь говорится кто враг, кто друг, кому вы нравитесь, а кому нет. Связывающий код опеспенчивает контакт между частями движка и и их взаимообмену данными. Например чтобы создать кузнечика-врага, нужно чтобы Графич. движок создал модель и обтянул текстурами, затем Движок ИИ присвоил ему свойство высоко прыгать, физ. движок это свойство реализовал, затем разместил кузнечика где надо, указал звуковому движку когдпанадо проигрывать звук прыжка, и потом Графич. движок выводит все на экран. Связ. код помогает движкам общатся друг с другом. Не много запутано получилось, но все же.Конечно это все происходит не совсем так, но в общем я думаю это верно. Все данные о расположении, свойствах, материале объектов находятся в определенных файлах, при инициализации самаго движка, она считывает инфу из этих файлов и посылает как инструкции к "отделам" движка, в которых уже и кипит работа. Знающие мира сего чего не так поправьте Добавлено @ 21:15 Чего-то картинка в форуме не октрывается. Она здесь |
|||
|
||||
| Гаара |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.1.2006 Репутация: нет Всего: нет |
Альфа-канал - характеристика прозрачности. Анимация - последовательность кадров, которые воспринимаются как кино. AGP - локальная шина(порт) для омена информацией между видеоадаптером, процессором и операт. памятью. API - интерфейс для разработки прикладных программ. Битовый массив, а-ля bitmap - растр. Векторная графика - создание изображений на основе векторного описания отдельных объектов. Окно :-) - фрагмент плоскости графического вывода. Видеоадаптер :-) - устройства, с помощью которого непосредственно формируется изображение на экране монитора. Создание изображения осуществляется на основе данных, которые присылаются из процессора и памяти. Воксель - элемент объемного растра. Гамма-коррекция - компенсация нелинейности функции яркости для экранов дисплеев телевизионного типа. GUI - набор графических элементов предусмотренных для пользователей. Гуро-метод - способ хакрашивания граней трехмерных объектов, который использует интерполяцию интенсивностей отражения света в вершинах граней. Дизеринг - иллюзия оттенка цвета, созданная смешением близко расположенных точек различных цветов DirectX - Подсистема графического вывода Windows'a Direct3D - API для работы с трехмерной графикой GDI - подсистема Windows. Context - указание для места графического вывода. В основном ассоциируется с поверхностью отображения и структуры данных. CMYK - цветовая модель Палитра - набор цветов для определенного изображения Пиксел - элемент растра. Mipmapping - сохранение нескольких вариантов текстуры для различных ракурсов, масштабов показа. Полигон - многоугольник, фигура которая ограничивается контуром связанных отрезков прямых. Растровое изображение - изображение созданное множеством близко расположенных точек различного цвета(пикселов). Рендеринг - процесс отображения инорфмации в граф.виде. Спрайт - растровое изображение отдельного объекта рисунка, которое сохраняется в битовом массиве. Часто используются в анимации. Тексел - элемент растровой текстуры. Текстура - стиль закрашивания для объектов(3D) игрового мира. Или проще - изображение на объекте. Хоть и не совсем правильно. Фонга-метод - способ закрашивания граней трехмерных объектов. Основывается на интерполяции векторов нормалей в вершинах. Фракталы - объекты сложной формы. Шрифт - ммм... набор знаков символов для представления текста. Разновидности: Растровый - набор растровых изображений символов; Векторный - использует описание символов в векторной форме; TrueType - формат шрифтов Windows'a. Разновидность векторого шрифта. Z-буфер - массив в котором сохраняются значения расстояния до точки наблюдения(глубины) для каждого пиксела растрового изображения. Зачастую используется для удаления невидимых точек. Это сообщение отредактировал(а) Гаара - 13.1.2006, 18:03 |
||||
|
|||||
| Maniac |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 27.2.2006 Репутация: 1 Всего: 1 |
Почему бы не написать одну базу (на делфи + конвентор в разные форматы) и объединить весь материал в одно место, а то не очень приятно бегать по разным местам форума. Дополнения оставлять на форуме, а пользователям заходить на раздел сайта (вне форума) и читать нужное. Главное - это формат базы знаний, выводить информацию можно разными методами (непосредственно в HTML на сайте через PHP, либо через еxe файл на делфи).
базу можно создавать в виде текстовых файлов с сылками на рисунки как в HTML Как идея? Это сообщение отредактировал(а) Maniac - 3.4.2006, 01:41 |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Maniac, возьмёшься ?..
-------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |