Озадачился такой проблемой как стекло, которое бы было не просто прозрачным, но еще и имела бы какую то степень отражения, как это и бывает в жизни. Однако, как это всегда и бывает, столкнулся с такими трудностями, как - нет ничего дельного. Можно либо прозрачность, либо отражения. А вот что бы и прозрачность и отражения, отчего то нигде нет. Максимум что можно найти, это использование cubemap. Способ хорош, но однако в виду некоторых особенностей, а именно отсутствия реалистичного отражения, сводит на нет остальные достоинства и подходит только в тех случаях, когда не нужно реалистичное зеркало, а нужно создать иллюзию.
Выяснилось из всех доступных решений, что есть только два способа создания действительно хорошего зеркала, которое можно сделать прозрачным и все это находится в стандартных средствах Unity.
Первый способ - использование ReflectionProbes. Тут нет ничего сложного, важно лишь верно расположить сам ReflectionProbes и настроить отражающие материалы. Прозрачность достигается за счет прозрачности отражаеющего материала. Документация довольно хорошо эту фичу описывает и нет нужны объяснять все это еще раз. Минус штучки в том, что она скорее подходит для статичных объектов, а не динамических. Вот сслыка на ресурс с демосценой http://twiik.net/articles/realtime-refl ... in-unity-5, и на саму сцену, альтернативная ссылка RealTimeReflections.
Но мне это не подходило и я рыл просторы интернета дальше, пока не наткнулся на вот это - MirrorReflection4, а затем и на вот это http://forum.unity3d.com/threads/mirror ... der.93477/ (пост от уважаемого человека под ником Steva). И тут меня посетила мысль, что где то я это уже видел...
И вот тут то и есть второй способ сделать прозрачное зеркало - использовать стандартную воду) В самом деле, ведь у нас есть замечательная вода, которая и отражает и прозрачная. Нужно лишь отрегулировать эту прозрачность и будет самое нестоящее стекло, причем довольно шустрое.
Итак, делаем.
1) Создаем материал воды (FX/Water)
2) Создаем то, что у нас будет зеркалом или стеклом.
3) Кидаем материал к этому ГО
4) На ГО вешаем скрипт Water. (Standard Assets/Environment/Water/Water/Scripts)
5) Сбрасываем настройки материала, или регулируем их как нам нужно Как мне работать с водой?.
В общем создаем обычную воду. Можно тупо перетащить префаб на сцену.
6) А здесь начинается самое интересное, о чем в документации сказано мельком - как нам сделать нашу воду, более прозрачной или менее прозрачной, т.е. слабо отражающую или зеркальной, при чем без шаманских танцев с кодом. Ключик лежит в Альфа канале текстуры для воды, которую мы кидаем в Fresnel. Т.е. степень прозрачности текстуры, дает нам степень отражений от поверхности воды. Так если текстура будет полностью непрозрачной, то мы получим зеркало, если полностью прозрачна, то с вода не будет видна. С альфой в 50, соответственно получим полупрозрачную воду.
Как тяжелую артиллерию для создания рисунков, я использую Gimp, и он вполне справляется со степенью прозрачности текстуры. Я сделал тестовый проект, для наглядности ситуации, где цифра у материала и текстуры, означает цифру прозрачности в Gimp'е, так что если вы используете какой то другой редактор, то вполне возможно альфа будет отличаться от моих. Вот ссылка на проектик Тест отражений. Там два вида прозрачных ГО - использование стандартных шейдеров с текстурой разной альфы и использование воды с теми же тестурами, но уже в качестве зеркала или стекла.
7) Итак, текстурки создали, нацепили, теперь нужно наш ГО обозначить как слой Water что бы у нас все начало нормально работать.
Собственно зеркало или стекло готово. Normalmap нам даст искажения на поверхности по типу реализации волн, если нужно использовать кривые стекла.
Есть одна особенность - если вертеть Directional Light, но не уменьшать его степень свечения, то в какой то момент наши стекла будут отражать от него свет и как бы начнут светиться в темноте, что весьма хорошо как дополнительная дешевая фича, к примеру подстветки чего то. В любом случае, если не заглушать свет, то может светится не только вода, но и текстура террейна, поэтому неудобств подобная штука доставить не должна, поскольку глушить свет все равно придется. Благо у нас есть слои.
Вот так, очередное простое и мощное стандартное решение от юнитов) Единственно что, видимо простыми путями не получится сделать тени на воде, точнее уже на зеркале или стекле. Тут поможет решение от упомянутого выше Steva http://forum.unity3d.com/threads/mirror ... ader.93477