|
Опубликовано 20.11.2016 14:59 (8 лет назад) # |
VanyaR1 написал:
...
Но если добавить второй кубик, происходят странные вещи. Вроде бы с одной стороны порядок отображения правильный, а с другой один полигон выводится, хотя не должен.
Кажется я понял чего не хватает. Необходимо добавить сортировку полигонов. Только не понятно, что сортировать если полигоны на одном уровне W, если сортировка проходит по W, а положение камеры может меняться.
Кто-нибудь знает при каких условиях делать выбор по какой координате сортировать X, Y или W?
Сортировку осуществляешь после того как переводишь координаты в скрин-спейс, и по Z.
Освещение самое простое - от источника света по нормали к полигону. Берешь нормаль в world-space и умножаешь ее на единичный вектор к источнику света скалярно, получаешь косинус угла, это и есть коэффициент освещения от источника.
редакция от Zer0, 20.11.2016 15:08 |
|
|
|
Опубликовано 20.11.2016 15:12 (8 лет назад) # |
Освещение самое простое - от источника света по нормали к полигону. Берешь нормаль в world-space и умножаешь ее на единичный вектор к источнику света скалярно, получаешь косинус угла, это и есть коэффициент освещения от источника.
Допустим k - коэффициент освещения. Значит новый цвет пикселя равен (k*R, k*G, k*B) ? |
|
|
|
Опубликовано 20.11.2016 15:19 (8 лет назад) # |
Пробую текстуры. Непонятный эффект получился. С одной стороны текстуру видно с другой нет. И еще под определенным углом текстура кажется кривой.
|
|
|
|
Опубликовано 20.11.2016 16:24 (8 лет назад) # |
Mefistofel написал:
Вот такие проблемы были в том случае.
С натяжением текстур, но проблема та же.
Сверху - ошибочный вариант, косяк связан с тем, что позиция берется исходя из положения треугольника на экране (тупо по расстоянию до вершин в 2д), а должна быть позиция, учитывающая глубину (расстояние до вершин, но в 3д, соответственно конец, который уходит в глубину, получает больший вес за счет скрытого перспективой расстояния)
Снизу - типа правильный вариант.
Вот и ответ. Спасибо, начну разбираться в этом направлении. |
|
|
|
Опубликовано 20.11.2016 16:41 (8 лет назад) # |
У меня вот время свободное появилось и желание!
Времени у меня не так уж много осталось поэтому скорее всего продолжу делать что нибудь из ранее созданного
редакция от Ʀocky, 20.11.2016 16:42 |
|
|
|
Опубликовано 20.11.2016 18:23 (8 лет назад) # |
Mefistofel,
Кажись получилось.
Если интересно, как правильно уже Меф отметил, нужно учитывать перспективное искажение, при интерполяции нужно использовать Z не для буфера глубины, а 1/w, т.е. то значение w после всех преобразований. А когда в процессе вычисления правильных значений, нужно интерполировать U*(1/w) или V*(1/w), другие атрибуты подобно этому, и еще не забыть интерполировать сам 1/w.
чтобы восстановить атрибут, делаем u' * (1/w)', где ' интерполированное значение.
Вот так кратко.
редакция от VanyaR1, 20.11.2016 18:24 |
|
|
|
Опубликовано 20.11.2016 19:46 (8 лет назад) # |
Хочу для себя попробовать сделать полезный проект. а конкурс это только стимул. |
|
|
|
Опубликовано 20.11.2016 19:51 (8 лет назад) # |
SkyNET, что за проект собираешься доделать, из прошедших конкурсов и не вошедших в них? |
|
|
|
Опубликовано 21.11.2016 08:04 (8 лет назад) # |
VanyaR1 написал:
Пробую текстуры. Непонятный эффект получился. С одной стороны текстуру видно с другой нет. И еще под определенным углом текстура кажется кривой.
Эффект первых 3д игр с PS1 |
|
|
Инженер‑космогоник
|
Опубликовано 21.11.2016 10:00 (8 лет назад) # |
VanyaR1
Да, хрестоматийная ошибка, много где ее видел)
Если честно - нифига не понял, как ты ее решил (что на что делится), но рад, что помог) |
|
|
|
Опубликовано 21.11.2016 11:50 (8 лет назад) # |
VanyaR1 написал:
Освещение самое простое - от источника света по нормали к полигону. Берешь нормаль в world-space и умножаешь ее на единичный вектор к источнику света скалярно, получаешь косинус угла, это и есть коэффициент освещения от источника.
Допустим k - коэффициент освещения. Значит новый цвет пикселя равен (k*R, k*G, k*B) ?
Да. Не забудь что на backface значение будет отрицательным.
Вообще модель освещения это Direct Light + Indirect Light. Indirect Light чаще всего это Ambient, бывает его разворачиваю до Global Illumination.
Раз уж ты занимаешься софтварной растеризацией и подбираешься к освещению, попробуй еще поиграться с нормалями и bump mapping. |
|
|
|
Опубликовано 27.11.2016 17:03 (8 лет назад) # |
На прошлых выходных пробежался по всем старым наработкам просмотрел обдумал что к чему и для себя сделал небольшой топ-5 игр которые в следующем году будут поочередно воплощать в жизнь)
VanyaR1 написал:
SkyNET, что за проект собираешься доделать, из прошедших конкурсов и не вошедших в них?
к конкурсу решил продолжить делать time shooter, правда саму идею с ареной и манипуляцией со временем продолжать не буду, скорее всего возьму проект как основу для другой стрелялки |
|
|
|
Опубликовано 30.11.2016 07:18 (8 лет назад) # |
Что должно быть в архиве конкурса, что вообще необходимо загрузить, как на обычном конкурсе или будет достаточно отчетной темы на форуме? |
|
|
|
Опубликовано 30.11.2016 15:09 (8 лет назад) # |
VanyaR1, описания и фоток будет достаточно!
Я скорее всего как обычно сдам (описание,скрины,игра,исходник) |
|
|
Инженер‑космогоник
|
Опубликовано 30.11.2016 18:49 (8 лет назад) # |
Любой удобный способ. Да, проще всего сдать что-нибудь в архиве на "попробовать" |
|
|
|
Опубликовано 01.12.2016 08:01 (8 лет назад) # |
Как всегда в архив попадает багованая версия((( |
|
|
|
Опубликовано 15.12.2016 06:28 (8 лет назад) # |
Голосование на этом конкурсе сколько продлиться, 1 или 2 недели? |
|
|
Инженер‑космогоник
|
Опубликовано 15.12.2016 07:18 (8 лет назад) # |
Подозреваю, что быстрее.
Я помню про конкурс, честно честно. |
|
|
Инженер‑космогоник
|
Опубликовано 18.12.2016 18:39 (8 лет назад) # |
Итак, необходимо потихоньку выходить из спячки.
Естественно, решив взяться за дело, сразу же выяснилось, что дело то не простое, как всегда).
Итак, Я надеюсь, что наше экспериментальное двухмесячное безделье и пустой треп немного вас мотивировали несмотря ни на что.
Теперь по делу.
Основных пунктов 2:
1 - Кто что заявил и описал, какие проблемы и обсуждения были, насколько были интересные материалы и тупо сколько постов (самый простой для подсчета параметр, ага)
2 - Кто и что сделал и насколько получилось прикольно и интересно. Иными словами, оценка готовых проектов, которые есть.
3 - ....
4 - Profit! (раздача плюшек) |
|
|
Инженер‑космогоник
|
Опубликовано 18.12.2016 18:55 (8 лет назад) # |
Итак, у нас были заявлены следующие участники и проекты:
VanyaR1 - 3D Virtual Pool + разбор основ 3д, на которых собственно и была основанна первая игра. Самая свежая ссылка на сборку.
KregHek - Silone Online - тактическая онлайн стратегия, есть живые образцы для вконтактика
SkyNET - RM, игра три в ряд. Можно оценить версию по ссылке
Erewego - BATTLEFOREST, платформер, материалов не много, есть видео.
SINILIAN - Star Elevation - амбициозные планы) Надеюсь дальше будут пилиться.
Mefistofel - Void Story великий и ужасный. Билда вам не покажу, Я все еще думаю, что делать с этим проектом.
RepKa - Ragdoll knight
Dan - Vulkan Lab попытка разобраться с Vulkan Api. К сожалению, не понятно, насколько удачная.
KEFIR - Code Journey, визуальный интерпретатор кода или его попытка.
sttt912 - History of War
MrKolpakk - After Moon
О начинаниях и попытках отчитывались или упоминали так же KeeperKira, LetsOffBrains, Laboon, Daemon, MrKolpakk, rds и Pelmenka, но существенной активности не проявили (или Я пропустил, что тоже возможно).
Впрочем, если говорить об интересности, самыми активными топиккастерами и создателями обсуждений были первые несколько товарищей из списка, поэтому в дальнейшем, скорее всего обсуждение должно затрагивать прежде всего их.
редакция от Mefistofel, 18.12.2016 18:56 |
|
|