|
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 71
|
|
Карта теней от солнца24.05.2020, 21:30. Показов 5572. Ответов 29
Добрый день, есть такой вопрос: как можно реализовать карту теней от солнца, единственное, что я нашел на просторах интернета это то, что можно использовать glOrtho, но как его использовать. Поясню, моё "солнце" записывается в шейдер как единичный вектор направления солнца, то-есть нет определенной позиции, как тогда мне отрисовывать карту теней, подойдет ли перемещение камеры на расстояние чтобы видеть весь мир в рамках картинки сверху, ну или под углом солнца?
0
|
|
| 24.05.2020, 21:30 | |
|
Ответы с готовыми решениями:
29
Карта теней Создать модель движения Солнца вокруг орбиты, Земли вокруг Солнца, Луны вокруг земли
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 26.05.2020, 23:21 | ||
glOrtho(-size, size, -size, size, -near, far);
0
|
||
|
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 71
|
|
| 26.05.2020, 23:29 [ТС] | |
|
zayats80888, за центр мира я беру координаты игрока (пока что) это примерно 512, 80, 512, вектор направления света я расчитываю через cos и sin угол меняется от 0 до 90и обратно от 90 до 0, поэтому направление (cos(angle), -sin(angle), 0), размер мира 256 на 256 на 256 координаты не имеют смысла ведь игрок в центре мира и он погружается и отгружается от позиции игрока, проекция света gluperspective(90, 1, 1, 1024) проекция камеры gluperspective(70, width / height, 0.05 1024), матрица вида света glrotate(90, 0, 1, 0), glrotate(90 * sin(angle), 1, 0, 0) gltranslate(-playerX + 256 * cos(angle), 256 * -sin(angle), -playerZ), матрица вида камеры gltranslate(0,0,-0.3) glrotate(xRot, 1,0,0) glrotate(yRot, 0,1,0) gltranslate(-playerX, -playerY, -playerZ) я пока с орто решил отложить работу, ибо там тоже самое, только похуже(всякие куски теневые по миру много и маленькие)
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 26.05.2020, 23:40 | ||
Сообщение было отмечено EggoYT как решение
РешениеПопробуй glOrtho(-256, 256, -256, 256, -256, 256)И для матрицы вида света glTranslate(-playerX, -playerY, -playerZ) (rotate оставь как есть)
1
|
||
|
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 71
|
|
| 26.05.2020, 23:51 [ТС] | |
|
zayats80888, не понимаю что странного, я завтра орто посмотрю, даже попробую скрины прислать
Добавлено через 6 минут zayats80888, если сделать такой транслейт, то свет просто переместится в точку игрока, а так я проверял я смотрел от источника света и прокрутка была с полным обзором на мир, но вот тени не послушные) Добавлено через 51 секунду Ладно я попробую, может орто иначе реагирует на матртцы трансформацти
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 26.05.2020, 23:52 | ||
|
0
|
||
|
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
|
||
| 26.05.2020, 23:53 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 71
|
|
| 26.05.2020, 23:58 [ТС] | |
|
zayats80888, здzayats80888, я записываю матрицы света и матрицы камеры а для теней как я понял нужно на gl_Vertex * gl_ModelViewMatrix это умножить на матрицы света и умножить на инвертированную матрицу модели камеры (по гайду пилил, но я думаю матрицу камеры можно оттуда вообще вырезать)
Добавлено через 33 секунды Antikl, и там и там перспектива, но вот заяц подсказал, завтра попробую орто Добавлено через 1 минуту И да я использую шейдер 120 версии
0
|
|
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 27.05.2020, 00:02 | ||
|
Там всё просто, передаёшь две MVP(отдельно) матрицы. В вершинном шейдере каждую точку умножаешь отдельно на каждую матрицу. Одна идёт в gl_Position, другая просто как out. В фрагментном шейдере сравниваешь глубину(с небольшими манипуляциями).
1
|
||
|
0 / 0 / 0
Регистрация: 19.11.2018
Сообщений: 71
|
||||||||||||
| 27.05.2020, 10:45 [ТС] | ||||||||||||
|
zayats80888,
Тут уже рендер сцены с тенями, я достал LightMatrix из рендера карты теней (матрицы вытащил и сохранил), lightMatrix я подаю в шейдер
Источник откуда брал все материалы: https://www.gamedev.ru/code/articles/ShadowMapGLSL Добавлено через 12 минут zayats80888, Добавлено через 27 минут В общем всем спасибо, я сделал так, у меня мир на куски разбит и перемещение источника света происходит не на координаты игрока, а на координаты начала этого куска, также я вернул диффузное освещение и теперь все выглядит статично, спасибо! Сейчас буду думать как сделать тень плавной при перемещении солнца, ибо дергаица
0
|
||||||||||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 28.05.2020, 09:41 | ||
|
Хранить в векторной форме координаты вершин треугольников и двигать их как функцию от положения тела… но вот отбрасывать они никуда не будут. Зато красивые и быстрые.
0
|
||
| 28.05.2020, 09:41 | |
|
Нет теней Центрирование теней Построение теней Где можно почитать о создании теней Создание теней для объектов в OpenGL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|