Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

Yakim (Watco... : (неделю назад) КРУЗИИИС!!!11

Изображение
lz : (неделю назад) КРУЗИС!
lz : (неделю назад) ЗИС
lz : (неделю назад) КРУ
Yakim (Watco... : (неделю назад) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (неделю назад) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (неделю назад) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (неделю назад) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (неделю назад) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (неделю назад) Не, спасибо, не в моем вкусе=)
smt005 : (неделю назад) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (неделю назад)
smt005 : (неделю назад) Или например такое, только с моделями из игры -> https://youtu.be/RFDdN5dcX8s
smt005 : (неделю назад) Yakim, да сами себя пните... :) Сделайте что-то, хотя бы уровня "Scrolling TopDown Shooter".
Yakim (Watco... : (неделю назад) так что, думаю завтра с утреца стартану марафон)
Yakim (Watco... : (неделю назад) хе-хе, не сомневайся, я в чате по уе уже поинтересовался, сказали обалденный сериал)))
Yandersen : (неделю назад) Оооооо, поди ща залипнет на пару дней, стопудофф. :)
Yakim (Watco... : (неделю назад) Окей гляну)
Yandersen : (неделю назад) Сериал Пространство посмотри. Не по части Мехов, просто шикарен, авось ману доставит.
Yakim (Watco... : (неделю назад) Дуст и ты уже закаленные и пустые, надож где-то ману доставать)))
Yakim (Watco... : (неделю назад) Думаю, кого быть пнуть, что-бы тот пнул в ответ да по сильнее.
Yakim (Watco... : (неделю назад) Давненько и не маленько хе-хе, делать нечего, прокрастинирую =)
Yandersen : (неделю назад) Якимка, ты там шо, упоролсо маленько? Чиво картинами опспамилсо?
Yakim (Watco... : (неделю назад) Изображение
Yakim (Watco... : (2 недель назад) no, you are blind
Гость : (2 недель назад) Изображение
lz : (2 недель назад) Изображение
Yakim (Watco... : (2 недель назад) Изображение
Гость : (2 недель назад) Подкорректирую: скорее всего, Механоидов в названии уже не будет, кхм.
Гость : (3 недель назад) Не будет М3!.. :(
Yakim (Watco... : (3 недель назад) Нихуяшечки от нас не зависит)
Yandersen : (4 недель назад) Зависит от нас самих. От Скаев - надежды нет.
Гость : (4 недель назад) народ я тут хотел узнать есть шанс на меха 3 ?
Yakim (Watco... : (4 недель назад) точно? :huh: а если найду? :lol:
lz : (4 недель назад) да не, я не)
Yakim (Watco... : (4 недель назад) Егор, ты говоришь так. будто у тебя они есть, так вот, че по чем?))))
Гость : (4 недель назад) Вот бы сейчас, в 2018, читы на мехов гуглить...
lz : (4 недель назад) Ты просто без читов гоняешь.
Yandersen : (4 недель назад) Ниправда, этот сукасадист должен существовать, его не может не быть! Иначе на кого тяготы жизни сваливать?
Yakim (Watco... : (4 недель назад) Юморист от бога, которого нет)))
Гость : (4 недель назад) Бля, я думал это поиск
Гость : (4 недель назад) Читы
Yakim (Watco... : (16 Май 2018 - 22:49) Ну как-бы да, насколько я помню, Дуст и Сплайн основатели =) Кажется идея Дуста, реализация Сплайна.
lz : (16 Май 2018 - 21:10) Вон даже свалкер2 будет, а ты говоришь. И P4 будет)
Yandersen : (16 Май 2018 - 17:18) ессниошибаюсь. Якимка, подтверди?..

Фотография
- - - - -

Моделирование освещения

graphics ray tracing rasterization lighting

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#21 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 19 Январь 2015 - 17:23


просто пирамиду видимости в экран всовываешь при рисовке тени, да?

Да, именно этот способ я пользую.


 


#22 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 19 Январь 2015 - 21:05

Ну так тогда причём здесь размер экрана? Пирамида будет просто немного другой формы и всё. Текстура тени может быть любого размера, и обычно её квадратной делают с размерами кратными степени двойки (архаизм с времен ГЛ1, когда non-POT текстуры не поддерживались), в то время как вьюпорт любым может быть.



#23 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 20 Январь 2015 - 15:51

