качественная графика на Паскале, вопрос к профессионалам |
качественная графика на Паскале, вопрос к профессионалам |
TarasBer |
Сообщение
#1
|
Гость |
У меня вопрос: какие есть способы вывода на экран в графическом режиме (модуль graph не предлагать - тормозной шибко)? Я знаю только один: обращение к видеопамяти - адрес $A000: $0000. Но этот способ удобен лишь при разрешении 320х200 256 цветов. Потому что при другом разрешении видеопамять не влезает в 64 кб и для вывода приходится переключать страницы и делать лишние расчёты, что сильно замедляет программу. Можно ли выводить на экран при помощи портов всяких? А то я хочу улучшить свою прогу, находящуюся на tarasber.narod.ru. А исходники к ней я покажу только если вы очень попросите - их там полметра.
|
Malice |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
На сколько я помню есть еще режим LFB в Vesa режимах, когда вся видео память линейно отображается в оперативную, писать можно будет подряд, но будет 32-бита, т.е. на паскале чуть сложнее обращаться.
ps а лучше под TMT переползай, а то по виндой такое работать не будет.. Сообщение отредактировано: Malice - |
Бродяжник |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
|
arhimag |
Сообщение
#4
|
Знаток Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: 2 |
FPC + OpenGL
или FPC + DDraw ну или вместо FPC Delphi -------------------- Чего хочет женщина – того хочет Бог
|
Гость |
Сообщение
#5
|
Гость |
FPC + OpenGL или FPC + DDraw ну или вместо FPC Delphi Я просто пытаюсь выжать максимум из Паскаля без защищённого режима, без дээлэлов типа опенгл и так далее. Я пытаюсь всё сделать руками. Почему-то мне проще рассчитать всё самому, чем разбираться в том, что в стандартной библиотеке к чему... |
TarasBer |
Сообщение
#6
|
Гость |
На сколько я помню есть еще режим LFB в Vesa режимах, когда вся видео память линейно отображается в оперативную, писать можно будет подряд, но будет 32-бита, т.е. на паскале чуть сложнее обращаться. ps а лучше под TMT переползай, а то по виндой такое работать не будет.. А можно ссылку на литературу? И мне кажется, что через порты как-то можно включить графику. Я вот однажды по приколу (САМИ ТАК НЕ ДЕЛАЙТЕ!!!) под милениумом во все порты записал одно и то же число (какое - не знаю)... Экран пятнами покрылся - значит не текстовый режим. Ну я испугался, альтаб нажал - а он не работает... Я стал всё подряд давить, вроде даже ресет давил - не помогло... Как-то вырубил его нахрен всё-таки. Весь естественно в холодном поту, колени трясутся... Когда я включил его снова, то высветилось "инвалид систем диск"... Я правда не упел запаниковать - мой рефлекс сработал раньше: я тут же вытащил дискету и нажал ентер... В общем, система выжила... |
Malice |
Сообщение
#7
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
А можно ссылку на литературу? Неа, только гугль. С тех пор как я этим боловался у меня раза 2 винт слетал Цитата Экран пятнами покрылся - значит не текстовый режим. Ну я испугался, альтаб нажал - а он не работает... Абсолютно ничего не значит.. Но если ты веришь в этот способ, то могу предложить использовать метод бинарного поиска Ты в какие порты писал ? От 0 до FFFF ? Тогда пишешь сперва в первую половину (0..7fff), если покрылось пятнами, то продолжаешь сужать период. Если нет, то во вторую половину и с ней тоже самое.. Сообщение отредактировано: Malice - |
hardcase |
Сообщение
#8
|
code warrior Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: 8 |
Суперская программа. Покатался на автобусе =)
Автору грет респект и всяческие почести! Игра возродила в памяти воспоминания о Duke Nukem 3D... По поводу памяти - винда не даст через порты.... да и не нужно это по большому счёту. OpenGL - это выход. Вычислять многие вещи всёравно придётся самому, а вот геморра с выводом картинки меньше, да и картинка будет красивая. Случилось как-то курсовую писать одному кадру, я в OpenGL ни ухом не рылом, фактически с нуля, к тому же не на C++ или Delphi а на C#, - более менее разобрался за пару вечеров в основах. -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Archon |
Сообщение
#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 проца. Если что-то заинтересует, постараюсь помочь с документацией, но на много не расчитывай, у меня у самого инфы мало , реально хорошо знаю только обычную VESA. Добавлено: Есть ещё какой-то chain-4, но об этом звере я знаю только то, что он быстрее VGA. Есть предположение, что это и есть X-Mode, но не уверен. Сообщение отредактировано: Archon - -------------------- Close the World...txeN eht nepO
|
Ozzя |
Сообщение
#10
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
Plus System Pro 2.3
Есть и Vesa, и режимы X |
Sam0784 |
Сообщение
#11
|
Новичок Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: 0 |
Ну ваще клёва ету игрухуб под окно на современное железо ценыб ей небыло!!!
|
SkIv |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: IVAN Репутация: 0 |
А вообще где можно посмотреть инфу по различным графическим режимам
|
Ozzя |
Сообщение
#13
|
Гуру Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: 16 |
А вообще где можно посмотреть инфу по различным графическим режимам http://www.codenet.ru/cat/Applications/Gra...VESA-Standarts/ |
SkIv |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: IVAN Репутация: 0 |
Спасибо большое! |
Гость |
Сообщение
#15
|
Гость |
помогите плиз нужна прога по графике в паскале на движение...
|
andriano |
Сообщение
#16
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Если тебе нужна любая прога - ищи. Здесь за тебя вряд ли кто будет заниматься поиском.
Если же нужна конкретная - здесь могут помочь написать, но обязательно при твоем активном участии. |
andriano |
Сообщение
#17
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
В связи с тем, что тему подняли, наткнулся на нее.
Хотелось бы расставить некоторые точки над i. VESA : можно получить очень высокие разрешения и цветность вплоть до 32 бит на точку, но работает в разы медленнее VGA. Как говорится, чудес не бывает. Цитата X-MODE : Это семейство видеорежимов, имеющих большее разрешение и/или кол-во цветов, чем стандартные режимы VGA. Обладают рядом преимуществ: 1. Я слышал, что эти режимы позволяют добиться 4-х кратного ускорения графики, но сам не проверял. 2. Несколько видео страниц в режимах 256 цветов. 3. Поддерживаются всеми VGA картами. 4. Поддержка скроллинга. Но при этом обладают еще большим количеством недостатков. 4-хкратное ускорение графики возможно лишь при заливке одним цветом. Теоретически. На практике режим очень тормозной из-за необходимости постоянно дергать регистры видеоадаптера. Цитата Почему-то не рекомендуют ставить горизонтальное разрешение выше 360 точек, обещают проблемы. На сколько мне известно чаще всего в X-Mode используются режимы 360x480x256 и 320x200x256. Правда, поддерживается 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 (что, собственно, и было на подавляющем числе видеокарт. Вот он действительно позволял добиться заметно более высокой скорости. Цитата Если что-то заинтересует, постараюсь помочь с документацией, но на много не расчитывай, у меня у самого инфы мало , реально хорошо знаю только обычную VESA. Цитата Добавлено: Есть ещё какой-то chain-4, но об этом звере я знаю только то, что он быстрее VGA. Есть предположение, что это и есть X-Mode, но не уверен. |
Текстовая версия | 21.12.2024 22:53 |