А вот например мне в шейдер надо переслать 2 текстурные координаты.
Где то читал, что для первой текстуры glTexCoord2f будет быстрее чем glMultiTexCoord2f ( даже по количеству параметров ). То есть для второй текстуры лучше передавать через glColor2f? ( если цвет нам не нужен )
glTexCoord2f это то же самое, что glMultiTexCoord2f для нулевого юнита, т.е. синонимы. Разве что сэкономишь место в стеке (передача на 1 переменную меньше), но эту экономию смогут заметить только высокочувствительные приборы
В шейдеры надо всё передавать через вершинные атрибуты - glVertexAttrib. А еще лучше - через массивы атрибутов - glVertexAttribPointer. Такие функции, как glBegin, glTexCoord, glMultiTexCoord, glVertex, glVertexPointer и т.п. - считаются deprecated и не рекомендуются к использованию.
Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE
( в плане с каких видеокарт они поддерживаются ), и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?
n00b писал: Для хранения экрана можно ли без опаски использовать GL_TEXTURE_RECTANGLE
Да, при наличии расширения. Оно есть, разумеется, не везде. На каких видеокартах поддерживается? Да в общем-то на всех более-менее современных, и даже не современных, типа GeForce FX.
Цитата:
n00b писал: и при первом создании текстуры можно ли не создавать пустой массив данных в памяти, а просто указать NULL ?
Да, просто в этом случае текстура не будет заполнена пикселями. Но образ в памяти создастся.
Допилил, сделал эффект сепии ( надеюсь похоже ).
В nvidia sdk примерчик GL_TEXTURE_RECTANGLE идет для первого gforsа, надеюсь у ATI они тоже появились не позже чем ARBшные шейдеры.
Использование Selection Buffer имеет подводные камни? Типа того что он глючит на ATI и т.п.?
__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов
HKS писал: чтобы шло на компах года эдак с 2006 и ноутах?
Ну, так смотри на эти железяки - OpenGL 2.0 на них был. Просто если хочется сделать что-то быстрое на современных ноутбуках - надо использовать более свежую версию, а если хочется, чтоб оно запускалось на x800 или 6800 - надо версию постарше, но на ноутах оно будет идти медленнее. Выбирай ЦА как бы.
Скорость тут потенциально упоминается, ибо все от рук зависит.
Есть такой вот вопрос, какие glEnable/glDisable овверайдятся шейдером, и в целом, какие могут быть подводные какмни, если написать до начала главного цикла скажет glEnable(GL_TEXTURE_2D) и glEnable(GL_BLENDING) и больше их не трогать до окончания цикла? Давно уже не занимался опенжэлем, а сейчас на новом системнике вот заново сел, но уже кучу всего позабыл