Ответ 1
Нет. Растеризация очень плоха в этом (даже в недавних играх AAA есть заметные теневые артефакты), но каждый живет с ним.
Решения включают (примерно от самых простых/самых бедных до лучших/самых сложных):
- Нет теней. Просто загладьте с более темными цветами. xNormal, Blender.
- Если вы хотите приблизительную тень для персонажа, сделайте простой плоский многоугольник на земле с прозрачной и размытой текстурой. Например, скриншоты Zelda. Даже некоторые недавние игры все еще используют это.
- Lightmaps. Только статическая геометрия, но идеальное освещение (предварительно вычисленное). Разумно просто реализовать. Существует множество инструментов.
- Теневые тома, популяризированные Кармаком. Pixel идеально, разумно просто реализовать, довольно медленно. Хорошо для нескольких объектов. Нет мягких теней.
- Теневые карты. Немного сложно реализовать, если вы никогда не открывали OpenGL. Трудно поправиться. Пиксельные тени. Сделки с большим количеством полигонов. Не имеет дело с большими мирами.
- Варианты карт Myriads of Shadow. В последние годы много исследований. Лучше всего это каскадные карты теней: сложно, все еще сложно сделать это хорошо, но быстро, имеет дело с множеством полигонов и огромных миров.
- Raytraced shadows: Это может быть следующий ген. Никто не использует это, за исключением некоторых научных работ. Очень сложно, не очень хорошо работает с динамическими мирами (пока), огромные статические сцены в порядке. Пиксельные идеальные или мягкие тени, в зависимости от того, сколько у вас запасных GPU. Несколько вариантов; с 2014 года это все еще не производилось в любой игре по причинам производительности.
Таким образом, обычный трюк состоит в том, чтобы смешивать только красивые, но статичные подходы с динамическими, но не очень хорошими подходами. Например, см. Мои руководства по lightmapping и shadowmapping.