У меня есть бесконечное гексагональное дно, созданное путем тесселяции точечной сетки в паре тесселяционных шейдеров:
Обратите внимание, что это плоский каркас - «тени» - это трюк освещения:
Теперь я хотел бы, чтобы это казалось толстым, преломляющим стеклом, но я не уверен, как поступить.
Первое, что пришло в голову, это
- установить униформу, содержащую запрашиваемую «толщину» блоков
- При расчете освещения используйте закон Снелла, чтобы рассчитать длину оптического пути, который луч прошел бы через шестнадцатеричный блок, если бы он был на самом деле таким же толстым, как говорит форма "толщины", и суммировать альфа по этой длине. Это даст прозрачность, но не учитывает такие вещи, как внутреннее отражение / МДП и т. Д.
Я еще не пробовал, поэтому не уверен, каким будет визуальный результат.
В конечном счете, для этого конкретного уровня, я пытаюсь получить тот стеклянный, шестиугольный вид пола, который используется в Tron: Legacy во время битвы за диск. ( См. Это изображение для примера .)
Предложения?