Прочитав все, что опубликовано на этом замечательном сайте, я решил написать что-нибудь свое. Из графических статей я понял, что OpenGL это полный рулез. Писать я решил игру (3D конечно). Писать было решено про войну, а именно танчики. Меня интересует то, как можно работать с отдельными обьектами сцены, а не со всей. Маленькая просьба. Кто-нибудь посоветуйте учебник по OpenGl'у или скиньте мне на мыло koribut@ditek.dn.ua Заранее благодарен.
У тебя судя по всему сложилось неправильное (или пока что просто не сложилось) понимание того "как это работает". OpenGL - это автомат с конечным числом состояний. Все команды можно условно разделить на два типа - "Поменять состояние" и "Нарисовать". В OpenGL нет какого понятия как "Сцена" или "Объект сцены". Есть только состояния и графические примитивы.
Может я не сильно внимательно читал, но про поменять состояние у меня ничего в стеке не осталось. Коли можно, просветите плиз. А вот с рисованием у меня проблем нет.
Поменять состояние это например glEnable(GL_TEXTURE_2D) - включили текстурирование. или glPolygonMode - установили способ отрисовки поликов. Это все смена состояний.
Про это я знал, но не знал, что оно так не называется. Где найти описание функций содержащихся в OpenGL? На sgi.com ничего толкового не написано. SDK под Linux-32 скачал с расширением rpm. Чем открыть этот странный файл ума не приложу. Если можете, то помогите ,пожалуйста, я ж не вирусы писать собираюсь.
Hotwire rpm - пакет (т.е архив с программой) под Linux. Установить его в систему можно, набрав в консоле следующее: $ rpm -ivh <имя файла>.rpm
Спасибо, asmfan. Ссылочка очень полезная, но нет там информации про OpenGL for Windows поэтому и качал под Linux. Если есть у кого хоть какой-нибудь SDK по OpenGL'у, то будьте так добры, вышлете, пожалуйста, мне на мыло koribut@ditek.dn.ua Странную строчку, которую написал(а) CroX, из под какой операционной системы запускать необходимо?
Hotwire Разумеется никсовую программу в них и запускать ))) Загляни сюда, а вообще-то sdk OGL есть на msdn и входит в комплект PSDK, но слать PSDK тебе на мыло есно не буду - я не извращенец ))
Hotwire Все до OpenGL 1.2 описано в MSDN. Далее - расширения. Описаны тут: http://oss.sgi.com/projects/ogl-sample/registry
Спасибо, за ссылки, но я смог обнаружит тьму примеров на C и совсем не нашел на асме (я не падаю духом, а то что скорее всего я делаю это одним из первых, то это только добавлеет адреналина). О чем это я? Надо завязывать. Об игре собственно. Мне необходима 3D model моего танка, а что самое страшное так это то, как напялить на него текстуру. В тутуриале одного выдающегося автора (я говорю про Tyler Durden'a), текстурирование делается генерированием оной из RAW файла. Размер этого файла сами понимаете какой, да и работать с ним при помощи обычных редакторов невозможно. Можно ли заменить эту текстуру на JPEG or BMP. На gamedev.ru обнаружил статьи, косающиеся пиксельных и вертексных шейдеров. В моем понятии это ассемблер графического ядра. Мучает меня, значит, один вопрос о том, как написать собственную шейдрную или вертексную программу и какой инструментарий для этого необходим (кроме головы на плечах). Если у кого процесс рисования закончится успешно, пришлите плоды своего творчества.
Без особых проблем можно использовать и jpeg и прочие форматы. Нормальные люди создают оттекстурированные модели в 3d редакторах, а затем уже загружают посредством соответсвуюего API в программу (будь то OpenGL или Direct3D). В данный момент все шейдерные программы пишутся в соответствующих пакетах типа RenderMonkey или FXComposer на высокоуровневом языке GLSL или HLSL. Там же производится их отладка. Загрузка в программу производится опять же с помощью любого из выбранных 3D API. В итоге получается что в основном на ассемблер (если он больше приглянулся по душе) остается только вызов соотвествующих функций или методов и собственно сама игровая логика.
А где я мого скачать эти программки для шейдерного программирования? Какая из них к OpenGL'у относится. Я больше уважаю SGI нежели мелко-мягких. Как именно использовать JPEG файлы в процессе текстурирования? Я надеюсь, что на них не распространяется правило их размера (по вертикали и горизонтали обязательно кратный спепени двойки).
Если OGL, то GLSL соответственно, нужно посмотреть какой из редакторов умеет сохранять в такой формат. Смотреть ATI SDK, NVidia SDK. Также редакторы должны быть и отдельно. Размер двойки сейчас уже не актуален, но подавляющее большинство придерживается именно этого правила и текстур форматов 256x256, 512x512, 1024x1024 и так далее. Эффективнее пользоваться аппаратными форматами сжатия текстур, в частности, DDS. Ну и как всегда гугл, gamedev.ru, dtf.ru и иже с ними...
Hotwire Улыбнуло Основные тулзы делаются ни теми ни другими) FxComposer это NVIDIA. На их же сайте. RenderMonkey - ATi. Правда какова его судьба после слияния с AMD - не ясно (мне). PS. А почему на ассемблере?
На developer.nvidia.com нашел статью, посвященную написанию вертексных программ, а что самое интересное так то, что на чистом ассемблере. Как откомпилировать такую программку и чем?
Hotwire Совет используй GLSL под OGL. Там же есть и компилятор, то есть компилит сама видяха -). Советую книгу Александра Борескова "Программирование шейдеров на OpenGL" - или как-то похоже называется, сейчас точно не помню, где всё это очень подробно объясняется. Там же на диске с книгой есть ещё много всего, библа загружающая текстуры например, загрузчик моделей, правда для С++, но настоящему фасмовцу это не должно быть преградой -).
Hotwire легких путей ты видимо не ищешь Определись сначала на чем там написано. Могу только подсказать про DX. Cкомпилировать с помощью psa или vsa, смотря вертексный это шейдер или пиксельный. Находятся в DirectX SDK. Хотя заранее их можно не компилить, а грузить прямо так с помощью функций из билиотеки D3DX. Про Борескова правильно сказали: "Разработка и отладка шейдеров" называется книжка. Или есть еще "интсрументальные средства программирования и отладки шейдеров в DirectX и OpenGl" но она ватная какая-то.
В том доке, который я скачал, написаны команды графического процессора. По возможностям GPU гораздо круче CPU. Облом в том, что я не знаю, как до этого зверя добраться, а ведь там такая сила дремлет. Страшно подумать, что можно написать, используя графический кристалик.
Hotwire Совет всё-таки достать нормальную книгу, по шейдерам, типо той которую мы предлагаем с keYMax, разбираться по отрывочной информации из статей это не дело. В книге Борескова например всё очень подробно расписано, у меня например вопросов почти не стало после прочтения данной книги. Так что очень советую.