IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> качественная графика на Паскале, вопрос к профессионалам
сообщение
Сообщение #1


Гость






У меня вопрос: какие есть способы вывода на экран в графическом режиме (модуль graph не предлагать - тормозной шибко)? Я знаю только один: обращение к видеопамяти - адрес $A000: $0000. Но этот способ удобен лишь при разрешении 320х200 256 цветов. Потому что при другом разрешении видеопамять не влезает в 64 кб и для вывода приходится переключать страницы и делать лишние расчёты, что сильно замедляет программу. Можно ли выводить на экран при помощи портов всяких? А то я хочу улучшить свою прогу, находящуюся на tarasber.narod.ru. А исходники к ней я покажу только если вы очень попросите - их там полметра.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


На сколько я помню есть еще режим LFB в Vesa режимах, когда вся видео память линейно отображается в оперативную, писать можно будет подряд, но будет 32-бита, т.е. на паскале чуть сложнее обращаться.
ps а лучше под TMT переползай, а то по виндой такое работать не будет..

Сообщение отредактировано: Malice -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Скрины впечатлили... автору респект!
Для TP7 есть еще либа Graphix
тут
...или надо менять платформу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 424
Пол: Мужской

Репутация: -  2  +


FPC + OpenGL
или
FPC + DDraw
ну или вместо FPC Delphi


--------------------
Чего хочет женщина – того хочет Бог
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(arhimag @ 24.01.2007 17:23) *

FPC + OpenGL
или
FPC + DDraw
ну или вместо FPC Delphi

Я просто пытаюсь выжать максимум из Паскаля без защищённого режима, без дээлэлов типа опенгл и так далее. Я пытаюсь всё сделать руками. Почему-то мне проще рассчитать всё самому, чем разбираться в том, что в стандартной библиотеке к чему...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата(Malice @ 24.01.2007 13:46) *

На сколько я помню есть еще режим LFB в Vesa режимах, когда вся видео память линейно отображается в оперативную, писать можно будет подряд, но будет 32-бита, т.е. на паскале чуть сложнее обращаться.
ps а лучше под TMT переползай, а то по виндой такое работать не будет..

А можно ссылку на литературу?
И мне кажется, что через порты как-то можно включить графику. Я вот однажды по приколу (САМИ ТАК НЕ ДЕЛАЙТЕ!!!) под милениумом во все порты записал одно и то же число (какое - не знаю)... Экран пятнами покрылся - значит не текстовый режим. Ну я испугался, альтаб нажал - а он не работает... Я стал всё подряд давить, вроде даже ресет давил - не помогло... Как-то вырубил его нахрен всё-таки. Весь естественно в холодном поту, колени трясутся... Когда я включил его снова, то высветилось "инвалид систем диск"... Я правда не упел запаниковать - мой рефлекс сработал раньше: я тут же вытащил дискету и нажал ентер... В общем, система выжила...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(TarasBer @ 24.01.2007 21:43) *

А можно ссылку на литературу?

Неа, только гугль. С тех пор как я этим боловался у меня раза 2 винт слетал smile.gif

Цитата
Экран пятнами покрылся - значит не текстовый режим. Ну я испугался, альтаб нажал - а он не работает...

Абсолютно ничего не значит.. Но если ты веришь в этот способ, то могу предложить использовать метод бинарного поиска smile.gif Ты в какие порты писал ? От 0 до FFFF ? Тогда пишешь сперва в первую половину (0..7fff), если покрылось пятнами, то продолжаешь сужать период. Если нет, то во вторую половину и с ней тоже самое..
yes2.gif

Сообщение отредактировано: Malice -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Суперская программа. Покатался на автобусе =)
Автору грет респект и всяческие почести!

Игра возродила в памяти воспоминания о Duke Nukem 3D...

По поводу памяти - винда не даст через порты.... да и не нужно это по большому счёту.

OpenGL - это выход. Вычислять многие вещи всёравно придётся самому, а вот геморра с выводом картинки меньше, да и картинка будет красивая. Случилось как-то курсовую писать одному кадру, я в OpenGL ни ухом не рылом, фактически с нуля, к тому же не на C++ или Delphi а на C#, - более менее разобрался за пару вечеров в основах.


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Для начала спешу выразить огромный респект автору. Видно, что проекту посвящено немало времени.
Теперь к делу. Что ты подразумеваешь под улучшением графики? Более высокие разрешения? Это возможно.
Подробности:
VESA : можно получить очень высокие разрешения и цветность вплоть до 32 бит на точку, но работает в разы медленнее VGA.
X-MODE : Это семейство видеорежимов, имеющих большее разрешение и/или кол-во цветов, чем стандартные режимы VGA.
Обладают рядом преимуществ:
1. Я слышал, что эти режимы позволяют добиться 4-х кратного ускорения графики, но сам не проверял.
2. Несколько видео страниц в режимах 256 цветов.
3. Поддерживаются всеми VGA картами.
4. Поддержка скроллинга.
Почему-то не рекомендуют ставить горизонтальное разрешение выше 360 точек, обещают проблемы. На сколько мне известно чаще всего в X-Mode используются режимы 360x480x256 и 320x200x256.
Линейная адресация в SVGA: Это то, что описал Malice. По скорости несколько быстрее, чем обычная VESA. Позволяет делать скроллинг и аппаратные видео страницы. Принцип работы такой: обращения к памяти за пределом текущего банка перехватываются обработчиком соответствующего исключения и банк меняется. Короче, переключение банков осуществляется автоматически, аппаратными средствами 386 проца.

