Robus, я на твой мыл написал письмо - Mail Divelery отплюнул месагу о неудачной попытки послать...Цитата:
Сообщение от Robus
Кинь на мой мыл плиз TMT4. mail: RomanichApparate@mail.ru
Вид для печати
Robus, я на твой мыл написал письмо - Mail Divelery отплюнул месагу о неудачной попытки послать...Цитата:
Сообщение от Robus
Кинь на мой мыл плиз TMT4. mail: RomanichApparate@mail.ru
Вот как обещал - кое что из 2Д/3Д движков некоторых карточек!
ВНИМАНИЕ!!! базовый адрес в некоторых программах взят как константа!!! - поэтому либо юзать PCI INT, либо в свойствах Win98-драйвера смотреть базовые адреса (обычно первый-LFB, второй - Graphic Engine Base Addr.)
Там ошибка в мыле, лишняя буква 'o' после Asm. Мыло надо было из профиля брать (я послал ему сорцы биоса от nvidia, все ушло нормально)Цитата:
Сообщение от Romanich
Проанализировав, я пришёл к выводу, что не так уж плохи эти спрайты. Ведь на тойже NES, SEGA MD, SNES писали же игры и причём даже неплохие! Просто нужно иметь или приобрести "спрайтовый склад ума", чтоб научиться профессионально использовать их... Есть плюсы у спрайтовых хардварных движков а именно:
1) Не нужно заводить буфера и их чистить (экономия времени и памяти)
2) Перемещение спрайтов достигается изменением нескольких единиц байтов, а не всей площади изображения*глубина цвета (даже при хардварном блитинге таки циклы-их не избежать)
3) Цветовой ключ (также как у DD)
Единственно - это грамотно написать менеджер спрайтов. Что-то типа выделить спрайты с такого-то по такой-то на изображение такое-то ...
Правилен ли ход мыслей или будет гимор? :v2_conf2:
Главное расположить правильно данные в памяти... тогда гемороя не будет.Цитата:
Сообщение от Romanich
Все равно скорее всего придется писать разные процедуры для разнотипных объектов (особенно если объект из нескольких спрайтов составлен). С параметрами - координаты, флип, фаза анимации (это уж сама процедура должна определять, на нужную ли фазу настроены текущие спрайтовые указатели, и менять их в случае необходимости - потому что на всю анимацию спрайтов не хватит). Распространенное мнение, что удастся обойтись "изменением пары-другой байт" - это иллюзия. Верно разве что для совсем уж простеньких игрушек.
Блиттинг круче все равно. ;)
Тут концепция 2D-движка (мечта игродела) для матриц:
Судя по структуре, видео память не отображается в основное поле? Если да, то плоховато, хотя и не смертельно. Относительно глубины цвета, хорошо было бы иметь спрайты в 32 бит RGBA(ну или др. порядок) которые бы всасывались и, преобразовываясь, складывались бы в видео память в родном формате.
Относительно функций... мне кажется, что много лишнего. Ни скроллинг(тот же BLIT),ни Positive/negative вроде не нужны. Масштабирование/зеркалирование/вращение/извращение тоже как то без надобности, если есть достаточно памяти правда =) да и потянет ли это AVR? Так что остается блиттинг с ключом и альфой, а если не нужно большего, то почему бы и не железный ДМА в ПЛИС?
Но если смотреть всё в целом, получается хороший движок, хотя и "старомодный".
Моё дело предложить... А дальше уж смотрите... выбирал функции исходя из своих потребностей и увиденного на практике.
Считаю что эффекты(фильтры/размытие/вращение/...) нужны - хотя бы для анимации или спец-эффектов (вспомните теже Super Nintend'овские игры).
Да и вообще неплохо фильтры OpenGL и Smart адаптировать для 2D. Но я не настаиваю... Кстати, ни у кого нет сорцов смарт фильтрации или формул? (на высокоуровневом языке). А то Степин молчит (да и примеры его на асме - ковырять неудобно...)
http://www.ferzkopp.net/joomla/content/view/19/14/
Оттуда SDL_rotozoom и, возможно, SDL_imageFilter. Пользовался давно, по впечатлениям не быстро, но качественно.
PS: Если есть память, ну её mode7 и пр. Даже на GBA подобное не впечатляет.