2012-08-29 1 views
0

Мое понимание GLKBaseEffect является то, что он приходит с какой-то общего назначения вершин и фрагментов шейдеров, а когда [baseEffect prepareToDraw] называется, эффект переходит значения свойств как transform и fog к OpenGL обмундирования и атрибутов , так что шейдеры по умолчанию получают униформу, которую они ожидают.Исходный код стандартных шейдеров GLKBaseEffect в

Кто-нибудь знает, как названы эти униформы и атрибуты? Лучше, есть ли у кого-нибудь исходный код стандартных шейдеров GLKBaseEffect?

ответ

1

Вы можете использовать Отладчик кадров в Xcode 4, чтобы взглянуть на сгенерированный GLSL. Если вы хотите изменить использование этих шейдеров, вам лучше не копировать источник шейдера в собственное приложение, а не полагаться на GLKit, чтобы генерировать их во время выполнения.

Единообразные имена, в частности, являются частной реализацией GLKit и могут и будут меняться в любое время, что приведет к разорению любого приложения, которое пытается установить эти поля напрямую. Если вы сами снимете текст шейдера, тогда таких проблем нет.

+0

Благодарим вас, вы имеете в виду отладчик кадров AMD/ATI в наборе инструментов GPU PerfStudio? Насколько я вижу, это работает только в Windows. Могу ли я подключиться к этому проекту с запущенным проектом XCode? – cheeesus

+2

Xcode 4 содержит OpenGL Frame Debugger. Это видео показывает, как захватить фрейм для отладки: http://developer.apple.com/library/mac/#recipes/xcode_help-debugger/articles/debugging_opengl_es_frame.html – Frogblast