Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неправильное отображение Bump Mapping, после поворота полигона 
V
    Опции темы
Vetos
Дата 26.4.2015, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.4.2005

Репутация: 3
Всего: 4



Здравствуйте уважаемые программисты!
        В сети существует множество уроков про Bump Mapping, и во всех уроках теория вроде бы одна, но реализации разные. Хоть убейте, но вникнуть в математику этого процесса для меня проблематично, особо в математике не силен, но программный подход мне понятен, в принципе ничего сложного, если бы в сети не было кучи вариантов исполнения. Я использую связку Qt 5.4 + OpenGL 3.3. Немного оформив все функции в классы, я переработал урок или если быть точнее туториал Урок 26 - Карта нормалей. Всё вроде бы ничего, бамп работает, но первый баг что заметен, плоскость вращающаяся под одним и тем же направлением источника света и направлением наблюдателя - от 0-180 градусов освещается вроде бы как положено, но при 180-360 градусов заметно темнеет и не даёт отражения. Т.е. плоскость, допустим квадрат, в своем центре крутится вокруг оси Х и он ей перпендикулярен, т.е. бамп должен работать одинаково если этот квадрат оказался к верх ногами, но нет, он становится слегка темнее, и на нем больше не показываются блики, когда пройдет еще пол оборота(т.е. станет на ноги:)) всё обратно отображается отлично. Я так полагаю что тут зависит направление тангента к источнику освещения, он проворачивается вместе с нормалью при повороте полигона в вершинном шейдере. Но мне не ясно одно - ка с этим бороться, ведь будет проблематично подстраивать объекты в "мире" под источник освещения, хотелось бы не зависить от угла поворота. 
        Может кто сталкивался с такой проблемой, не охота останавливаться на этом и изучить Parallax Mapping или типо Offset Bump Mapping. Но если в простом деле я наткнулся на такой подводный камень, даже нехочется знать что ждет меня в дальнейшем.   

        P.S. Кстати я не шел подряд по этим урокам, я взял только участок кода с получением Тангента, и функцию получения нормали из bump текстуры в фрагметном шейдере. У меня объект вращается с помощью квантерниона и сцена по отношению к камере вращается также с помощью него. Хотя в этих уроках авторы используют матрицы. Если понадобиться выложу куски исходного кода, знаю мало людей в этом разбирается и готовы помогать остальным, но если Кто-то поможет решить эту проблему, здесь появится туториал по Bump Mapping'у, который, я думаю, решит все вопросы по этой теме на форуме)))! Заранее спасибо!  
        
        P.S.(2) Приклепляю принтскрины двух ситуаций, когда стенка из кирпича повернута влево, и когда вправо на 90 градусов, т.е. она вообще по длине была вертикальна, но когда переворачиваешь на -90, она отображается вроде бы ничего так, а когда на +90(как на второй картинке) то  она затемненная какая-то и нет на ней отражений.

        В чем же бок, где же собака зарыта, надеюсь кто нибудь поможет, хотя бы толкните идею, может и сам разколупаю, но очень хотелось бы помощи(отпуска осталось мало, не хотел бы на этом стопориться). Спасибо!

Добавлено через 7 минут и 48 секунд
Извиняюсь за эту тему, но всё там работает в порядке:) Я просто решил в своем шейдере нормализовать BumpNormal получаемую с текстуры, и это и привело к этой ошибке. Я извиняюсь еще раз, но пока не начнешь размышлять над тем как передать свои проблемы другим, сам не догадаешься. Только дописал пост и тут же вспомнил про мою модернизацию))) Всё таки там на сайте все чётко, если что можно удалить этот пост, дабы не захломлять форум. Еще раз Всем спасибо!

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  moiyspex.jpg 477,15 Kb


--------------------
Строить нужно так, чтоб никто не сломал!
А ломать, чтоб никто не знал 8) :ne_huliganit 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0923 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.