Browse Source

tutorial: minor tweaks.

legacy
Sam Hocevar sam 12 years ago
parent
commit
c84c092a42
2 changed files with 10 additions and 8 deletions
  1. +2
    -2
      tutorial/04_texture.cpp
  2. +8
    -6
      tutorial/04_texture.lolfx

+ 2
- 2
tutorial/04_texture.cpp View File

@@ -18,7 +18,7 @@
using namespace std; using namespace std;
using namespace lol; using namespace lol;


static int const TEXTURE_WIDTH = 128;
static int const TEXTURE_WIDTH = 512;


extern char const *lolfx_04_texture; extern char const *lolfx_04_texture;


@@ -57,7 +57,7 @@ public:
m_heightmap[4 * i] = m_heightmap[4 * i + 4]; m_heightmap[4 * i] = m_heightmap[4 * i + 4];


int height = m_heightmap[4 * (TEXTURE_WIDTH - 1)]; int height = m_heightmap[4 * (TEXTURE_WIDTH - 1)];
height = height / 2 + 255 / 4 + rand() % 97 - 48;
height = (height + 127 + 40 * lol::sin(m_frames * 0.03) + rand() % 97 - 38) / 2;
height = std::max(15, std::min(height, 240)); height = std::max(15, std::min(height, 240));
m_heightmap[4 * (TEXTURE_WIDTH - 1)] = height; m_heightmap[4 * (TEXTURE_WIDTH - 1)] = height;




+ 8
- 6
tutorial/04_texture.lolfx View File

@@ -31,20 +31,22 @@ void main(void)
{ {
float width = 800.0; float width = 800.0;
float height = 600.0; float height = 600.0;
float line_width = 1.8;
float dot_size = 2.0;
vec4 delta = vec4(1.0 / 128, 0.0,
2.0 / 128, 0.0);
float texture_width = 512.0;
float line_width = 1.2;
float dot_size = 1.0;
vec4 delta = vec4(1.0 / 512, 0.0,
2.0 / 512, 0.0);


vec2 p = pass_Position.xy; vec2 p = pass_Position.xy;
vec2 tc = vec2(floor(p.x * 128.0) / 128.0, p.y);
float t = p.x * 128.0 - floor(p.x * 128.0);
vec2 tc = vec2(floor(p.x * 512.0) / 512.0, p.y);
float t = p.x * 512.0 - floor(p.x * 512.0);
vec4 c; vec4 c;
c[0] = texture2D(u_Texture, tc - delta.xy).x; c[0] = texture2D(u_Texture, tc - delta.xy).x;
c[1] = texture2D(u_Texture, tc).x; c[1] = texture2D(u_Texture, tc).x;
c[2] = texture2D(u_Texture, tc + delta.xy).x; c[2] = texture2D(u_Texture, tc + delta.xy).x;
c[3] = texture2D(u_Texture, tc + delta.zw).x; c[3] = texture2D(u_Texture, tc + delta.zw).x;


/* Find the 4 closest points in screen space */
vec2 p0 = vec2((tc.x - delta.x) * width, c[0] * height); vec2 p0 = vec2((tc.x - delta.x) * width, c[0] * height);
vec2 p1 = vec2((tc.x ) * width, c[1] * height); vec2 p1 = vec2((tc.x ) * width, c[1] * height);
vec2 p2 = vec2((tc.x + delta.x) * width, c[2] * height); vec2 p2 = vec2((tc.x + delta.x) * width, c[2] * height);


Loading…
Cancel
Save