Создаю текстуру, цепляю ее как depth-attachment к FBO. С позиции источника света рендер без цвета (а так же вкуса и запаха) при помощи ортогональной матрицы проекций в текстуру. Затем рендер с позиции наблюдателя с обычной, перспективной матрицей. Поверх текстурируем полученной в прошлом проходе depth-текстурой.

Вот так: Прикрепленный файл  shadowDemo.7z   1,9МБ   18 - Раз(а) скачано

Исходники тут: Прикрепленный файл  shadowDemo_src.7z   110,54К   17 - Раз(а) скачано


 


#24 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 20 Январь 2015 - 21:10

Такся...

 

1) Шейдер shadowmap.fs - шо за шляпные извращения сделать границы текстуры мягкими, когда подобное поддерживается аппаратно? Нужно лишь фильтр текстуры на GL_LINEAR выставить. На выходе получишь стандартный vec4 из которого выбираешь первый компонент.

 

2) Вершинные шейдеры (*.vs) - достаточно объявить входной аттрибут 4-хкомпонентным вектором, чтобы 4-я компонента автоматом была равна 1, даже если прога пихает 3-хкомпонентые вектора шейдеру.

 

3) Шейдер shadowmap.vs - трансформаций и матриц слишком много. Зачем тебе отдельная матрица для нормалей? Юзай ту же, что и для вершин - если у вектора 4-я компонента равна 0, то трансформация эквивалентной получается.

 

4) ехе: малацца, кульно! Но невнятна тёмная (не чёрная) полоса на полу по диагонали.

 

5) Доставило:

    // проверка программы на валидность
    if (!mShaderMgr->validateProgram(_program))

Не надоело ещё комменты на русском писать?  :D  Типа, русскими буквами английские термины легче воспринимаются?  :D  Ну, написал бы хоть:
 "проверка шейдерной программы на применимость при данных настройках ОпенГЛ".  :)

 

6) Бинденье текстур, вершинных аттрибутов и цветовых аутпутов - прошлый век. Юзай layout квалифаер чтоб прям в шейдере указывать, в каком слоте нужная текстура сидит, из какого слота вершинный аттрибут вытаскивать и в какой по счёту таргет фреймбуффера писать цвет.

А в проге просто биндни текстуру туда один раз и пусть в том текстурном слоте окалачивается вечно. В случае с depth-текстурой идеальное решение - создал, прицепил, настроил и забыл.

 

7) При рендере в ФБО вижу запрет записи цветовых компонент (glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE) ;) и разрешение записи в буффер глубины - это всё зачем вапще?! У твоего ФБО что, цветовые текстуры-недотроги прицеплены? Их нет - никуда ничего писаться итак не будет. Активен может быть только один ФБО, дефолтный не попортиться, пока в ФБО рендеришь.



#25 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 21 Январь 2015 - 03:12

А, чорт, перешел же на объединенный файл шейдера. Эти *.vs и *.fs есть пережиток прошлого.

 


1) ...  

2) ...

Честно - не знал.


3) ...Зачем тебе отдельная матрица для нормалей? Юзай ту же, что и для вершин - если у вектора 4-я компонента равна 0, то трансформация эквивалентной получается.

Подумаю над этим.

Пока удобнее в программе матрицу перевернуть и передать её уже в шейдер.


4) ... невнятна тёмная (не чёрная) полоса на полу по диагонали.

Вот моя проблема. Никак не пойму, от чего она образуется


5) Доставило:     // проверка программы на валидность     if (!mShaderMgr->validateProgram(_program)) Не надоело ещё комменты на русском писать?

Ну, транлитировать получается короче, чем рассусоливать всё.


6) Бинденье текстур, вершинных аттрибутов и цветовых аутпутов - прошлый век. Юзай layout квалифаер чтоб прям в шейдере указывать

Поподробнее, пожалста


7) При рендере в ФБО вижу запрет записи цветовых компонент (glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE) и разрешение записи в буффер глубины - это всё зачем вапще?! У твоего ФБО что, цветовые текстуры-недотроги прицеплены? Их нет - никуда ничего писаться итак не будет. Активен может быть только один ФБО, дефолтный не попортиться, пока в ФБО рендеришь.

Ок, исправлюсь


 


#26 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 21 Январь 2015 - 08:50

Поподробнее о магической уточняющей приписке, именуемой "layout".

В случае вершинного шейдера каждый входной аттрибут имеет свой слот. По-умолчанию слоты нумеруются от 0 далее в порядке объявления, но это не очень официально. Правильнее в проге запрашивать локейшн аттрибута по его имени (с помощью ф.-ии glGetAttribLocation). Но это путанный бессмысленный маразм. Проще в шейдере явно прописать локейшн каждого аттрибута:

