единство 5 как получить теневую карту

Я пишу пользовательский шейдер в единстве 5, для которого требуется теневая карта (не только для рисования теней, но и для разных вычислений с участием рассеивающих частиц через туман). Кто-нибудь знает, как фактически получить теневую карту в единстве, а не просто использовать запасной вариант? Это включает в себя фактический буфер Z, а не только полученные 1 и 0.

Я мог бы также использовать буфер глубины из камеры, но это, похоже, применимо только к используемой камерой, а не к второй, которую я могу добавить, чтобы заменить свет (внутри света).

5 голосов | спросил Thijser 4 MarpmWed, 04 Mar 2015 13:26:10 +03002015-03-04T13:26:10+03:0001 2015, 13:26:10

1 ответ


5

В документах Unity по ссылкам на шейдер.

Макросы теневого отображения

Объявление и выборка теневых карт могут сильно отличаться в зависимости от платформы, поэтому Unity имеет несколько макросов, чтобы помочь с этим:

UNITY_DECLARE_SHADOWMAP(tex) - declares a shadowmap texture variable with name “tex”.
UNITY_SAMPLE_SHADOW(tex,uv) - samples shadowmap texture “tex” at given “uv” coordinate (XY components are texture location, Z component is depth to compare with). Returns single float value with the shadow term in 0..1 range.
UNITY_SAMPLE_SHADOW_PROJ(tex,uv) - similar to above, but does a projective shadowmap read. “uv” is a float4, all other components are divided by .w for doing the lookup.
ответил Anthony Raimondo 11 MarpmWed, 11 Mar 2015 14:55:00 +03002015-03-11T14:55:00+03:0002 2015, 14:55:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132