Game в OpenGL на FASM

Тема в разделе "WASM.OpenGL", создана пользователем Hotwire, 3 мар 2007.

  1. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Прочитав все, что опубликовано на этом замечательном сайте, я решил написать что-нибудь свое. Из графических статей я понял, что OpenGL это полный рулез. Писать я решил игру (3D конечно). Писать было решено про войну, а именно танчики. Меня интересует то, как можно работать с отдельными обьектами сцены, а не со всей.



    Маленькая просьба.
    Кто-нибудь посоветуйте учебник по OpenGl'у или скиньте мне на мыло koribut@ditek.dn.ua
    Заранее благодарен.
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    У тебя судя по всему сложилось неправильное (или пока что просто не сложилось) понимание того "как это работает". OpenGL - это автомат с конечным числом состояний. Все команды можно условно разделить на два типа - "Поменять состояние" и "Нарисовать". В OpenGL нет какого понятия как "Сцена" или "Объект сцены". Есть только состояния и графические примитивы.
     
  3. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Может я не сильно внимательно читал, но про поменять состояние у меня ничего в стеке не осталось. Коли можно, просветите плиз.

    А вот с рисованием у меня проблем нет.
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Поменять состояние это например glEnable(GL_TEXTURE_2D) - включили текстурирование. или glPolygonMode - установили способ отрисовки поликов. Это все смена состояний.
     
  5. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Про это я знал, но не знал, что оно так не называется.
    Где найти описание функций содержащихся в OpenGL? На sgi.com ничего толкового не написано. SDK под Linux-32 скачал с расширением rpm. Чем открыть этот странный файл ума не приложу. Если можете, то помогите ,пожалуйста, я ж не вирусы писать собираюсь.
     
  6. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
  7. CroX

    CroX New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2006
    Сообщения:
    37
    Hotwire
    rpm - пакет (т.е архив с программой) под Linux.
    Установить его в систему можно, набрав в консоле следующее:
    $ rpm -ivh <имя файла>.rpm
     
  8. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Спасибо, asmfan. Ссылочка очень полезная, но нет там информации про OpenGL for Windows поэтому и качал под Linux.
    Если есть у кого хоть какой-нибудь SDK по OpenGL'у, то будьте так добры, вышлете, пожалуйста, мне на мыло koribut@ditek.dn.ua

    Странную строчку, которую написал(а) CroX, из под какой операционной системы запускать необходимо?
     
  9. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Hotwire
    Разумеется никсовую программу в них и запускать :))))
    Загляни сюда, а вообще-то sdk OGL есть на msdn и входит в комплект PSDK, но слать PSDK тебе на мыло есно не буду - я не извращенец :)))
     
  10. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Hotwire

    Все до OpenGL 1.2 описано в MSDN. Далее - расширения. Описаны тут: http://oss.sgi.com/projects/ogl-sample/registry
     
  11. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Спасибо, за ссылки, но я смог обнаружит тьму примеров на C и совсем не нашел на асме (я не падаю духом, а то что скорее всего я делаю это одним из первых, то это только добавлеет адреналина). О чем это я? Надо завязывать.
    Об игре собственно. Мне необходима 3D model моего танка, а что самое страшное так это то, как напялить на него текстуру. В тутуриале одного выдающегося автора (я говорю про Tyler Durden'a), текстурирование делается генерированием оной из RAW файла. Размер этого файла сами понимаете какой, да и работать с ним при помощи обычных редакторов невозможно. Можно ли заменить эту текстуру на JPEG or BMP.
    На gamedev.ru обнаружил статьи, косающиеся пиксельных и вертексных шейдеров. В моем понятии это ассемблер графического ядра. Мучает меня, значит, один вопрос о том, как
    написать собственную шейдрную или вертексную программу и какой инструментарий для этого необходим (кроме головы на плечах).
    Если у кого процесс рисования закончится успешно, пришлите плоды своего творчества.
     
  12. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Без особых проблем можно использовать и jpeg и прочие форматы. Нормальные люди создают оттекстурированные модели в 3d редакторах, а затем уже загружают посредством соответсвуюего API в программу (будь то OpenGL или Direct3D). В данный момент все шейдерные программы пишутся в соответствующих пакетах типа RenderMonkey или FXComposer на высокоуровневом языке GLSL или HLSL. Там же производится их отладка. Загрузка в программу производится опять же с помощью любого из выбранных 3D API.

    В итоге получается что в основном на ассемблер (если он больше приглянулся по душе) остается только вызов соотвествующих функций или методов и собственно сама игровая логика.
     
  13. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    А где я мого скачать эти программки для шейдерного программирования? Какая из них к OpenGL'у относится. Я больше уважаю SGI нежели мелко-мягких.
    Как именно использовать JPEG файлы в процессе текстурирования? Я надеюсь, что на них не распространяется правило их размера (по вертикали и горизонтали обязательно кратный спепени двойки).
     
  14. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Если OGL, то GLSL соответственно, нужно посмотреть какой из редакторов умеет сохранять в такой формат. Смотреть ATI SDK, NVidia SDK. Также редакторы должны быть и отдельно. Размер двойки сейчас уже не актуален, но подавляющее большинство придерживается именно этого правила и текстур форматов 256x256, 512x512, 1024x1024 и так далее. Эффективнее пользоваться аппаратными форматами сжатия текстур, в частности, DDS.
    Ну и как всегда гугл, gamedev.ru, dtf.ru и иже с ними...
     
  15. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Hotwire

    Улыбнуло :) Основные тулзы делаются ни теми ни другими) FxComposer это NVIDIA. На их же сайте. RenderMonkey - ATi. Правда какова его судьба после слияния с AMD - не ясно (мне).

    PS. А почему на ассемблере?
     
  16. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    На developer.nvidia.com нашел статью, посвященную написанию вертексных программ, а что самое интересное так то, что на чистом ассемблере. Как откомпилировать такую программку и чем?
     
  17. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Hotwire
    Совет используй GLSL под OGL. Там же есть и компилятор, то есть компилит сама видяха -).
    Советую книгу Александра Борескова "Программирование шейдеров на OpenGL" - или как-то похоже называется, сейчас точно не помню, где всё это очень подробно объясняется. Там же на диске с книгой есть ещё много всего, библа загружающая текстуры например, загрузчик моделей, правда для С++, но настоящему фасмовцу это не должно быть преградой -).
     
  18. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Hotwire
    легких путей ты видимо не ищешь :) Определись сначала на чем там написано.
    Могу только подсказать про DX. Cкомпилировать с помощью psa или vsa, смотря вертексный это шейдер или пиксельный. Находятся в DirectX SDK. Хотя заранее их можно не компилить, а грузить прямо так с помощью функций из билиотеки D3DX.

    Про Борескова правильно сказали: "Разработка и отладка шейдеров" называется книжка. Или есть еще "интсрументальные средства программирования и отладки шейдеров в DirectX и OpenGl" но она ватная какая-то.
     
  19. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    В том доке, который я скачал, написаны команды графического процессора. По возможностям GPU гораздо круче CPU. Облом в том, что я не знаю, как до этого зверя добраться, а ведь там такая сила дремлет. Страшно подумать, что можно написать, используя графический кристалик.
     
  20. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Hotwire
    Совет всё-таки достать нормальную книгу, по шейдерам, типо той которую мы предлагаем с keYMax, разбираться по отрывочной информации из статей это не дело.
    В книге Борескова например всё очень подробно расписано, у меня например вопросов почти не стало после прочтения данной книги. Так что очень советую.