layout(location = 0) in vec3 VertexCoord;
layout(location = 1) in mat3 TBN;
layout(location = 4) in uvec4 Attrib;

 

И точно также с выходными аттрибутами вершинного шейдера и входными аттрибутами фрагментного:

layout(location = 0) out vec3 ViewPos;
layout(location = 1) out vec3 Normal;

 

Причём имена там и там могут быть разные - главное, чтоб локейшн совпадал. Во фрагментном ещё и выходные данные точно также локейшном указываются:

 

layout(location = 0) in vec3 Pos;
layout(location = 1) in vec3 N;
layout(location = 0) out vec4 Color;

 

Т.е. с помощью "layout" мы жёстко определяем интерфейс входных и выходных данных каждого шейдера. Всё логично.

А кстати слоты униформов точно также фиксировать можно в любом из шейдеров:

layout(location = 0) uniform mat4 ModelViewMatrix;
layout(location = 4) uniform mat4 ProjectionMatrix;

 

Следует отметить, что каждый слот имеет размер 32 байта (поэтому dvec4 займёт два слота) и не может включать более одного вектора (поэтому каждому столбцу матрицы свой отдельный слот присваивается).

 

Ну и напоследок в GLSL 4.3 разрешили, наконец, текстуры прямо в шейдерах дефолтно биндить к желаемым текстурным юнитам:

 

layout(binding = 0) uniform sampler2D DiffuseTexture;

layout(binding = 1) uniform sampler2D SpecularTexture;

layout(binding = 7) uniform sampler2DShadow ShadowMap;

 

Пнятненько?



#27 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 24 Январь 2015 - 10:17

Пока колдую над демкой с тенями

Сохраняю промежуточный результат

Прикрепленный файл  shadowDemo_v2.7z   1,91МБ   20 - Раз(а) скачано

 


 


#28 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 26 Январь 2015 - 16:58

Да, я переключаюсь: glCullFace(GL_FRONT) когда проходит рендер в текстуру, и glCullFace(GL_BACK) когда простой рендер.

Ты правильно заметил, что "binding" добавили только в GLSL 4.2. Я прогаю в чистом GLSL 3.3, там этого еще нету.

Получилось кстати отобразить depth-текстуру

shadowDemo3_screen01.png

Ща воюю с картинкой - почему-то на разных машинах (обе с видеокартами от nVidia) рисуется разное.

shadowDemo3_screen00.png

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

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

 

Демо с тенью (версия 4) Прикрепленный файл  shadowDemo_v4.7z   1,91МБ   4 - Раз(а) скачано

Исходники Прикрепленный файл  shadowDemo_source.7z   116,83К   5 - Раз(а) скачано

 

Да, ещё вывел для себя правило - "В один проход рендера один конкретный VAO будет работать только с одной конкретной шейдерной программой"

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 
Вот.
lightDemo3_screen02.png
Прикрепленный файл  lightDemo3.7z   5,27МБ   59 - Раз(а) скачано исходный код Прикрепленный файл  lightDemo3_source.7z   147,67К   59 - Раз(а) скачано
Выдалась более-менее свободная неделька на работе. Новая программка, демонстрирующая разные типы освещения. По Фонгу. по Блинну, по модели Кука-Торренса, типа Cartoon и, самый главный мой затык, normal-mapping по Фонгу и Куку.
Камера по-прежнему летает свободно (WASDQE и мышка). Есть фиксированные положения - '1', '2' и '3'. Можно также покрутиться вокруг модели стрелками 'влево'-'вправо'.
Клавиша Enter вкл/выкл вращение модели и света.
Клавиша Space вкл/выкл курсор.
Клавиша F переключает режимы отображения модели глайдера.
Клавишb F1-F6 переключают шейдеры.
Выход по Escape.
Основное здесь всё же не шейдеры с различными моделями освещения, а вынос материала за программу. Теперь можно менять некоторые параметры и текстуры в материале не прибегая к перекомпилляции всех исходников. Я буду и дальше продолжать улучшать и углублять этот подход.
Ну, и плюс мелкие доработки вроде появившегося счетчика ФПС, правильно работающего таймера в лог-файле и еще что-то там.

Сообщение отредактировал PA3UJIb: 22 Март 2015 - 10:52
Новая демка (исправлено) - 22.03.2015

 





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных