Войти
OpenGL communityФорумРазвитие сообщества

Обсуждение дальнейших уроков (4 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 13 4 5 614 Следующая »
#45
13:11, 30 окт. 2010

Executor
> Наверное стоит показать как у спота сделать плавный переход между светом и
> тенью... В следующем уроке например...

Ну это впринципе нехитрая операция, есть два способа - четко задать две зоны влияния либо тюнить параметры спота, в частности коэффициент влияния.

PS. Вот кстати меня напрягает это слово "влияние", но я не придумал как его по другому обозвать :)


#46
13:18, 30 окт. 2010

KpeHDeJIb
Не знаю про какие ты зоны говоришь, можно просто задать два угла... Ты же у спота полюбому задаёшь один угол, а тут ещё второй угол задаётся и всё...

#47
13:19, 30 окт. 2010

Executor
> Не знаю про какие ты зоны говоришь, можно просто задать два угла...

Ну а урок ты смотрел? :)

> Ты же у спота полюбому задаёшь один угол, а тут ещё второй угол задаётся и всё...

Я про это и написал, как первый вариант решения задачи мягкого перехода.

#48
18:31, 30 окт. 2010

Кстати, прошу протестировать программу для шестого урока по теням http://gl33lessons.googlecode.com/files/lesson06.zip

Мышь и WASD - управление камерой, Space - показать depth-текстуру, Esc - выход, Alt-Enter - переход в полноэкранный режим

#49
21:33, 30 окт. 2010

Depth-текстура белая, почему-то. Карточка GeForce 8300.

Вопрос, кстати, насчёт glGenBuffers(). В случае при использование и индексного и вершинного буффера, есть ли разница между

glGenBuffers(2, &buffs);

                                и

glGenBuffers(1, &inds);
glGenBuffers(1, &verts);

? Т. е. будет ли не верным выделение буфферов по отдельности?

#50
21:38, 30 окт. 2010

KpeHDeJIb
> Ну а урок ты смотрел? :)

Код нет...

Алмаз
Разницы нет...

#51
0:04, 31 окт. 2010

Алмаз
> Depth-текстура белая, почему-то. Карточка GeForce 8300.

Про nVidia мне уже говорили такое, но тень-то есть? Если тень есть то видимо где-то уже в отображении текстуры проблема,
надо искать. Есть возможность поковырять шейдер 'quad'? Именно он отвечает за отрисовку полноэкранного квада. Возможно
самлер использовать другой, либо поиграться с возвращаемым функцией texture значениями, ну вот нету возможности у меня
тестировать на nVidia, к сожалению :(

#52
0:06, 31 окт. 2010

Алмаз
> glGenBuffers(2, &buffs);

Тут наверное имеется ввиду:

GLuint vbo[2];
glGenBuffers(2, vbo);

?

Если так, то разницы с двумя вызовами glGenBuffers можно сказать нету. Да и с 1000 скорее всего не будет, это легковесный вызов.

#53
7:55, 31 окт. 2010

KpeHDeJIb
Не помню где, давно гдето выкопал формулу спота и её всюду использую, может пригодится:
spot = saturate((dot(lightVec, lightDir) - outerAngle) / (innerAngle - outerAngle)

> Кстати, прошу протестировать программу для шестого урока по теням
> http://gl33lessons.googlecode.com/files/lesson06.zip

Тени видно, шадоумапа показывается белой, после перехода в фулскрин не правильно чтото с фокусом окна...

#54
10:15, 31 окт. 2010

Executor
> Тени видно, шадоумапа показывается белой, после перехода в фулскрин не
> правильно чтото с фокусом окна...

Не очень-то подробно :-/ "Чтото с фоусом" это как понимать? А текстура белая если шейдер quad.vs/fs покрутить? Или нету времени совсем?
Может она не белая, может просто глубины разница маленькая? Должно быть примерно так:

Изображение

Executor
> Не помню где, давно гдето выкопал формулу спота и её всюду использую, может пригодится:
> spot = saturate((dot(lightVec, lightDir) - outerAngle) / (innerAngle - outerAngle)

Спасибо, можно будет и в 5 уроке рассмотреть, сейчас бы с 6ым разобраться.

#55
10:49, 31 окт. 2010

KpeHDeJIb
> Не очень-то подробно :-/

Извини, не было времени подробнее отписаться и поглядеть чего там у тебя...

> "Чтото с фоусом" это как понимать?

Уже не важно, это первый раз когда запустил были какието глюки...
Сейчас всё работает как надо...

> А текстура белая если шейдер quad.vs/fs покрутить?

У тебя просто режим сравнения не выключается. Перед рисованием квада делай:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_NONE);
Потом возвращай:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_REF_TO_TEXTURE);

These requests must be consistent; the results of a texture lookup are undefined if:
 The sampler used in a texture lookup function is not one of the shadow sampler types, the texture object’s internal format is DEPTH_COMPONENT or DEPTH_STENCIL, and the TEXTURE_COMPARE_MODE is not NONE.

GL_COMPARE_R_TO_TEXTURE депрекейтед енум, надо вместо него писать GL_COMPARE_REF_TO_TEXTURE, хотя значения у констант одинаковые, посему не страшно, но всё таки в уроке пофиксить стоит...

Фикс: Спека...

#56
10:58, 31 окт. 2010

Executor
Ок, поправил, попробуй теперь, если не трудно, http://gl33lessons.googlecode.com/files/lesson06.zip

#57
11:00, 31 окт. 2010

KpeHDeJIb
Да, теперь работает всё правильно...
Второй раз примеры налетают на UB... :)

З.Ы. Пост выше пофиксил цитатами из спеки...

#58
11:16, 31 окт. 2010

Executor
> GL_COMPARE_REF_TO_TEXTURE
ок, не знал про такое, спасибо :)

> Второй раз примеры налетают на UB... :)
Вот поэтому и требуется ваша помощь в подготовке уроков, на всем потестить и все охватить просто не имею возможности )

#59
18:24, 3 ноя. 2010

было - бы неплохо урок по теням от точечных источников

Страницы: 13 4 5 614 Следующая »
OpenGL communityФорумРазвитие сообщества

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