Forums Logo

Здравствуйте Гость ( Вход | Регистрация )

Reply to this topicStart new topicStart Poll

Каскадный · [ Стандартный ] · Линейный

> Создание игры на одну из старых приставок, Давняя мечта!

aa-dav
post Воскресенье, 17 декабря 2017, 08:54
Отправлено #61


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (dimm0505 @ Воскресенье, 17 декабря 2017, 08:21)

Что за "классическая консоль в смысле 3D-рендеринга"?
*


В том смысле что после T&L остаются координаты треугольника в пиксельных координатах на экранной плоскости, которые растеризуются чипом попиксельно, при этом для каждого пикселя вычисляются какого он цвета толжен быть интерполяцией цветов между тремя вершинами и/или выборкой из текстуры, при этом пиксель может отсекаться по некоторому условию и не рисоваться. Это классический способ растеризации, его только обогащают всякими плюшками, но это базисное ядро можно найти и в современных видеочипах.

В железе PS1 действительно не было Z-буфера, но он не является какой то "главной" фишкой 3Д-чипов, совсем даже нет. Собственно то, что плойка успешно рисовала и без него (см. "алгоритм художника") свидетельствует.
Но на самом деле в плойке была возможность попиксельного теста с отбрасыванием - так называемый Stencil (однобитовый). Кстати в современных видюхах Stecil и Z-буфер почти всегда объединяют в один - у них очень похожий принцип работы. Поэтому само по себе отсутствие одного только Z-буфера не делает PS1 далёкой от классики - просто создатели посчитали что пропускной способности памяти в их железке для него решительно не хватает (ну и были правы), но в принципе там был похожий Stencil, что применялось для других задач, но применялось.
"Косячные, плавающие" текстуры опять таки были вызваны экономией на железе - но это опять таки не какой то признак нетипичности, напротив, в том же OpenGL 1.x перспективную коррекцию текстур можно отключать (GL_PERSPECTIVE_CORRECTION_HINT) получая абсолютно те же проблемы, но ускорение вывода треугольников - это был известный в своё время "хак". На плойке просто это не опция, а другого не дано.

Поэтому всё это не аргументы, что в PS1 было что-то не так. Всё было так, очень классически.
А вот 3DO - это был шаг в сторону от этих всех трендов, идущих их Silicon Graphics.

Сообщение отредактировал aa-dav - Воскресенье, 17 декабря 2017, 08:55
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
dimm0505
post Воскресенье, 17 декабря 2017, 09:20
Отправлено #62


Console Addict
Group Icon

Группа: Супермодераторы
Сообщений: 28 646
Регистрация: 21 янв. 2007
Из: СПб
Пользователь №: 20 637





QUOTE (aa-dav @ Сегодня, 17:54)

Поэтому всё это не аргументы, что в PS1 было что-то не так. Всё было так, очень классически.
*


Было то было, но только с недавних пор мы можем увидеть как бы выглядели игры с PS1 с перспективой коррекции и "без дрожи полигонов" )) Благодаря эмулю PCSXR в связке с PXGP теперь это может попробовать каждый (стоит предупредить, что плагин еще в разработке и далеко не все идеально):
user posted image







Но то, что уже идет это как небо и земля по сравнению с оригинальными PS1-играми, выглядит они чуть-ли не как игры с N64. Снимаю шляпу перед аффтарами плагина. По сути никакой прямой эмуляции GPU/GTE уже нет, есть только HLE эмулирование на виртуальной PS1, перехват всех вызовов GPU/GTE, просчет в своем виртуальном фрэйм и Z-буффере, более точные расчеты всего, что связано с координатами полигонов и текстур.

==============================================
PeteOpenGL2Tweak - Tweaker for PeteOpenGL2 plugin w/ GTE Accuracy Hack!
http://ngemu.com/threads/peteopengl2tweak-....160319/page-46

http://ngemu.com/threads/peteopengl2tweak-...45#post-2476137

Сообщение отредактировал dimm0505 - Воскресенье, 17 декабря 2017, 09:39


--------------------
GBA SP/GB Micro/Switch/PS2/XB360/XBO/NESC/SNESC/PSC/Quest 2
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Воскресенье, 17 декабря 2017, 10:24
Отправлено #63


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (dimm0505 @ Воскресенье, 17 декабря 2017, 09:20)

...
*


Тут какое дело - по некоторому неслучайному несовпадению я не только в соседней теме написал краткое руководство по программированию GBA и пилю там в свободное время проект Contra Force Advance, но и вообще крайне много интересовался историями консолей с точки зрения программиста.
Поэтому не далее чем в этом году я подробно погрузился в вопрос того как программировалась 3Д-графика в популярных консолях четвёртого, пятого и шестого поколений.
Мои исследования по трехмерному поколению можно почитать вот тут: http://www.gamedev.ru/flame/forum/?id=231027 - но это чтиво для программистов.