Если что-то заинтересует, постараюсь помочь с документацией, но на много не расчитывай, у меня у самого инфы мало sad.gif, реально хорошо знаю только обычную VESA.

Добавлено:
Есть ещё какой-то chain-4, но об этом звере я знаю только то, что он быстрее VGA. Есть предположение, что это и есть X-Mode, но не уверен.

Сообщение отредактировано: Archon -


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Plus System Pro 2.3
Есть и Vesa, и режимы X
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Ну ваще клёва ету игрухуб под окно на современное железо ценыб ей небыло!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской
Реальное имя: IVAN

Репутация: -  0  +


А вообще где можно посмотреть инфу по различным графическим режимам
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата(SkIv @ 19.02.2007 17:07) *

А вообще где можно посмотреть инфу по различным графическим режимам

http://www.codenet.ru/cat/Applications/Gra...VESA-Standarts/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской
Реальное имя: IVAN

Репутация: -  0  +


Цитата(Ozzя @ 20.02.2007 7:54) *

Спасибо большое!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Гость






помогите плиз нужна прога по графике в паскале на движение...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Если тебе нужна любая прога - ищи. Здесь за тебя вряд ли кто будет заниматься поиском.
Если же нужна конкретная - здесь могут помочь написать, но обязательно при твоем активном участии.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


В связи с тем, что тему подняли, наткнулся на нее.
Хотелось бы расставить некоторые точки над i.
Цитата(Archon @ 25.01.2007 4:20) *

VESA : можно получить очень высокие разрешения и цветность вплоть до 32 бит на точку, но работает в разы медленнее VGA.
Ну, коль скоро используемый объем видеопамяти в разы больше, то и время ее заполнения во столько же раз больше.
Как говорится, чудес не бывает.
Цитата

X-MODE : Это семейство видеорежимов, имеющих большее разрешение и/или кол-во цветов, чем стандартные режимы VGA.
Обладают рядом преимуществ:
1. Я слышал, что эти режимы позволяют добиться 4-х кратного ускорения графики, но сам не проверял.
2. Несколько видео страниц в режимах 256 цветов.
3. Поддерживаются всеми VGA картами.
4. Поддержка скроллинга.

Но при этом обладают еще большим количеством недостатков.
4-хкратное ускорение графики возможно лишь при заливке одним цветом. Теоретически. На практике режим очень тормозной из-за необходимости постоянно дергать регистры видеоадаптера.
Цитата

Почему-то не рекомендуют ставить горизонтальное разрешение выше 360 точек, обещают проблемы. На сколько мне известно чаще всего в X-Mode используются режимы 360x480x256 и 320x200x256.
Потому что стандартным VGA это банально не поддерживается.
Правда, поддерживается VGA-совместимыми картами, выпущенными позднее.
Кстати, о работе в этих режимах я в свое время писал:
http://www.osp.ru/pcworld/1997/05/157500/
http://www.osp.ru/pcworld/1997/09/157969/
http://www.osp.ru/pcworld/1997/11/158244/
но с тех пор прошло более 10 лет, и на сегодняшний день, думаю, эта технология уже потеряла актуальность.
Цитата

Линейная адресация в SVGA: Это то, что описал Malice. По скорости несколько быстрее, чем обычная VESA. Позволяет делать скроллинг и аппаратные видео страницы. Принцип работы такой: обращения к памяти за пределом текущего банка перехватываются обработчиком соответствующего исключения и банк меняется. Короче, переключение банков осуществляется автоматически, аппаратными средствами 386 проца.
Не совсем так.
То, что описано, это программная эмуляция линейного буфера, применяемая иногда для тех карт, в которых аппаратного LFB не было. Делалась она исключительно в целях совместимости и ни о каком приросте скорости говорить не приходится.
Другое дело - наличие апаратно поддерживаемого LFB (что, собственно, и было на подавляющем числе видеокарт. Вот он действительно позволял добиться заметно более высокой скорости.
Цитата

Если что-то заинтересует, постараюсь помочь с документацией, но на много не расчитывай, у меня у самого инфы мало sad.gif, реально хорошо знаю только обычную VESA.
Собственно, больше и не надо. После появления стандарта VESA все остальное, в том числе ModeX стали неактуальны.
Цитата

Добавлено:
Есть ещё какой-то chain-4, но об этом звере я знаю только то, что он быстрее VGA. Есть предположение, что это и есть X-Mode, но не уверен.
Совершенно верно, chaun-4 используется как раз в ModeX.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 20:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name