2 Дядя Миша: а я траву ещё не смотрел даже. Мне просто она пока менее всего интересна была. Вечная проблема у нас - браши, вот туда я и смотрел, а там шейдер говорит не о многом, к тому же долгая война с интелами и ати показала, что как раз шейдеры брашей не очень хорошо справляются на экзотике.
А шейдеры для студиомоделей интересны, не спорю. У меня даже идея есть: в зависимости от лимитов gpu подсчитать максимальное количество костей для которых можно использовать VBO. Тогда если модель без анимации или имеет мало костей - считать её в gpu. Но это уже всё после выноса рендера в отдельную библиотеку.
Рендер придётся вынести отдельно по такой причине: невозможно одновременно использовать gles1 и gles2 api. Проинициализировал одно и используй. А общих у них совсем немного: загрузка текстур, загрузка массивов, glBlend*, glDepth*, glDraw*. Очевидно что нужно выбрать версию api, а потом весь код уже должен работать в пределах одного api. Внешний рендер (полностью включая инициализацию, загрузку текстур и рендер всего 2d в движке) тут оказывается незаменим
На трансляторах далеко не продвинешься. Уже есть транслятор в gl1.5 в gles2. Толку от него немного т.к в результате эмуляция работает медленнее и с каждым новым реализованным состоянием производительность уменьшается.