Это понятно. Вопрос был в том, при чём тут основной depth buffer сцены, который multisampled. Для z-отсечения при отрисовке в shadow map естественно использовать свой отдельный depth buffer, которому не важно, используется ли полноэкранное сглаживание или нет.
Полноэкранное сглаживание выполнено также как пост-процесс эффект. Причин этому несколько. Использование INTZ буфера глубины становится невозможным (нельзя создать чистый multisampled INTZ depth buffer для последующего копирования его в non-multisampled INTZ текстуру), и shadow map будет занимать очень много памяти (напомню, что ее формат A32R32G32B32F, т.е. 16 байт на пиксель).
Объясните ка, зачем это shadow map изметять свой формат, когда переходим к полноэкранному сглаживанию?
Я, правда, так и не понял, что тело нейрона делает с входящими от дендридов импульсами. Просто суммирует ли?
А еще жалко как-то, что нашлось столько видов нейротрансмиттеров… Это значительно затрудняет создание компактной само-организующейся модели для воспроизведения сего чуда.
Спасибо, заказал!
Для справедливости отмечу, что мнения по поводу «официальности» данного ремня сильно разнятся, с уклоном в сторону хорошо сдаланной поделки.
Простите, мне статья не понравилась. Есть мысли, с которыми трудно не согласиться, но их немного.
"нехватка вычислительных мощностей" — вообще не при чём. У мухи порядка тысячи нейронов, и это ей отнють не мешает адаптироваться и проявлять интеллект. Ресурсы всегда были и будут ограничены, так что исходить из алгоритмов для неограниченных ресурсах смысла мало, ибо они построены на изначально неверной аксиоме.
"развиваться не медленнее человека" — дело не в скорости развития, а принципиально в том, чтобы развиваться. Покажите мне хоть один ИИ, который развивается да хоть в миллион раз медленнее человека?
"построением систем искусственного интеллекта уровня человека" — что Вы к этим бедным человекам привязались? Откуда столько антропо-центризма… Поравняйтесь сначала с мухами, потом на младенцев переходите, а там глядишь — и до взрослого человека недалеко.
Статья хорошая, претензий нет. Хочется только добавить, что для промышленных целей лучше использовать формат, который можно целиком скопировать в видео-память (GL vertex buffer). К чему все эти парсинги выполнять каждый раз бедному ARM процессору, если можно подготовить данные заранее? :)
Глупо полагать, что Google делает исключительно честный поиск. И правильно, что его пытаются контролировать ЕС, пусть даже и с подачки Microsoft. Только вот расследовать поведение такой сложной системы объективно, да ещё и снаружи, не представляется возможным, так что перегонять они долго будут из пустого в порожнее.
Тут надо в корне менять организацию отношении частных компании с регулировщиками. В идеале, Google предоставляет свою реализацию функции поиска, а ЕС уже ставит её на свои сервера и тестирует.
могу отсортировать массив десятком методов… В общем, программированием владею как заурядный, но прилежный студент средненького технического вуза.
Хотел бы я посмотреть как заурядные студенты моего вуза (БГУ) отсортируют массив 10 способами, даже сразу после выпуска. Может, конечно, нас неправильно учили, но, если специально этим не заниматься, на выходе в памяти остаются 1-5 методов, в зависимости от «прилежности».
Да, форум Unity, но это не подтверждает правильность кода. Автор же не разработчик Unity, а такой же как мы с вами.
Примеров реализации расчета тангенсов в коде очень много, но в шейдере ни одного.
Обратите внимание на этот вопрос (и мой ответ к нему).
Собственно, вычислить tangent из вершинного шейдера нельзя. Так что Ваша задача не вычислить, а воспроизвести его из той самой «договорённости», минуя вершинные атрибуты. Из пиксельного — можно, но с потерей некоторой доли гладкости вдоль рёбер (смотрите алгоритм по ссылке выше). Правильно, конечно, генерировать тангенсы во время экспорта.
Что посоветовать? Давайте хотя бы использовать правильный тангенс: fixed3 T1 = float3(1, 0, 0);
if (dot(T1,v.normal) > 0.99) {
T1 = float3(0,1,0); //workaround
}
fixed3 Bi = cross(T1, v.normal);
...
Расчет тангенсов взят из другого проверенного шейдера с офф. форума, которым я долго пользовался до этого (ссылка на него в начале поста).
Не вижу я там официального форума, а виже блог некого «sixtimesnothing».
По идее U всегда направлена по X.
А значит и тангенс будет ...? (1,0,1)?
Садитесь, незачёт.
Пожалуй, слишком я Вас сильно критикую… В интернете практически нет абсолютно верных реализации normal/parallax mapping с указанием ограничений и подробным описанием логики. А у Вас всё-таки первый пост… И главное — чтобы смотрелось красиво, так ведь? Понимаю, но Вы всё же задумайтесь над моими замечаниями, если хотите понять, как Ваш код (не-) работает.
Объясните ка, зачем это shadow map изметять свой формат, когда переходим к полноэкранному сглаживанию?
Я, правда, так и не понял, что тело нейрона делает с входящими от дендридов импульсами. Просто суммирует ли?
А еще жалко как-то, что нашлось столько видов нейротрансмиттеров… Это значительно затрудняет создание компактной само-организующейся модели для воспроизведения сего чуда.
Жду продолжения!
А серьёзно: было бы интересно послушать сравнение по движкам, с которыми Вам приходилось работать.
Для справедливости отмечу, что мнения по поводу «официальности» данного ремня сильно разнятся, с уклоном в сторону хорошо сдаланной поделки.
"нехватка вычислительных мощностей" — вообще не при чём. У мухи порядка тысячи нейронов, и это ей отнють не мешает адаптироваться и проявлять интеллект. Ресурсы всегда были и будут ограничены, так что исходить из алгоритмов для неограниченных ресурсах смысла мало, ибо они построены на изначально неверной аксиоме.
"развиваться не медленнее человека" — дело не в скорости развития, а принципиально в том, чтобы развиваться. Покажите мне хоть один ИИ, который развивается да хоть в миллион раз медленнее человека?
"построением систем искусственного интеллекта уровня человека" — что Вы к этим бедным человекам привязались? Откуда столько антропо-центризма… Поравняйтесь сначала с мухами, потом на младенцев переходите, а там глядишь — и до взрослого человека недалеко.
Тут надо в корне менять организацию отношении частных компании с регулировщиками. В идеале, Google предоставляет свою реализацию функции поиска, а ЕС уже ставит её на свои сервера и тестирует.
Хотел бы я посмотреть как заурядные студенты моего вуза (БГУ) отсортируют массив 10 способами, даже сразу после выпуска. Может, конечно, нас неправильно учили, но, если специально этим не заниматься, на выходе в памяти остаются 1-5 методов, в зависимости от «прилежности».
Имеется ввиду, что инвесторы сходили с ума по любому проекту, который казался хотя бы отдалённо живым.
Да, форум Unity, но это не подтверждает правильность кода. Автор же не разработчик Unity, а такой же как мы с вами.
Обратите внимание на этот вопрос (и мой ответ к нему).
Собственно, вычислить tangent из вершинного шейдера нельзя. Так что Ваша задача не вычислить, а воспроизвести его из той самой «договорённости», минуя вершинные атрибуты. Из пиксельного — можно, но с потерей некоторой доли гладкости вдоль рёбер (смотрите алгоритм по ссылке выше). Правильно, конечно, генерировать тангенсы во время экспорта.
Что посоветовать? Давайте хотя бы использовать правильный тангенс:
fixed3 T1 = float3(1, 0, 0);
if (dot(T1,v.normal) > 0.99) {
T1 = float3(0,1,0); //workaround
}
fixed3 Bi = cross(T1, v.normal);
...
Не вижу я там официального форума, а виже блог некого «sixtimesnothing».
А значит и тангенс будет ...? (1,0,1)?
Садитесь, незачёт.
Пожалуй, слишком я Вас сильно критикую… В интернете практически нет абсолютно верных реализации normal/parallax mapping с указанием ограничений и подробным описанием логики. А у Вас всё-таки первый пост… И главное — чтобы смотрелось красиво, так ведь? Понимаю, но Вы всё же задумайтесь над моими замечаниями, если хотите понять, как Ваш код (не-) работает.