Так вот - в PS1 видеочипу в сущности скармливались команды "нарисуй треугольник тут" или "нарисуй треугольник здесь". Они сразу имеют такой формат и смысл, что эмуляторы без труда могут и разрешение сменить и текстурную коррекцию вменить - это не представляет проблемы пока игра играет в одни ворота видеочипа - то есть просто кормит ему список команд на отрисовку.
Всё может изменится если техника рендеринга вовлекает обратный ход - чтение данных из видечипа для обработки на ЦП, и далее отправки обработанного обратно в видеочип - тут эмуляторы сдаются и начинают рисовать честно. Например это можно заметить в игре Chrono Cross ( вот тут я обозревал немного её в эмуляторе как раз, как игрок: http://www.gamedev.ru/flame/forum/?id=231584 ) - почти везде эмулятор рисует модели персонажей в повышенном разрешении, очень чётко, но в момент вылета боя они резко теряют в деталистичности - потому что игра в этот момент делает "снимок экрана", чтобы потом его как бы размазать в эффекте "вылета" - это и сбивает с толку эмулятор и заставляет его огрублять (т.е. возвращать в норму) рендер.

Добавлено спустя 1 минуту:
P.S.

Имхо видео с предыдущей страницы надо было выделять в отдельную тему - оно сейчас просто потеряется в то время как ценно само по себе.

Сообщение отредактировал aa-dav - Воскресенье, 17 декабря 2017, 10:27
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aspyd
post Воскресенье, 17 декабря 2017, 13:36
Отправлено #64


Фанат
***

Группа: Пользователи
Сообщений: 186
Регистрация: 03 авг. 2007
Из: MO/DK
Пользователь №: 23 273





aa-dav
Почитал твоё изложение про 3DO-шный рендер. Респект - хорошее пояснение на русском, но там, кажется, всё не так однозначно. Возможно, в этих девдоках описано не всё по CEL-Engine, а только самое пилотное - ХЗ.
В реальных играх немножко по-другому.
Например, есть такая старая и очень технически простая 2,5D-игра - Escape From Monster Manor:
user posted image
- там стены рендерятся наложением текстур на здоровенные прозрачные кубические блоки. То есть, берётся здоровенный прозрачный четырехугольный блок, на одну сторону которого накладывается текстура стены. Пользователь видит эти текстуры, а сами блоки не видит. А движок игры оперирует этими блоками.
Если отключить текстуры и убить прозрачность блоков, то эти блоки в игре можно увидеть. Тогда пользователь будет гулять в их окружении. Причём, как ни странно, CEL-Engine их ворочает аппаратно. Как я понимаю, большинство DOOM-подобных игр на таком принципе было построено (Killing Time, Slayer и т.д.). Кроме самого DOOM - там сложнее и всё криво.

Но есть игры, в которых, действительно, объекты рендерятся искажением текстур, например, Immercenary:
user posted image
Все эти "объекты" представляют собой плоские текстуры разных размеров, аппаратно согнутые так, будто это трёхмерный объект. То есть, графика там работает именно так, как ты описал, опираясь на девдоки.

Почему первый, очень распространенный случай не описан в девдоках, и как с ним работать - не знаю.
В целом, это пока сложновато для моего понимания, т.к. я не программист - пишу то, что увидел в реальных играх в процессе различных модификаций (переводы игр и т.д.)

Сообщение отредактировал aspyd - Воскресенье, 17 декабря 2017, 17:51


--------------------
Урча, пухлыми лапами кот вцепился в жидкую шевелюру конферансье и, дико взвыв, в два поворота сорвал голову с полной шеи. Две с половиной тысячи человек в театре вскрикнули как один.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aa-dav
post Воскресенье, 17 декабря 2017, 18:12
Отправлено #65


Фанат
***

Группа: Пользователи
Сообщений: 180
Регистрация: 20 апр. 2017
Пользователь №: 58 717





QUOTE (aspyd @ Воскресенье, 17 декабря 2017, 13:36)

...
*


Тут вообще интересная ситуация складывается - та же 3DO с аппаратным растеризатором "Cel Engine", то есть видеочипом умеющим серьезно раздвинуть горизонты 3D поступает в продажу за месяц до выхода в продажу на ПК такой знаковой игры как Doom (первая часть).
При это Doom не просто сорвёт кассу, но и сорвёт крышу многим многим игрокам - раздвинув горизонты виртуальных шутеров во многие разы на момент своего появления. При этом принцип рендеринга в нём весьма далёк от современных реалий так называемого "полигонального рендеринга", то есть отрисовки всего на экране как некоего набора трёхугольников (или четырёхугольников в случае 3DO). В Doom графика рисовалась, как это сейчас говорят, "софтовым движком", когда всё рисовал центральный процессор - полоски вертикальные пикселей для каждой колонки пикселей экрана - по этому можно отдалённо понять почему там не было двуслойных этажей и так далее.
Так или иначе Doom даже и не называется "3D-игрой", но вместо этого используется довольно мутная формулировка "2.5D".
Так вот - Wolfentstein, Zero Tolerance и другие подобные игры были даже проще в плане графона - я бы назвал их тогда "2.1D".
Как это ни странно, но этот "колонко-пиксельный" способ отрисовки плохо ложился на плечи аппаратных ускорителей консолей как четвертого так и пятого поколений - так как в первых вообще всё было по другому, а в последних аппаратное ускорение работало с полигонами (как в современных видеокартах), предполагалось что пока графический чип рисует много интересной графики центральный процессор будет заниматься другой работой - в случае Doom вся работа ложилась на плечи центрального процессора.

Это забавно, например Doom 64 вышедший на Nintendo 64 будет обладать не только полностью переделанным движком, но и полностью переделанными под него уровнями - там произойдёт попытка всё-таки использовать графическое железо под нужды игры.
Игра в итоге получится совсем другой http://www.gamedev.ru/flame/forum/?id=231841
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (2 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: Вт., 16 апр. 2024, 18:28
Skin Designed (c) by Rooq.net, All Rights Reserved.