@Zloy_GreGan возродил мою веру в людей так что я объясню опять.
Есть 2 варианта как сделать направленный источник света
1) Использовать фрагментный и вершиный шейдер. Вершиный передаст uv и позицию фрагмента на сцене.
2) Использовать фрагментный шейдер и буффер глубины
1 вариант до жути прост в исполнении но там будут возникать проблемы если какие нить моды будут использовать свои шейдеры а так же будут подсвечиваться задние стенки блоков. Хз как с этим бороться. Но при этом этот вариант куда проще сделать в мультиплеере.
2 вариант есть пост-эффект а значит вроде как сложнее но он практически идеален. Но как ты будешь его осуществлять в мультиплеере так чтоб не сильно дебильно для меня загадка.
Разберем чуть детальней как сделать 1 вариант. По условию мы знаем позицию нашего фрага на сцене и знаем направление и источник света. Свет это либо парабола либо конус. Тогда пусть y это будет расстояние от фрага до источника дальше найти корни и расстояния до них не должно составить труда. Соответственно если растояние до каждой из точек от фрага меньше расстояния между ними, фраг лежит внутри параболы/конуса. Дальше мы просто прибавляем нужный вектор к исходному цвету. Profit.
Вариант нумбер 2 куда более изящен но он сработает только если источник света это сам игрок(имхо). Суть примерно та же только у нас пространство нормализированно, а глубина достается из буффера глубины. Соответственно тебе придется доставать матрицу проекции или еще чо чтобы узнать реальное положение фрага на сцене, а дальше как в 1ом варианте.
Это все. Очень просто.