animate lava tiles
This commit is contained in:
@@ -5,8 +5,7 @@ flat in uint v_tileidx;
|
|||||||
out vec4 pixcolor;
|
out vec4 pixcolor;
|
||||||
uniform sampler2D t_atlas;
|
uniform sampler2D t_atlas;
|
||||||
uniform b_constants {
|
uniform b_constants {
|
||||||
//uvec4 animdata;
|
uvec4 anim;
|
||||||
uint animdata;
|
|
||||||
float R1;
|
float R1;
|
||||||
float R2;
|
float R2;
|
||||||
};
|
};
|
||||||
@@ -19,8 +18,7 @@ uniform b_locals {
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec2 anim_uv = v_uv;
|
vec2 anim_uv = v_uv;
|
||||||
//if (v_tileidx < 128u && bool(animdata[0 /*v_tileidx / 32u*/] & 1u << v_tileidx % 32u)) {
|
if (v_tileidx < 128u && bool(anim[v_tileidx / 32u] & 1u << v_tileidx % 32u)) {
|
||||||
if (v_tileidx < 32u && bool(animdata & 1u << v_tileidx)) {
|
|
||||||
anim_uv = vec2(v_uv.x, float((uint(v_uv.y * 1000.0) + millis / 4u) % 1000u) / 1000.0);
|
anim_uv = vec2(v_uv.x, float((uint(v_uv.y * 1000.0) + millis / 4u) % 1000u) / 1000.0);
|
||||||
}
|
}
|
||||||
vec2 uv = vec2(anim_uv.x, float(v_tileidx) / 256.0 + (1.0 - anim_uv.y) / 256.0);
|
vec2 uv = vec2(anim_uv.x, float(v_tileidx) / 256.0 + (1.0 - anim_uv.y) / 256.0);
|
||||||
|
|||||||
@@ -12,8 +12,7 @@ uniform b_trans {
|
|||||||
mat4 u_matrix;
|
mat4 u_matrix;
|
||||||
};
|
};
|
||||||
uniform b_constants {
|
uniform b_constants {
|
||||||
//uvec4 animdata;
|
uvec4 anim;
|
||||||
uint animdata;
|
|
||||||
float R1;
|
float R1;
|
||||||
float R2;
|
float R2;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ gfx_defines! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
constant Constants {
|
constant Constants {
|
||||||
anim: u32 = "anim",
|
anim: [u32; 4] = "anim",
|
||||||
r1: f32 = "R1",
|
r1: f32 = "R1",
|
||||||
r2: f32 = "R2",
|
r2: f32 = "R2",
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ impl<D: gfx::Device, F: gfx::Factory<D::Resources>> WorldScene<D, F> {
|
|||||||
factory.create_vertex_buffer_with_slice(&model, &model_idx[..]);
|
factory.create_vertex_buffer_with_slice(&model, &model_idx[..]);
|
||||||
|
|
||||||
let constants = factory.create_constant_buffer(1);
|
let constants = factory.create_constant_buffer(1);
|
||||||
encoder.update_constant_buffer(&constants, &Constants { anim: ANIMDATA[0],
|
encoder.update_constant_buffer(&constants, &Constants { anim: ANIMDATA,
|
||||||
r1: R1,
|
r1: R1,
|
||||||
r2: R2 });
|
r2: R2 });
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user