File: noise_gradient.effect

package info (click to toggle)
obs-noise 1.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,744 kB
  • sloc: ansic: 1,937; sh: 153; makefile: 26; cpp: 16
file content (39 lines) | stat: -rw-r--r-- 990 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "utilities.effect"

uniform float4x4 ViewProj;
uniform texture2d image;
uniform float2 uv_size;

VertData mainTransform(VertData v_in)
{
	v_in.pos = mul(float4(v_in.pos.xyz, 1.0), ViewProj);
	return v_in;
}

float4 mainImage(VertData v_in) : TARGET
{
	//float2 coord = max(v_in.uv * uv_size, float2(1.0, 1.0));
	float2 coord = v_in.uv * uv_size;
	float2 dx = coord + float2(1.0, 0.0);
	float2 dxn = coord - float2(1.0, 0.0);
	float2 dy = coord + float2(0.0, 1.0);
	float2 dyn = coord - float2(0.0, 1.0);

	float4 disp_x = image.Sample(textureSampler, dx / uv_size);
	float4 disp_xn = image.Sample(textureSampler, dxn / uv_size);
	float4 disp_y = image.Sample(textureSampler, dy / uv_size);
	float4 disp_yn = image.Sample(textureSampler, dyn / uv_size);

	float ddx = disp_x.r - disp_xn.r;
	float ddy = disp_y.r - disp_yn.r;
	return float4(20.0 * ddx, 20.0 * ddy, 0.0, 1.0);
}

technique Draw
{
	pass
	{
		vertex_shader = mainTransform(v_in);
		pixel_shader = mainImage(v_in);
	}
}