Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » Программирование под Linux/Mac OS X » компиляция исходников из книги про шейдеры для Mac OS X


компиляция исходников из книги про шейдеры для Mac OS X

Сообщений 1 страница 12 из 12

1

Следуя приведенным здесь: http://steps3d.narod.ru/tutorials/shade … acosx.html инструкциям удалось без проблем установить zlib.
При установке libjpeg возникла следующая ошибка

Код:
/usr/bin/install -c cjpeg /usr/local/bin/cjpeg
install: /usr/local/bin/cjpeg: No such file or directory

Она решилась весьма логичным образом

Код:
sudo -s
cd /usr/local/
mkdir bin

После выполнения этого кода комманда sudo make install была успешно завершена. Больше проблем при установке libjpeg не возникало.
Установить libpng вообще не удалось. Инсталляция завершается с ошибкой. Попробовал искать другие инструкции. нашел, попробовал. Тот же результат. Однако, пока я скомпилировал несколько примеров из книги (10 и 11), ни один не использовал png. Так что не смертельно. Спасибо за исходники!

P.S. Кстати, давно было интересно, под какой лицензией распространяются данные исходные коды? Спрашиваю с тем, что хочу использовать некоторые наработки в программе для iPhone.

0

2

У меня все ставилось,хотя м.б. отдельные части нужно под su
Если я не ошибкась для libpng нужно сперва поставить zlib и кроме того заменть Makefile
Насчет лицензии как-то не думал, скорее всего та же,под которой распространяются libjpge/zlib/libpng
Хотите использовать - пожалуста

0

3

Для libpng я понял, что нужно ставить сначала zlib, поставил. И мэйкфайлы заменял и другим методам компиляции следовал. Пробовал компилировать с sudo -s. один результат- завершается с "кодом 1" и не объясняет причины. Однако, исходники примеров компилируются и работают.
За разрешение использовать- спасибо! Если возьмусь портировать libMesh на айфон, обязательно выложу исходники.

P.S. Хотя для себя сам еще не определил, целесообразно ли использовать плохое 3D вместо хорошего 2D. Ведь список расширений OpenGL  для айфона очень мал.. Большинство эффектов приходится тупо рисовать.

0

4

Ну так в последних моделях (последний iPhone и последний iPodTouch)  уже OpenGL ES 2.0, т.е. есть нормальные шейдеры
А кваку 3 перенесли же и ничего, работает :))

0

5

ффп не так уж и мало может. Посмотрите, например, на NFSU

0

6

Господа, а какие же у них бюджеты.. Ни одиночному разработчику ни небольшой команде такое сделать не удастся.. А про айфон 3G S, на 3dnews не так давно писали что топовый будет стоить в России 40000. Не стоит делать на него опору.

0

7

На него впринципе в ближайшее время ориентироваться не стоит. Да и на Россию тоже...
Quake переносила Open Source команда. EA конечно другой разговор, но они достаточно хорошо показывают планку возможностей iPhone. Сильно лучше не сделать, но даже по собственному опыту могу сказать, что упираться производительность будет скорее в CPU (ARM v6 @ 416 MHz), чем в GPU (PowerVR MBX). Также очень непрятныйм ограничением является то, что драйвер OpenGL может использовать только 20mb памяти (правда ввиду особенностей iPhone OS из 128 mb RAM программисту достается дай бог 30 на все про все(включая OpenGL). В свете этого - не такое уж и страшное ограничение.)

И мне вот интересно, каких таких расширений вам не хватает для графики на мобильной платформе?

Отредактировано crsib (2009-09-22 00:05:13)

+1

8

Список расширений:
http://developer.apple.com/iphone/libra … -CH106-SW1
А что здесь, собственно, есть? Есть ФБО, но нет шейдеров. Собственно, для реализации эффектов имеется лишь доступ к пикселам текстуры, а это не есть хорошо. Если не прав, буду рад услышать в чем.
И, кстати, насчет производительности. Здесь всего лишь встает вопрос разумного управления памятью.. А в пресловутом NFS- ну что там есть? Какая такая нереальная графика? Там работа состояла в правильном дизайне, реализовать- дело техники. ИМХО. А вот как работает квак- этим можно только восхищаться   8-). В байки про то, что его реально портировали и он нормально работает на айфоне я не верил, пока сам не увидел это.

0

9

Если я не  ошибкаюсь есть dot3
Кроме того доказано, что очень многие эффекты можно реализовать за счет многопроходности - задолго до GPU-шейдеров в SGI был проект (и статья) где они релаизовывали кучу renderman-ких шейдеров через классический многопроходный OpenGL
А iPhone/iPod Touch последнего поколения уже вроде как тянут фрагментные шейдеры

+1

10

Информация о девайсе от девайса:

