Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Можт хватит? | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Можт хватит?»
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Я ,конечно, согласен что в споре рождается истина, и большинство топов здесь к месту, НО не пора ли централизованно заняться Игрой Мечты.
Короче - я предлагаю создать в рамках этой конференции несколько FAQ - по DX,GL,3D чтобы, наконец, такие чайники как я, которые ваще ничё не понимают, смогли задать знающим людям вопросы - которые помогут сдвинуть с места наш Народный Проект "Игра Мечты". Хы...
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 12:32 15-09-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
Вот они, лучшие Faq'и:
ftp://download.nvidia.com/developer/SDK/8.0/NVIDIA_SDK_8_0_0802_1720.exe

ссылка

Улыбка
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 00:40 16-09-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
2Dusk
THANKS!!!! Улыбка
Да е у меня DX9SDK(full),DX8,OGL офиц.руководство в 2 т. от SGI и набл.совета по архитектуре... Гы-гы
У меня др вопрос : Почему OGL dll из WinXP Pro SP1 Не понимает АРВ расширения - и где взять последние версии OGL (dll v1.4 вместе с .h & .lib) Расстроен
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 21:38 24-09-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
По DirectX я мог бы подсказать несколько моментов, OGL не знаю.
Вот тут http://www.gamedev.ru/ есть знающие люди, спрашивай там Улыбка
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 09:51 26-09-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Харашо! Улыбка
Тады DX:
Вопрос простой:
Хто такие шейдеры, нафиг они нужны, чем отличаются Vertex от Pixel ( Для меня нужно разжевать - я ж чайник Улыбка )
И ищо - чё такое QUANTERNION - вектор чёли Расстроен , а он нафиг ?
СПАСИБА заранее Гы-гы
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 14:37 26-09-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
himem :
Харашо! Улыбка
Тады DX:
Вопрос простой:
Хто такие шейдеры, нафиг они нужны, чем отличаются Vertex от Pixel ( Для меня нужно разжевать - я ж чайник Улыбка )
И ищо - чё такое QUANTERNION - вектор чёли Расстроен , а он нафиг ?
СПАСИБА заранее Гы-гы

