mirror of
https://github.com/supabase/supabase.git
synced 2026-10-17 07:09:07 +03:00
* mamba init * shader-updates * feat: add better bloom * cleanup * Fix GLTF model loading to respect original material properties Signed-off-by: Piotr Goszczyński <pg@tonik.com> * Fix GLTF model loading to respect original material properties Signed-off-by: Piotr Goszczyński <pg@tonik.com> * stash changes * Update font to Arial in mamba ticket component Signed-off-by: Piotr Goszczyński <pg@tonik.com> * Fix wireframe size in debug mode Signed-off-by: Piotr Goszczyński <pg@tonik.com> * Fix wireframe size in debug mode by attaching to child mesh instead of model Signed-off-by: Piotr Goszczyński <pg@tonik.com> * fix scaling * fix * feat: load png with color material * fix: spline material * add toggling of effects * stash * feat: ticket model * load better model * strcture * fix rotation speed * rotation * fix rotation * new model * prepare final designs * add color palette * feat: add fonts and rendering * render dynamic texture * load all textures * fix: color sace * feat: secret model * improve perf * postprocessing * fix: output pass * improve shaders * increase glitches * cleanup * update colors * remove unused files * add header * feat: ui * fix: raycaster * feat: add button toggling * Improve ui * fix corners positoins * add tunnel effect * fix: dates * add dynamic rocket position rendering * add different logs * feat: add migrations and connect to real data * chore: state cleanup to use reducer Migrate logic to centralized reducer for ease of debugging * feat: add hud layout * add grain effect to hud * limit glitching, move page to main url * add vignette effect * fix: desktop layout * remove vertical space * feat: save secret state on ticket upgrade * feat: make platinum version take priority over secret * add mobile header * remove unnecessary allocations * fix: resize hud * add page scaling for mobile layouts * add ticket scaling based on resolution * adjust mobile styles * fix: resize texture distortion * add gauges mobile breaking points * feat: mobile claim layout * mobile styles * Show ticket referer * rename files * update copy links * add partymode part 1 * feat: og images, lw14 * add presence tracking * add live updates of guages * Update meetups label * update label * username ticket lw14 * add proper subscription on first render * remove green edge * feat: remove species & planet from ticket scene * change urls * feat/mamba-assets: update assets * feat: fix shader grain * add color to shader * remove vertical space * fix: og image generation * fix referal and removing of access token * make urls nicer * feat/mamba-assets: dynamic line break + dynamic background * small adjustments * add trimming to ogimages * minor: missing font file * fix og image line wrapping * remove dot from meetups * improve ticket quality * upss, forgot to commit one file * feat add dynamic og image linking * update static site url * fix low mobile resolution * add banners * simplify banner loading * add missing fonts * fix name breaking to prioritize spaces * update quality based on devicePixelRatio * fix button positioning * revert: feature flags disabling * update start date * limit shader effects and disable axis, potential fix to chrome freeze * feat: init mamba 01 * create narrow ticket scene * narrow scene for ticket and fix follow mouse * fix dates * alternative version * updated ticket page * remove migrations * remove files * prettier * prettier * Fix TS and prettier issues * Fix TS issues * Test * Remove console log * fix updating ticket on share * chore: lw cleanup * fix ticket layout * fix chrome crashes * lower crt intensity * tunnel improvements * fix tunnel effect * chore: z-index and prettier fix * chore: padding * fix double tunnel * chore: font on banners --------- Signed-off-by: Piotr Goszczyński <pg@tonik.com> Co-authored-by: dztonik <dz@tonik.com> Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com> Co-authored-by: Joshen Lim <joshenlimek@gmail.com> Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
113 lines
2.8 KiB
TypeScript
113 lines
2.8 KiB
TypeScript
import {
|
|
DataTexture,
|
|
FloatType,
|
|
MathUtils,
|
|
RedFormat,
|
|
ShaderMaterial,
|
|
UniformsUtils,
|
|
WebGLRenderer,
|
|
WebGLRenderTarget,
|
|
} from 'three'
|
|
import { Pass, FullScreenQuad } from 'three/examples/jsm/postprocessing/Pass'
|
|
import { DigitalGlitch } from 'three/examples/jsm/shaders/DigitalGlitch'
|
|
|
|
class GlitchPass extends Pass {
|
|
uniforms: typeof DigitalGlitch.uniforms
|
|
heightMap: DataTexture
|
|
material: ShaderMaterial
|
|
fsQuad: FullScreenQuad
|
|
goWild: boolean
|
|
curF: number
|
|
randX: number
|
|
intensity: number
|
|
|
|
constructor(dt_size = 64) {
|
|
super()
|
|
|
|
const shader = DigitalGlitch
|
|
|
|
this.uniforms = UniformsUtils.clone(shader.uniforms)
|
|
|
|
this.heightMap = this.generateHeightmap(dt_size)
|
|
|
|
this.uniforms['tDisp'].value = this.heightMap
|
|
|
|
this.material = new ShaderMaterial({
|
|
uniforms: this.uniforms,
|
|
vertexShader: shader.vertexShader,
|
|
fragmentShader: shader.fragmentShader,
|
|
})
|
|
|
|
this.fsQuad = new FullScreenQuad(this.material)
|
|
|
|
this.goWild = false
|
|
this.curF = 0
|
|
this.randX = 0
|
|
this.generateTrigger()
|
|
this.intensity = 0
|
|
}
|
|
|
|
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget) {
|
|
this.uniforms['tDiffuse'].value = readBuffer.texture
|
|
this.uniforms['seed'].value = Math.random() //default seeding
|
|
this.uniforms['byp'].value = 0
|
|
|
|
if (this.curF % this.randX < this.randX / 10) {
|
|
this.uniforms['amount'].value = 0 * this.intensity
|
|
this.uniforms['angle'].value = Math.PI
|
|
this.uniforms['distortion_x'].value = MathUtils.randFloat(0, 0.05) * this.intensity
|
|
this.uniforms['distortion_y'].value = MathUtils.randFloat(0, 0.05) * this.intensity
|
|
this.uniforms['seed_x'].value = MathUtils.randFloat(-0.05, 0.05) * this.intensity
|
|
this.uniforms['seed_y'].value = MathUtils.randFloat(-0.05, 0.05) * this.intensity
|
|
this.curF = 0
|
|
}
|
|
|
|
this.curF++
|
|
|
|
if (this.renderToScreen) {
|
|
renderer.setRenderTarget(null)
|
|
this.fsQuad.render(renderer)
|
|
} else {
|
|
renderer.setRenderTarget(writeBuffer)
|
|
if (this.clear) renderer.clear()
|
|
this.fsQuad.render(renderer)
|
|
}
|
|
}
|
|
|
|
generateTrigger() {
|
|
this.randX = MathUtils.randInt(200, 240)
|
|
}
|
|
|
|
generateHeightmap(dt_size: number) {
|
|
const data_arr = new Float32Array(dt_size * dt_size)
|
|
const length = dt_size * dt_size
|
|
|
|
for (let i = 0; i < length; i++) {
|
|
const val = MathUtils.randFloat(0, 1)
|
|
data_arr[i] = val
|
|
}
|
|
|
|
const texture = new DataTexture(data_arr, dt_size, dt_size, RedFormat, FloatType)
|
|
texture.needsUpdate = true
|
|
return texture
|
|
}
|
|
|
|
setIntensity(amount: number) {
|
|
this.intensity = amount < 0.01 ? 0 : amount / 4
|
|
}
|
|
|
|
enable(value: boolean) {
|
|
this.uniforms['byp'].value = value ? 0 : 1
|
|
}
|
|
|
|
dispose() {
|
|
this.material.dispose()
|
|
|
|
this.heightMap.dispose()
|
|
|
|
this.fsQuad.dispose()
|
|
}
|
|
}
|
|
|
|
export { GlitchPass }
|