HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > uniform vec3 в GLSL
не передаётся
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



uniform vec3 в GLSL

Как-то странно себя ведут шейдеры. Не получается передать в шейдер из основной программы параметр типа vec3 (позиция камеры, позиция источника света и т.п.). В вертексном шейдере переменная объявлена как uniform vec3 lightPosition; Дальше в программе пишу

C++ Source Code:
lightLoc = glGetUniformLocationARB(progObj, "lightPosition");

Затем я передаю в шейдер параметр функцией
C++ Source Code:
float light[] = {5000.0f, 1000.0f, 5000.0f};
glUniform3fvARB(lightLoc, 1, light);

но в шейдере lightPosition всё равно равно 0 В чём может быть проблема?

Сообщить модератору | | IP: Записан
Сообщение: 45661

Старое сообщение 21-06-2009 12:24
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Шейдер собрался правильно? Validate сделал?
Передаешь после вызова glUseProgramObjectARB?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 45662

Старое сообщение 21-06-2009 12:32
-
axer
Новичок

Дата регистрации: Sep 2007
Проживает: Харьков
Сообщений: 28
Возраст: 35

Рейтинг



Да, всё правильно. Шейдер даже работает, но lightPosition = (0, 0, 0)

Добавлено 21-06-2009 в 16:43:

Так, с этим разобрался. Теперь проблема другая - uniform sampler2D texture; не передаётся. Точнее, вызываю glUniform1iARB(textureLoc, tex); (tex - номер текстуры), всё нормально. Но потом вызываю glDrawArrays и программа завершается с ошибкой доступа.

Сообщить модератору | | IP: Записан
Сообщение: 45663

Старое сообщение 21-06-2009 13:43
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 14:05. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > uniform vec3 в GLSL
не передаётся
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024