Попробую объяснить в комплексе базовые моменты организации программирования 3D-графики в применении к DirectX9.
Именно базовые, самый минимум, чтобы можно было вникнуть в суть дела.
Пространство. Есть такое понятие - нормированный базис. т.е. оси X, Y, Z, каждая из которых перпендикулярна двум другим.
X: _11, _12, _13
Y: _21, _22, _23
Z: _31, _32, _33
С одной стороны, это три вектора, с другой - матрица 3x3. Добавив позицию P: _41, _42, _43 - получим матрицу 4x3.
Именно эти матрицы и использует DirectX, для удобства они размером 4x4.
DX использует - матрицу игрока - т.е. положение игрока и его базис. - это View Matrix
У каждого объекта также есть своя матрица - матрица мира объекта.Т.е. они как бы позволяют определить как повернут игрок и как повернуты
объекты в мировом пространстве.
Матрицы удобны тем, что очень легко можно переходить из одной системы(СК) координат в другую. Транспонированая матрица - матрица, у которой строки поменяны со столбцами. Переход из одной СК в другую - просто перемножение координат на обычную/транспонированную матрицу.
Проекционная матрица - экран монитора плоский, а пространство трехмерное. Вот эта матрица проецирует объекты на экран. Состоит из комбинации соотношений ширины разрешения к высоте, углов frustum'а (размеры окна, в которое игрок смотрит в пространство) и т.п.
Каждый объект преобразуется следующим образом: WORLD*VIEW*PROJ - т.е. перемножением трех матриц,
(базис объекта + позиция)*(базис игрока + позиция)*проекция на экран.
Теперь о объектах - 3D-модели в DirectX состоят из треугольников. (N-patch и RT-patch касаться не буду). Так вот, в памяти хранится набор треугольников.
Говоря конкретнее, хранятся вершины. В треугольнике три вершины - вот по три вершины они и извлекаются оттуда DirectX'ом, когда отправляются на прорисовку(Рендер). Теперь рассмтрим случай:
A----B
| / |
C--- D
Есть два треугольника - ABC и BCD. Вершины хранятся последовательно, т.е. по идее мы должны хранить A, B, C, B, C, D.
Т.е. вершину B и C мы храним дважды - это неудобно, поэтому ввели индексы. Вместо того, чтобы хранить вершины ^^^- вот так, мы создаем сразу два массива, один для вершин, а другой для их индексов. Присвоим A = 0, B = 1, C = 2, D = 3. И два треугольника в памяти будут хранится так:
вершины: A, B, C, D
индексы: 0,1,2,1,2,3
Индексы занимают ГОРАЗДО меньше памяти, чем вершины, тем самым работая с индексами, уменьшается количество передаваемых данных -> увеличивается скорость + уменьшаются размеры данных.
Теперь пару слов о вершине. Вершина - это не просто набор координат. Она может хранить самую разную информацию. Тип информации, которую хранит вершина, описывают две структуры - либо одна(FVF), либо другая, более гибкая(FVF declaration).
Например:
x,y,z - позиция
nx,ny,nz - вектор нормали
u,v - координаты текстуры
Итак, когда мы посылаем на прорисовку 3D-модель, мы задаем буфер вершин, буфер индексов, + указываем, что в вершине вообще хранится.
Буфер индексов можно не указывать, но это медленнее. Соответственно данным вершины устанавливаем некоторые другие параметры. Например если вершина хранит текстурные координаты, надо установить и саму текстуру.
В итоге, модель разбивается на треугольники, те на вершины и все это посылатся на видеокарту.
Видеокарта может работать в двух режимах - Fixed function pipeline и Programmable pipeline.
Fixed function pipeline - имеет набор заранее определенных действий, которые можно произвести с данными. Т.е. мы выбираем, что сделать с данными из ограниченного списка возможных действий.
Programmable pipeline - мы сами определяем действия, которые выполняет видеокарта. - Подразделяется на вершинную pipeline и пиксельную pipeline.
Вершинная pipeline - это Vertex Shaders.- специальные программы для видеокарты. Эта программа выполняется на каждом треугольнике. В ней мы получаем все данные вершины, как они хранятся в памяти, + матрицы трансформации. Причем не обязательно задавать сразу единую матрицу World*View*Proj. Мы можем послать матрицы по отдельности. И работать в каждом из пространств - в World, World*View, World*View*Proj. Мы можем сместить вершину, и она будет находиться уже в другом месте. Мы можем менять данные вершины, например текстурные координаты, и текстура "поползет" ,можем рассчитать не вектор падения света, а вектор отражения (бликовая модель освещения). Т.е. практически полная свобода, ограниченная лишь нашей фантазией.
Пиксельная pipeline - это Pixel Shaders. - также специальные программы для видеокарты. Но они уже работают не с вершинами, а конкретно с пикселями на экране. Вот смотрим:
A
| \
| \
B-----------C
После выполнения вершинного шейдера на экран проецируется треугольник в том виде, в каком мы его видим. Мы имеем три конкретные вершины с данными,
но пространство внутри треугольника ещё не заполнено. Вот этим и занимается пиксельный шейдер. Он принимает данные из вершинного шейдера, на основании их извлекает из текстуры конкретное значение цвета. И тут мы можем делать с цветом все, что хотим, можем что-то добавить, отнять. А ведь текстура
может быть не одна. И ведь вовсе не обязательно извлеченный цвет из текстуры понимать именно как цвет, ведь мы имеем всего лишь цифры. Заложив заранее
в текстуру/ы свои данные, мы можем применять их для изменения цвета каждого пикселя на экране, да ещё и с учетом данных из вершинного шейдера тем способом, каким мы сами захотим.
Programmable pipeline дает огромную гибкость, не ограниченную "набором" действий.
Следует учитывать - что мы можем изменять геометрию и цвета того, что мы видим, без их изменения в основной памяти, а следовательно и без участия основного процессора! Это дает огромный плюс в скорости. Но также надо обратить внимание, что в этом случае мы не можем работать например с видимой геометрией, если она была изменена. Например для просчета попаданий по треугольникам. В последнем случае можно просчитывать основным процессором "упрощенную" модель треугольников, но эти аспекты надо учитывать.
Quaternion - представь себе плоскость, и перпендикуляр к этой плоскости. Пусть перпендикуляр - это стержень от ручки, а плоскость - лист бумаги. Воткнув стержень в бумагу, ты крутишь его ладонями - крутится и плоскость. Так вот, quaternion - это и есть стержень от ручки. Другими словами, альтернатива матрицам.
Или это просто вектор - с координатами XYZ, если вектор единичный, то XYZ - представляют собой косинусы углов с осями основного базиса.
Вот, это был самый наименьший минимум понятий и представлений о DirectX9. Улыбка
    Добавлено: 01:48 27-09-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Ага! Хы...
