The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск движка Free Heroes of Might and Magic II 0.9"
Отправлено Ordu, 09-Фев-21 05:11 
> Давайте так: напишите, пожалуйста, работающий код для OpenGL, как оно должно работать.

Ты действительно этого хочешь? Я как-то начал ревёрсить supaplex, и у меня к нему вроде как даже написан код, который в OpenGL засовывает палитрованные спрайты и получает на выходе картинку. А, не, не в OpenGL, а в gfx-rs, который типа вулкана, но одевается на любой API, в том числе и на OpenGL. Но он хранит все спрайты статично в видеопамяти, там и там шейдер выполняет преобразования палитры в RGB, в процессе текстурирования квадратов на экране.

Он довольно сраный код, потому что моей задумкой было изначально получить API аналогичный VGA, который бы сваливал всю работу на GPU, чтобы переписывать досовый 16-битный асм с минимумом изменений. Но потом, я понял, что это не обязательно и пошёл другим путём. Но не стал переписывать уже написанное. Но тем не менее, он вполне рисовал, и даже некоторые VGA трюки, типа палитровой анимации работали.

Там правда нет двуслойных спрайтов, но... эмм... если ты сведёшь задачу к минимуму, чтобы мне не надо было ковыряться в недрах говнокода fheroes2, чтобы понять, что там за форматы данных, и как вообще взаимодействовать с этим говнокодом... например, если ты дашь мне пачку спрайтов, и плюс сопутствующую информацию типа палитр, внятное описание всего этого, и ответишь на мои вопросы по всему этому, то я наверное смогу найти время, чтобы написать тебе демку, которая всё это отрисует видеокартой. И будет перерисовывать видеокартой. Насчёт 3 байтов по шине на кадр, я правда наврал, но то что она будет пересылать по шине на порядки меньше чем 640x480*4 бита на кадр, это совершенно точно.

Я могу написать такую демку, чтоб понятно было, и даж могу это попробовать на C++ сделать, а не на расте, если ты вежливо попросишь.

> Многие вещи, указанные вами, основаны только на предположениях.

Ты про то, как HOMM2 отрисовывал? Да, это предположения, но я ковырялся в некоторых досовых играх, и дохрена читал про VGA. Я представляю как рендер делался тогда. Плюс, я точно помню, что HOMM2 вполне шли на 386. Хотя они умудрялись тормозить там... Ну хз, хз. Но вообще, не использовать VGA, используя VGA, элементарно не выйдет. А если все четыре битовые плоскости грузить из CPU в видеокарту на каждый кадр, то... Ну может тогда и получатся такие тормоза. хз. Но если и так, это лишь говорит, что оригинальная игра тоже совершенно не умела в рендер.

> Абстракция класса была сделана для того, чтобы скрыть SDL от всего остального.

Ой, так я же не возражаю против "абстракции класса" или инкапсуляции низлежащих API. Я возражаю против неумеренного и абсолютно неуместного использования virtual. И против глобальных переменных. И против if(ptr==NULL).

> OpenGL в коде нет.

Совершенно зря.

> Для мобильных устройств свой OpenGL.

Он не настолько другой. Почти то же самое. Немного порезан, насколько я помню. По-моему, даже не столько порезан, сколько оттуда выкинуты нахрен все эти glVertex, glNormal, glTexCoords и прочие функции нужные для собирания данных в один большой массив, с которым GPU сможет работать. Но они и не нужны, массивы эти можно собрать хоть статически.

> Оригинальная игра
> никакие вычисления на GPU не делала, советую глянуть в исходники. Генерация
> картинки была на CPU.

Во-первых, я не говорил о том, что оригинальная игра отрисовывала на GPU. Так сказать было бы глупостью: тогда не было никаких GPU. Но тогда был VGA, который позволял в разы уменьшить количество пересылаемых данных между CPU и видеокартой, по сравнению с заливкой в видеокарту каждого пикселя каждого кадра. Во-вторых, что за исходники? Сорцы HOMM2? Я б глянул. Где их взять?

> Попрошу высказывания о некоторых аспектах ООП высказывать на специализированных форумах.

Не учите меня жить.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру