feature: even more flicky patterns

This commit is contained in:
FMS-Cat
2021-03-14 12:13:32 +09:00
parent b0969e415a
commit 34eb320711
2 changed files with 30 additions and 17 deletions

View File

@@ -7,11 +7,12 @@ const int MTL_UNLIT = 1;
const int MODE_RECT = 0;
const int MODE_GRID = 1;
const int MODE_CIRCLE = 2;
const int MODE_TAMBO = 3;
const int MODE_C = 4;
const int MODE_THEREFORE = 5;
const int MODE_SPEEN = 6;
const int MODES = 7;
const int MODE_SLASHER = 3;
const int MODE_TAMBO = 4;
const int MODE_C = 5;
const int MODE_THEREFORE = 6;
const int MODE_SPEEN = 7;
const int MODES = 8;
const float PI = 3.14159265;
const float TAU = 6.28318531;
@@ -23,6 +24,7 @@ const float TAU = 6.28318531;
in float vLife;
in float vMode;
in vec2 vUv;
in vec2 vSize;
in vec3 vNormal;
in vec4 vPosition;
in vec4 vDice;
@@ -57,6 +59,7 @@ void main() {
vec2 uv = vUv;
vec2 deltaUv = abs( vec2( dFdx( uv.x ), dFdy( uv.y ) ) );
vec2 p = ( uv * 2.0 - 1.0 ) * vSize;
vec3 color = vec3( 0.0 );
@@ -100,6 +103,13 @@ void main() {
color = vec3( 1.0 );
} else if ( mode == MODE_SLASHER ) {
float shape = step( 0.0, sin( 40.0 * ( p.x + p.y + 0.3 * time ) ) );
if ( shape < 0.5 ) { discard; }
color = vec3( 1.0 );
} else if ( mode == MODE_TAMBO ) { // 田
if ( vLife < 0.7 ) { discard; }

View File

@@ -3,11 +3,12 @@
const int MODE_RECT = 0;
const int MODE_GRID = 1;
const int MODE_CIRCLE = 2;
const int MODE_TAMBO = 3;
const int MODE_C = 4;
const int MODE_THEREFORE = 5;
const int MODE_SPEEN = 6;
const int MODES = 7;
const int MODE_SLASHER = 3;
const int MODE_TAMBO = 4;
const int MODE_C = 5;
const int MODE_THEREFORE = 6;
const int MODE_SPEEN = 7;
const int MODES = 8;
const float HUGE = 9E16;
const float PI = 3.14159265;
const float TAU = 6.283185307;
@@ -25,6 +26,7 @@ in vec2 position;
out float vLife;
out float vMode;
out vec2 vUv;
out vec2 vSize;
out vec3 vNormal;
out vec4 vPosition;
out vec4 vDice;
@@ -67,23 +69,24 @@ void main() {
// == compute size ===============================================================================
vPosition = vec4( tex0.xyz, 1.0 );
vec2 size;
if ( mode == MODE_RECT ) {
size = 1.0 * dice.xy;
vSize = 1.0 * dice.xy;
} else if ( mode == MODE_GRID ) {
size = vec2( 0.25 );
vSize = vec2( 0.25 );
} else if ( mode == MODE_CIRCLE ) {
size = vec2( 3.0 * dice.x * dice.x );
vSize = vec2( 3.0 * dice.x * dice.x );
} else if ( mode == MODE_SLASHER ) {
vSize = vec2( 0.6, 0.2 ) * dice.xy;
} else if ( mode == MODE_TAMBO || mode == MODE_C || mode == MODE_THEREFORE || mode == MODE_SPEEN ) {
size = vec2( 0.2 * dice.x );
vSize = vec2( 0.2 * dice.x );
}
vec2 shape = position * size;
vec2 shape = position * vSize;
vPosition.xy += shape;