1. В обычном GL есть glGetTexImage,
а как на GLES получить доступ к пикселям в текстуре или хотя бы скопировать их в мой буффер?
Напрашивается решение - хранить копию в системной памяти изначально, но это же мобильная платформа и тут надо память экономить.
2. Есть ли аналог glSecondaryColor?
3. когда мы заливаем текстуру через glTexImage2D по умолчанию предъявляется требование - следование пикселей в памяти друг за другом, т.е
pitch = width * bpp;
если же у нас pitch != width * bpp то в OpenGL можно сделать примерно так:
glPixelStorei (GL_UNPACK_ROW_LENGTH, src.pitch/src.bytespp);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
А что делать в GLES, если тут нет GL_UNPACK_ROW_LENGTH?
Я вижу только 2 неоптимальных:
- перевыделить память для картинки с нужным требованием
- или вызывать на каждую строчку glTexSubImage
Есть другие способы?
неплохо было бы обменяться аськами, чтоб советоваться. моя 123-393-393
Frankinshtein
>В обычном GL есть glGetTexImage,
и лучше этим не пользоваться
>а как на GLES получить доступ к пикселям в текстуре или хотя бы скопировать их в мой буффер?
А можно ознакомиться с исходной задачей?
задачи могут быть разные, например, при клике на контроле определить значение альфа компоненты и игнорировать его если = 0
или нарисовать декаль на текстуру большого размера, ну не хранить же копию ее в ОЗУ?
Frankinshtein
>при клике на контроле определить значение альфа компоненты и игнорировать его если = 0
И что, для этого надо всё делать через 3д-апи???
почему бы и нет?
конечно всегда можно оптимизировать, сделать битсет из альфы и бла-бла-бла...
но зачем лишний расход памяти, если и так работает нормально?
Frankinshtein
>если и так работает нормально
glGetTexImage это НЕнормально и слава богу что этого нету ни в первом, ни во втором ГЛЕСе ;)
так предложи альтернативу
Тыж сам дал ответ в 4-м посте
это не ответ
скажи мне, как нарисовать декаль на большой текстуре?
>это не ответ
Ну почему - есть цветная картинка кнопки и есть ЧБ-картинка маски. Как кому удобно, тот так и разруливает это
>скажи мне, как нарисовать декаль на большой текстуре?
Сорри, я не знаю что такое "декаль на текстуре". Если это типа "следа от выстрела на стене" то тогда не понимаю твою исходную задачу
как пример, делаем мы кримсонленд, с миллионами крови следов на земле, рисовать ее надо сразу в текстуру
ну или другой, есть плоская поверхность земли, состоящая из тайлов, поверх которой мы периодически рисуем травку или добавляем что-то еще
Чтото меня стали терзать сомнения про свзять этих новых задачек и старых. Ну да ладно :)
Надо спросить у игроделов про эти фичи, мне почти не у кого :)
А у меня есть игра, в которой как в вормз генерится сущность (планета в моем случае) накидыванием на нее всяких объектов, и соответственно поверхность эта уничтожаемая взрывами. Как эту задачу решать в глесе? Я не представляю..
jaguard
А на GL/D3D представляешь?
YgriK
На D3D - элементарно. Lock/Unlock или render to texture.
Тема в архиве.