Vendor: Imagination Technologies
Renderer: PowerVR MBXLite with VGPLite
Version: OpenGL ES-CM 1.1 (48)
Extensions:
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_lod_bias
GL_IMG_read_format
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_format_BGRA8888
GL_OES_blend_subtract
GL_OES_compressed_paletted_texture
GL_OES_depth24
GL_OES_draw_texture
GL_OES_framebuffer_object
GL_OES_mapbuffer
GL_OES_matrix_palette
GL_OES_point_size_array
GL_OES_point_sprite
GL_OES_read_format
GL_OES_rgb8_rgba8
GL_OES_texture_mirrored_repeat

Напоминаю, что VBO, DOT3 и другие веселые штуки входят в ядро OpenGL ES 1.1. (Оно аналогично ядру 1.5 (за небольшими, не очень критичными отличиями) обычного OpenGL, а вовсе не 1.1). Расширения OES - своего рода аналог ARB расширений. IMG - PowerVR Specific

Далее смотрим на слово VGPLite, гуглим его и крепко задумываемся, почему Apple отказалось предоставлять разработчикам GL_IMG_vertex_program (аналог соответсвующего ARB расширения). Лично для себя я так и не нашел ответа на этот вопрос.

perkap написал(а):

Есть ФБО, но нет шейдеров.

Массово шейдеры (особенно на high-level языках) начали использоваться сравнительно недавно, но и без них (и на значительно более слабом железе) делались шедевры (в пяде случаев - даже по графике. Взять например id tech 3, на базе которого выходили (и очень хорошо покупались) десятки игр даже после появления SM2.0 карт. Активно начали использовать 3.0 только после массового появления 4.0 ускорителей. Сейчас правда очень многие уходят на SM4.0, одноко, черт возьми, ATI 5870 уже вышел. И не за горами выход монстра на чипе GT300. А это уже, простите, SM 5.0 карты. Но что-то я отвлекся - основная суть в том, что шейдеры это далеко не единственный способ давать красивую и быструю 3D графику

PS Железо у iPhone очень мощное, особенно на фоне PSP/NDS. По ряду причин, в основном исторических, у устройства своего рода проблемы с колличеством доступной памяти. Однако ею можно очень грамотно распоряжаться - использовать PVRTC текстуры, использовать VBO. Не плодить сущности Obj-C/C++ по принципу "чтоб было", не допускать повторной загрузки ресурсов, хранить ресурсы во флеш-памяти и грузить только по необходимости и т.д. и т.п. (а 3GS - видимо самая мощная портативная игровая консоль на рынке. Правда по стоимости очень приличного PC)

PPS. Очень важно:
a) собирать код под ARM, а не THUMB
и) математику на поздних стадиях лучше делать на inline-ассемблере с явным использованием VFP(своеобразный аналог SSE/SEE2). gcc-llvm конечно сравнительно не плохо умеет проводить векторизацию кода, одако это как раз тот момент, когда assembler сможет очень много дать.

Отредактировано crsib (2009-09-22 22:31:51)

0

11

Так я ж не спорю, что сделать можно. Но сколько человеко- часов на это нужно?
А насчет шейдеров-ну и что я буду делать с многопроходностью без шейдеров? Я, наверное, дурак, но не понимаю что мне с ней делать. Рендерить во фрейм-буфер и читать-писать прямым доступом к пикселам? Этож бред. На этом и закончатся щуплые ресурсы и CPU и GPU.

0

12

perkap написал(а):

А насчет шейдеров-ну и что я буду делать с многопроходностью без шейдеров? Я, наверное, дурак, но не понимаю что мне с ней делать. Рендерить во фрейм-буфер и читать-писать прямым доступом к пикселам? Этож бред. На этом и закончатся щуплые ресурсы и CPU и GPU.

Почитайте для затравки старые статьи Алексея. Поверьте, даже в один проход при правильно-настроенном мультитекстурировании можно получить очень интересные эффекты. Добавьте к этому почти бесплатный alpha-blending на PowerVR и сможете реализовать очень много эффектов совершенно без шейдеров. (Шейдеры собственно и занимаются тем, что "накладывают" текстуры и выполняют их "смешивание" по тем или иным правилам (что и есть blending). Да, Cook-Torrance вы не сделаете, но поверьте, достаточно правильно задать текстурные координаиты и подобрать текстуры, что бы получить эффект металла. Это касается почти всего, кроме тех фич которые иногда укдаадывают на лопатки даже mid-end ускорители. То есть они бы все равно не работали бы на девайсе, даже если бы у него была поддержка шейдеров.

perkap написал(а):

Так я ж не спорю, что сделать можно. Но сколько человеко- часов на это нужно?

Нужно на что? Если вы хотите писать именно игры, то используйте готовые движки, например Oolong Engine. Хотя одного человека даже на маленькую игру - мало.

0


Вы здесь » Компьютерная графика » Программирование под Linux/Mac OS X » компиляция исходников из книги про шейдеры для Mac OS X


создать форум