одинаковые переменные в opengl - PullRequest
1 голос
/ 01 ноября 2010

У меня есть две переменные, которые я получаю из шейдера в opengl. Я делаю что-то вроде этого.

    vLoc = glGetAttribLocation(progId,"vPosition");
    nLoc = glGetAttribLocation(progId,"vNormal");

matViewLoc = glGetUniformLocation(progId,"matView");
matProjLoc = glGetUniformLocation(progId,"matProj");
matTranslateLoc = glGetUniformLocation(progId,"matTranslate");

vLoc и projLoc возвращают одно и то же местоположение. Кто-нибудь знает почему? Спасибо!

Ответы [ 2 ]

4 голосов
/ 02 ноября 2010

Пространство для одинаковых местоположений и местоположений атрибутов отличается, поэтому вы можете иметь одинаковые идентификаторы, но они ссылаются на разные объекты.

Нельзя передать местоположение атрибута функции glUniform или унифицированному расположениюк функции attrib.

0 голосов
/ 01 ноября 2010

Вы связали местоположение атрибута при создании программы шейдера с помощью glBindAttribLocation?

Вам нужно что-то вроде этого:

glBindAttribLocation(progId, 0, "vPosition");
glBindAttribLocation(progId, 1, "vNormal");
...