Author: theagentd (posted 2012-10-10 00:39:37, viewed 184 times)
| 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
40
| #extension GL_EXT_texture_array : enable
uniform vec2 mapSize;
uniform sampler2D tileTexture;
uniform sampler2DArray tilesetTexture;
uniform float lod;
uniform float scale;
vec3 getTileData(vec2 texCoords){
return texture2D(tileTexture, texCoords / mapSize).rgb * 65535.0;
}
vec4 sample(vec3 tileResult){
return texture2DArrayLod(tilesetTexture, vec3(gl_TexCoord[0].st - tileResult.gb, tileResult.r), lod);
}
void main()
{
vec2 texCoords = gl_TexCoord[0].st;
vec3 tld = getTileData(texCoords + vec2(-0.5/scale, -0.5/scale));
vec3 trd = getTileData(texCoords + vec2( 0.5/scale, -0.5/scale));
vec3 bld = getTileData(texCoords + vec2(-0.5/scale, 0.5/scale));
vec3 brd = getTileData(texCoords + vec2( 0.5/scale, 0.5/scale));
vec4 tlc = sample(tld);
vec4 trc = sample(trd);
vec4 blc = sample(bld);
vec4 brc = sample(brd);
float x = trd.g, y = bld.b;
float mixHorizontal = (texCoords.s - x)*scale + 0.5;
float mixVertical = (texCoords.t - y)*scale + 0.5;
gl_FragColor = mix(mix(tlc, trc, mixHorizontal), mix(blc, brc, mixHorizontal), mixVertical);
} |
Special syntax:
- To highlight a line (yellow background), prefix it with '@@'
- To indicate that a line should be removed (red background), prefix it with '-'
- To indicate that a line should be added (green background), prefix it with '+'
- To post multiple snippets, seperate them by '~~~~'
|
Add your game by posting it in the WIP section,
or publish it in Showcase.
The first screenshot will be displayed as a thumbnail.
|
|