Що це за текстура, і навіщо вона потрібна

Diab10 писал (а): Мм, і навіщо в даному випадку карта нормалей? Вони бамп чтоли на білборд дерев повісили?

Ну а чому ні?: D

Про це раніше навіть думок не було, якщо чесно

Тоді інше питання. Є у кого то ідеї, як таку карту нормалей отримати? Я збираюся зробити свої білборди для дерев.
Збереження знімка предмета з різних ракурсів я вже зробив. А як тепер ще б таку карту нормалей згенерувати?

Є дві ідеї. Перша - пускати з камери промені через кожен піксель, і отримувати нормаль від точки наголоси, і записувати в текстуру точку. АЛЕ, промені ж тільки на колайдери вдаряються. Можна як то отримати нормаль точки від полігону?
І друга ідея - повісити шейдер на дерево, який що то зробить, і розфарбує дерево в потрібний колір в залежності від розташування камери. Тільки я не знаю, чи можливо таке?

Другий варіант. Вішати на дерево шейдер не треба, можна отрендеріть його в текстуру через Camera.RenderWithShader. За основу можна взяти шейдер Hidden / Camera-DepthNormalTexture і допив його, що б він малював карту нормалей в RGB форматі.

Neyl писал (а): Другий варіант. Вішати на дерево шейдер не треба, можна отрендеріть його в текстуру через Camera.RenderWithShader. За основу можна взяти шейдер Hidden / Camera-DepthNormalTexture і допив його, що б він малював карту нормалей в RGB форматі.

Shader "My / My-Camera-DepthNormalTexture" # 123;
Properties # 123;

# 125;
Category # 123;
Fog # 123; Mode Off # 125;

SubShader # 123;
Tags # 123; "RenderType" = "Opaque" # 125;
Pass # 123;
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct v2f # 123;
float4 pos. POSITION;
float4 nz. TEXCOORD0;
# 125; ;
v2f vert # 40; appdata_base v # 41; # 123;
v2f o;
o. pos = mul # 40; UNITY_MATRIX_MVP, v. vertex # 41; ;
o. nz. xyz = COMPUTE_VIEW_NORMAL;
o. nz. w = COMPUTE_DEPTH_01;
return o;
# 125;
fixed4 frag # 40; v2f i # 41 ;. COLOR # 123;
return float4 # 40; i. nz. xyz, i. nz. w # 41; ;
# 125;
ENDCG
# 125;
# 125;


Підкажіть плиз, як зробити щоб плашки листя дерев не повністю зафарбовувати, а брали альфа-канал з текстури листя?
І чому білборди трави не відображаються?
І мені здається, чи нормалі невірно забарвилися? Чи не схоже на кольори з тих ігор. Або нормально?

PS. У шейдерах не розбираюся. Методом тику вдалося цього добитися з шейдера Camera-DepthNormalTexture

Схожі статті