А шадеры куда загружаются - в основную память или в видео? И, главное когда и как? Улыбка
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 23:23 27-09-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
Смотри в SDK:
D3DXAssembleShader***
IDirect3DDevice9::SetVertexShader
IDirect3DDevice9::SetPixelShader
Там все есть Улыбка
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 23:34 27-09-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Спасиба! Подмигиваю
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 00:01 28-09-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
2Dusk
А чё такое CUBEMAPS?
И какой смысл использования на сфере 6 текстур( как стороны куба) вместо одной (напр. 1024Х512). Как преобразовать?
Или это разные вещи?
Пожалста также разжёванно - я ж чайник Улыбка
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 13:49 30-09-2004   
Champion
 146 EGP


Репутация: 19
Сообщения: 337
Откуда: Саратов
Зарегистрирован: 16.04.2004
И что, при программировании 3D каждый раз нырять с головой в эти дебри?
Может есть какие языки программирования высокого уровня, позволяющие не вдаваться в подробности?
_________________
Не всё так просто, как на самом деле...
    Добавлено: 11:18 01-10-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
2Champion:
Вот ты такой язык и напиши:
Game:= TGame.Create(SUPER_MEGA_COOL_SPACE_SIM);
Game.Run;
Game.Close;
Ой, не могу!.. Ой, не могу!.. Ой, не могу!..
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 12:26 01-10-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
Цитата:
А чё такое CUBEMAPS

CUBEMAPS - это для энвайромента, вкупе с SHEREMAPS.
Энвайромент - это отражение.
Задаешь такую текстуру, и с определенной прозрачностью ее накладываешь на объект. Куб или сфера - чтобы знать, с какой стороны отражение.
Тут в 2 словах не объяснишь, смотри пример в NVSDK например, или в DXSDK.
Мой тебе совет, разберись сначала с основами, напиши простенький рендер, простую физику.
Потом переделай, сделав фабрики объектов, оформи все грамотно по классам, структурируй это дело чтобы все логично было. Сделай распределение обязанностей в движке.
Это даст время "освоится", основные понятия хотябы улягутся в голове. А так, все сразу - каша в голове будет.
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 12:41 01-10-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Каша - это легко сказано! Я тута исходник один раздобыл - и ну его ковырять(IUE) - си++ - уже практически выучил - теперь за 3Д взялся - вот тут то и проблема - текстуры на планеты накладываются как на стороны куба - и чёто этот кусок не пашет Расстроен

2Champion
Зайди на IW2 - в ней движок - си подобный язык программирования и документаха е - довольно неплохо получается даже с учётом 2001 года ( если, конечно DX7 устраивает Подмигиваю )
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 19:45 01-10-2004   
Champion
 146 EGP


Репутация: 19
Сообщения: 337
Откуда: Саратов
Зарегистрирован: 16.04.2004
IW2? Подозрение.
_________________
Не всё так просто, как на самом деле...
    Добавлено: 00:25 02-10-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
2Champion
Independance War II - Подмигиваю
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 19:26 03-10-2004   
Champion
 146 EGP


Репутация: 19
Сообщения: 337
Откуда: Саратов
Зарегистрирован: 16.04.2004
To himem: Ну есть такая. А куда заходить?
_________________
Не всё так просто, как на самом деле...
    Добавлено: 20:10 03-10-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
Ну здрассте Ой, не могу!..
конечно www.elite-games.ru/i-war2/files и скачать
IW2-EOC_Pog_Scripting_SDK.exe - там документаха Подмигиваю ( тока на аглицком Расстроен - я пытался переводить - да так до конца и не перевёл Расстроен )
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 20:29 03-10-2004   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
2Dusk
А чё такое "алгоритм QUADTREE" и как работает?
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 23:14 03-10-2004   
Dusk
 200 EGP


Репутация: 61
Сообщения: 412
Откуда: SPB
Зарегистрирован: 30.11.2003
http://gamemaker.webservis.ru/articles/quartree/quartrees.html
Кстати, есть очень хорошая штука - Яндекс. Там ещё много ссылок Гы-гы
_________________
ИМХО - Истинное мнение хрен оспоришь.
    Добавлено: 05:13 05-10-2004   
Канал Игры Мечты: «Можт хватит?»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Хоть и интересная игра, но там же уже клан Elite-Games, так что понтов все равно никаких... (Baron De Raven о ЕЖах в онлайн-играх)

  » Можт хватит? | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18