OpenGL communityФорумУроки по OpenGL

Урок 2 - Рисуем первый треугольник (комментарии) (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
12:56, 30 окт 2010

Executor
> Ты хочешь два буфера объединить в один как я понял.
Больше не хочу =) гемморно и профита никакого...

PS ок ок умолкаю =)

#16
12:58, 30 окт 2010

Pixar
AxMeT

Давайте все таки вопросы не по уроку конкретно задавать в разделе "Вопросы по программированию", это будет гораздо удобнее отслеживать :)

#17
0:25, 10 ноя 2010

glValidateProgram
следует вызывать только после glUseProgram ?

#18
9:43, 10 ноя 2010

yatagarasu
> glValidateProgram
Да. Мало того, перед вызовом glValidateProgram надо установить различные номера текстурных юнитов на семплера и т.п, потому что:
glValidateProgram checks to see whether the executables contained in program can execute given the current OpenGL state.

Это значит что glValidateProgram проверяет может ли быть использована шейдерная программа с текущим стейтом, фактически как
если бы ты тут же воспользовался шейдерной программой после вызова glValidateProgram, и если программа не валидна, то ты не
сможешь ее использовать пока не установишь правильные стейты. А вообще glValidateProgram рекомендуется использовать только
при разработке, в релизе ее можно не использовать уже.

#19
13:27, 10 ноя 2010

KpeHDeJIb
понятно, спасибо

еще вопрос. иногда валится на на вызове glBindVertexArray во время рисования.
сделал вроде все один в один. meshVAO равен 1. всегда.
иногда рисует триугольник иногда валится где-то в недрах nvogl....dll

#20
14:35, 10 ноя 2010

yatagarasu
Скорее всего гдето гадишь в память... Без кода сложно чтото сказать...

#21
16:33, 10 ноя 2010

yatagarasu
Поддерживаю Executor, возможно где-то выходишь за пределы массива, либо задаешь размеры больше чем передаешь массив.

#22
20:08, 10 ноя 2010

спасибо. сегодня попробую разобраться.

#23
20:09, 10 ноя 2010

yatagarasu
gdebugger тебе в помощь...

#24
1:06, 18 ноя 2010

точно такой же access violation иногда возникает при запуске скомпиленного из примера.
то ли дело в 2010 студии, то ли у меня что-то с видюхой.
семерку между тестами уже переустанавливал, разную. так что вряд-ли она.

upd:
хм. да. похоже в семерке с апдейтом мне пришли не последние дрова. ща обновляюсь.

upd:
да, это действительно помогло.

#25
20:27, 16 янв 2011

KpeHDeJIb
Кстати, тут походу нашлась ошибочка в примере:
http://www.gamedev.ru/code/forum/?id=142869
В общем вроде бы нигде нет glBindFragDataLocation и лейаутов вроде тоже нет. Или просто не по глазам.

#26
2:47, 17 янв 2011

Executor
Дал комментарий:
http://www.gamedev.ru/code/forum/?id=142869#m13

Дублирую тут:
Erion
> Этот пример не соответствует спецификации и будет работать не на всех
> видеокартах/версиях драйверов.
Executor
> Видимо просто опечатка...
> Надо обязательно вызывать эту функцию или использовать лейауты...

Тогда поясните что значат следующие строчки в спеке:

When a program is linked, any varying out variables without a binding speci-
fied either through BindFragDataLocationIndexed or BindFragDataLocation,
or explicitly set within the shader text will automatically be bound to fragment
colors and indices by the GL. All such assignments will use color indices of
zero.

Может я неправильно понял, что без использования этих функций все переменные помеченные как out будут иметь индекс 0?

#27
10:04, 17 янв 2011

Да, наверное так и есть. В статье наверное стоит небольшое дополнение сделать по этому поводу.

#28
18:12, 20 янв 2011

Переводил код на Delphi. В результате получил пустое окно. После долгих раздумий выяснилось, что что-то с проекцией.
Процедура вычисления матрицы такая же, как и в примере:

procedure Matrix4Perspective(var Matr: TMat4;fovy,aspect,zNear,zFar: GLfloat);
var
  f,A,B: GLfloat;
begin
  f := 1/Tan(fovy*Pi/(360));
  A := (zFar+zNear)/(zNear-zFar);
  B := (2*zNear*zFar)/(zNear-zFar);

  Matr[0] := f/aspect;   Matr[1] := 0;   Matr[2] := 0;   Matr[3] := 0;
  Matr[4] := 0;          Matr[5] := f;   Matr[6] := 0;   Matr[7] := 0;
  Matr[8] := 0;          Matr[9] := 0;   Matr[10] := A;  Matr[11] := B;
  Matr[12] := 0;         Matr[13] := 0;  Matr[14] := -1.0; Matr[15] := 0;

end;

При использовании параметров функции из урока - черный экран. Подставил такие:

Matrix4Perspective(ProjectionMatrix,60,4/3,-0.5,0.5);

В чем может быть дело?

#29
18:40, 20 янв 2011

DimaO
> Matrix4Perspective(ProjectionMatrix,60,4/3,-0.5,0.5);
zNear не может быть отрицательным равно как и равным нулю. Иначе получается бессмыслица. Проверяй все еще раз, единственный совет.

Страницы: 1 2 3 4 5 Следующая »
OpenGL communityФорумУроки по OpenGL

Тема в архиве.