Unity. Шейдеры. Результаты изучения.

Feb 27, 2017 03:45

Что ж. Я создал шейдер по шаблону по умолчанию. Приписал что пишут в одном уроке и уменя выходили неплохие результаты. Сам нашёл как сделать шейдер полупрозрачным и настал черёт тени с полупрозрачностью.

Я долго искал инструкцию как же делать тень от объекта полупрозрачной. К половине второго я таки нашёл вот эту статью:

http://catlikecoding.com/unity/tutorials/rendering/part-12/

Обратите внимание на то, что человек то там написал непонятные функции, то сям. При чём если я использую #pragma surface surf, то этот чувак начал присать свой шейдер с #pragma vertex vert и #pragma fragment frag и соответственно за меня многое делает Unity, а этот чувак пишет руками. При чём я не имею понятия что именно мне нужно не писать, а что писать, чтобы всё заработало.

Тема была не так проста, как оказалось. За то, на один вопрос я всё таки нашёл ответ.
Вопрос: как сделать тень на полупрозрачном объекте?
Ответ: проще говоря, никак. Сложнее, есть тормозящие способы, которые тебе не подойдут.

Впрочем, я видел в сети, что люди делают шейдер, в котором есть полностью прозрачная плоскость, на которую падают тени. Если бы я мог отразить её с маской по альфе, а затем наложить её на поверхность. получилось бы то, что нужно. И тот вариант был не таким тормозящим, это вполне могло сработать.

С другой стороны, накладывают не тени, а свет с маской карты тени. И накладывание тени в таком случае будет смотреться просто ужасно. Поэтому там бы пришлось как-то отредактировать LightPass, а возможно, пришлось бы писать его полностью заново, а это адъ какой-то, ведь пришлось бы и отражения заново написать, а там ког для меня сродни технологиям NASA.

Для того, чтобы руками написать шейдер для смешения разных каналов текстур, а особенно, по Vertex Color, придётся изучить математику в CG (язык такой от nVidia), возможно, ещё что-то изучить, в роде инструкций для получения доступа к данным буферов, позиций объектов и точек - в общем, базовые знания, которыми я сейчас не владею.

Подытожив, я рад сообщить, что у меня что-то компилируется ^_^
Previous post Next post
Up