Графика в защищенном режиме...

Тема в разделе "WASM.OS.DEVEL", создана пользователем Treant, 21 окт 2009.

  1. reversecode

    reversecode Guest

    Публикаций:
    0
    а какое отношение имеет видео биос к 3D?
    никакого
     
  2. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Охотно объясню.
    Хотелось бы в своей ОС получить полноценное 3D, обеспечиваемое самой видеокартой, т.е. GPU, именно без участия CPU. Просто еще нигде в "самописных" ОС еще такого не встречал. Обычно VESA и все. Да, с ней работать достаточно просто и примеров море, но...
    Во-первых, не так быстро, как хотелось бы.
    Во-вторых, 60 Гц на ЭЛТ мониторе - это зло. Причем на высоких разрешениях - зло в квадрате. Я понимаю, что редко у кого сейчас ЭЛТ, но вот у меня оно и есть. Так что мучать свои глаза мне жалко.
    В-третьих, как я уже успел узнать - современные карты не всегда VESA 3.0 поддерживают.
    В-четвертых, почему бы не воспользоваться тем, что в "железе" уже есть?
    В-пятых, CPU и так есть чем заняться , кроме отрисовки окон. :)
    В-шестых, таки может тогда на нее кроме меня кто-нибудь взглянет (я великий убийца майкрософт :) ).
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    А нету там 3D. Там есть только "кирпичики" для построения 3D. Поэтому без создания аналога OpenGL или DirectX никак. Один человек уже давно не в состоянии "убить МС" и даже группа программеров :)
     
  4. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Просто хотелось бы поиметь 3D "из GPU" в своей ОС. Пусть даже для этого прийдется написать свой аналог OpenGL. А то что там низкоуровневый API, так это ж для ассемблерщика хлеб насущный. И пугать его низким уровнем - это как ежа голой попой пугать. :) :) :)
     
  5. reversecode

    reversecode Guest

    Публикаций:
    0
    да не нужно там никакого OpenGL
    просто вы должны сами понять что такое 3D
    потому что все требования которые вы описали для 3D не нужны
    вообщем то для начала поищите архитектуру NVIDIA GPU где все рассписано как это в принципе работает
    а то мне все это видиться как "хочу сделать космолет на основе велосипедов - расскажите сколько надо велосипедов и как их сложить что бы получился космолет"
    ))
     
  6. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Вот как раз где найти документацию по арихитектуре и спецификации необходимые я и спрашивал. Если не трудно - подскажите ссылочкой, пожалуйста.
    А по поводу того что это не нужно - позволю себе не согласиться. Каждая железка должна заниматься своим делом, это мое имхо. Соответственно рисовать картинку должна видеокарта. Причем рисовать по полной, так сказать, раз уж она это может.
     
  7. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
  8. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Спасибо за ссылочку, буду читать, просвещаться, мучать мозг. :)
     
  9. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    BlackCat

    И все-таки я не пойму что конкретно нужно. Если настоящее 3Д - то спецификации карты надо читать в последнюю очередь, сначала надо просветится по технологии 3Д - проецирование, удаление невидимых линий и т.д. А если тебе "финтифлюшки", типа Аэро, то это не 3Д.
    А про ежа : ты ведь писал про "убийство". И у тебя два пути : использовать в той или иной мере готовые библиотеки, а это не есть "низкий уровень", либо твой еж обречен.
    Изначально(ну когда про ускорители графики заговорили) внутренности видео-карт проектировались под мощных разработчиков и постепенно часть переносилась из библиотек внутрь карты. Да там много всего напихано, но не для разработки с нуля.
    А впрочем дерзай!
     
  10. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Таки да - хочется полноценное и полнофункциональное 3D на асме в виде опен-сорс кода для всех желающих. Идея благородная, но тяжело реализуемая. Именно поэтому сейчас покурю доки, подумаю хорошенько, хватит ли меня на реализацию хотя бы половины заявленного. Тогда уже буду думать дальше и регистрироваться на sourceforge или google-code.
    По поводу ежа я говорил к тому, что не боюсь читать заумные доки, в которых расписан самый низкий уровень работы видеокарты. Асм учит работать напрямую с устройствами и так, как того сам желаешь.
    Я прекрасно понимаю, что моих знаний, сил и стараний может вполне себе не хватить на реализацию задуманного. Но идея-то хороша, а? К тому же я верю, что грамотный код на асме работает быстрее. Поэтому на современном железе можно получить сногсшибательную производительность в приложениях. К сожалению, чтобы впечатлить потенциальных клиентов нужно что-то показать, желательно "красявое все из себя". Поэтому нужно ковырять видеокарту. В любом случае нужно. И не только мне. Думаю многим будет по душе свободный код, который позволяет использовать честное 3D в своих собственных разработках.

    P.S. Чем чёрт не шутит - может кто портирует в виде библиотеки на другие ОСи. :)

    P.P.S. Еще раз повторюсь - я прекрасно понимаю, что проект такой сложности не поднять одному. И прекрасно понимаю, что моих знаний и сил скорее всего не хватит на полную реализацию всего задуманного. Но не пытаться я не могу. Просто не могу. И не потому, что мне не дают покоя лавры MS. Просто мне интересно. И обидно, что в той же Win7 ничего нового относительно WinXP по сути дела и не появилось-то. Кроме глюков и тормозов. А железо должно работать. Быстро работать, а не тратить время на кривой код или лень современных программистов. :)
     
  11. reversecode

    reversecode Guest

    Публикаций:
    0
    я кстати так и не понял что вы хотите создать?
     
  12. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Архитектура видео карт хорошо расписана на ixbt. Правда чем это поможет не знаю.

    Странная фраза! Вывод 3D графики представим в виде конвейера. Не помню сколько точно стадий где-то около 5. Которые легко написать самому. Это раньше шла заточка под каждую финтефлю заводили блок в видео карте. А с появлением шейдоров стали делать унифицированные блоки, а весь аппарат снова возложили на плечи программиста, а вернее на библиотеке только выполняются они на GPU. Правда часть специализированных блоков осталось. И все время что-то меняют.

    Только программная реализация 3D вывода дает низкоуровневый доступ к 3D. А так придется делать абстракцию и получите вы DirectX где куча программистов села и написала куча эффектов и математике.

    Пока идеи я не увидел. Напиши план тогда ясно будет что ты хочешь.
     
  13. BlackCat

    BlackCat New Member

    Публикаций:
    0
    Регистрация:
    22 дек 2009
    Сообщения:
    8
    Т.е. написанное под PM 32-bit. По возможности максимально нативно. С удобным API (это для тех, кому лень ковыряться в исходниках). Т.е. захотелось человеку свою ОС накропать - он берёт готовый код, может немного переделывает "под себя" и спокойно и радостно использует честное 3D.

    P.S. Хорошая мысль! Ведь теперь действительно видеокарта - это набор стандартных блоков, объединенных в конвейер. Блин, торможу, видимо перегруз новыми знаниями. Надо перерыв сделать на недельку. :dntknw:
     
  14. dess

    dess New Member

    Публикаций:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    46
    Отвечая на сообщение #1, отвечаю: я устанавливаю необходимое разрешение (в моем случае 1024x768x32) до перехода в защищенный режим. А потом в защищенном просто эксплуатирую LFB:

    mov [fs:edi],eax

    fs - сегмент с базой=0 и лимитом=4Гб.
    edi - адрес LFB + смещение точки на экране;
    eax - цвет точки.
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Во-первых, очень много софта обходится вообще без шейдеров до сих пор, во-вторых, этих шейдеров аж 3 версии. Одному такое точно не поднять. Я еще понимаю под какую-то конкретную Ось, а универсальную библиотеку. А главное на фиг она кому сдалась : основная проблема самописных осей не в 3Д-графику упирается. Вот там и надо писать универсальные библиотеки : загрузка, работа в PM, просто графика(!) и т.д. Рюшечки пока не на что навешивать :)
    Надо строить аппарат для быстрого построения осей, а не для их раскраски.
     
  16. Treant

    Treant Member

    Публикаций:
    0
    Регистрация:
    24 май 2009
    Сообщения:
    261
    Я вот накодил по интеловским мануалам и исходникам дров переключение режима на 1024x600 + put_pixel для GMA950( = 945GM )
    Есть некоторые проблемы, но в общем работает - уже вывел красную линию. Очень доволен =/