forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Эффекты/Шейдеры (http://forum.boolean.name/forumdisplay.php?f=170)
-   -   Расстояние до проекции. (http://forum.boolean.name/showthread.php?t=19451)

PassCall 02.10.2014 04:18

Расстояние до проекции.
 
Хотел сделать эффект "объемного" тумана, который отличается от обычного тем, что с расстоянием накладывается не цвет, а текстура. Чем дальше, тем сильнее она проявляется.

Одна проблема - как выяснить расстояние от камеры до прорисовываемой точки? Или "прочитать" z-buffer?

Версия юнити FREE

pax 02.10.2014 07:08

Ответ: Расстояние до проекции.
 
Смотря какой шейдер.
Вот например работа с текстурой глубины (пример не сурфейсный шейдер, может подойти для постпроцесса):
http://docs.unity3d.com/Manual/SL-DepthTextures.html

Вот тут написано как получить позицию камеры http://docs.unity3d.com/Manual/SL-BuiltinValues.html
Цитата:

_WorldSpaceCameraPos float3 World space position of the camera.
А вот тут позиция рисуемой точки http://docs.unity3d.com/Manual/SL-SurfaceShaders.html
Цитата:

float3 worldPos - will contain world space position.

PassCall 03.10.2014 06:58

Ответ: Расстояние до проекции.
 
Вот что в итоге вышло.
Демка:
http://unitywiki.com/unity-game-143-...og_shader_demo

Сцена, для которой разрабатывался шейдер, не предусматривала поворот камеры, поэтому туман будет выглядеть не таким уж и объемным.


Часовой пояс GMT +4, время: 13:46.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot