½ÃÀÛÆäÀÌÁö·Î Áñ°Üã±âÃß°¡
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ l Ã⼮üũ l ¸¶ÀÌÆäÀÌÁö l CGIMALL
happycgi
ÀÚ·á½Ç »çÀÌÆ®µî·Ï ·©Å·100 ÇÁ·Î±×·¥¸®ºä °ü¸®ÀÚÃßõÀÚ·á Ãʺ¸°¡À̵å
Ä¿¹Â´ÏƼ
Àüü ÆîÃ帱â
Äü¸Þ´º¸µÅ© jquery , CSS , PHP , Javascript , ¹«·áÆùÆ® , ASP
»ó¼¼°Ë»ö
Ȩ > CSS > ±âŸȿ°ú > Neuro Noise (GLSL Shader) »ó¼¼Á¤º¸
»çÀÌÆ®µî·Ï
Ŭ¶ó¿ìµåű×
Javascript
PHP
asp
css
mysql
html
jquery
image
Mobile
API
slide
°Ô½ÃÆÇ
¸Þ´º
ÇöÀçÁ¢¼ÓÀÚ ¸í »õ·Î°íħ
Neuro Noise (GLSL Shader)
¼Ò½ºÅë°èÁ¤º¸ ¿À·ù½Å°í ¹× ¹®ÀÇ
ÇØÇÇÆÀ
³×ƼÁð
Æ®À§ÅÍ·Î º¸³»±â ÆäÀ̽ººÏÀ¸·Î º¸³»±â
¼Ò½ººÐ·ù ±âŸȿ°ú
´Ù¿î·Îµå Ƚ¼ö 1 ȸ
°£´Ü¼³¸í ½Å°æ ³ëÀÌÁî ¹é±×¶ó¿îµå È¿°úÀÔ´Ï´Ù
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
ȨÆäÀÌÁö¹Ù·Î°¡±â ¼Ò½º´Ù¿î·Îµå µ¥¸ð ¹Ì¸®º¸±â ½ºÅ©·¦Çϱâ
   

½Å°æ È帧À» ³ªÅ¸³»´Â ¹é±×¶ó¿îµå È¿°ú ÀÔ´Ï´Ù.
¸¶¿ì½º Ä¿¼­¿¡ ÀÇÇØ È帧¿¡ ¿Ü°îÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù.
HTML, CSS, JS¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.
ÀÚ¼¼ÇÑ ³»¿ëÀº µ¥¸ð»çÀÌÆ® ÁÖ¼Ò¿¡¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.



HTML
<div class="content">
    <div class="section">
        <div>
            Neural Noise
        </div>
    </div>
    <div class="section">
        <div>
            GLSL shader based on <a href="https://x.com/zozuar/" target="_blank">@zozuar</a> <a href="https://x.com/zozuar/status/1625182758745128981/" target="_blank">artwork</a>
        </div>
    </div>
    <div class="section">
        <div>
            <a href="https://linkedin.com/in/ksenia-kondrashova/" target="_blank">linkedIn</a>
  <a href="https://codepen.io/ksenia-k" target="_blank">codepen</a>
  <a href="https://x.com/uuuuuulala" target="_top">X (twitter)</a>
        </div>
    </div>
</div>
 
<canvas id="neuro"></canvas>
 
 
<script type="x-shader/x-fragment" id="vertShader">
    precision mediump float;
 
    varying vec2 vUv;
    attribute vec2 a_position;
 
    void main() {
        vUv = .5 * (a_position + 1.);
        gl_Position = vec4(a_position, 0.0, 1.0);
    }
</script>
 
<script type="x-shader/x-fragment" id="fragShader">
    precision mediump float;
 
    varying vec2 vUv;
    uniform float u_time;
    uniform float u_ratio;
    uniform vec2 u_pointer_position;
    uniform float u_scroll_progress;
 
    vec2 rotate(vec2 uv, float th) {
        return mat2(cos(th), sin(th), -sin(th), cos(th)) * uv;
    }
 
    float neuro_shape(vec2 uv, float t, float p) {
        vec2 sine_acc = vec2(0.);
        vec2 res = vec2(0.);
        float scale = 8.;
 
        for (int j = 0; j < 15; j++) {
            uv = rotate(uv, 1.);
            sine_acc = rotate(sine_acc, 1.);
            vec2 layer = uv * scale + float(j) + sine_acc - t;
            sine_acc += sin(layer);
            res += (.5 + .5 * cos(layer)) / scale;
            scale *= (1.2 - .07 * p);
        }
        return res.x + res.y;
    }
 
    void main() {
        vec2 uv = .5 * vUv;
        uv.x *= u_ratio;
 
        vec2 pointer = vUv - u_pointer_position;
        pointer.x *= u_ratio;
        float p = clamp(length(pointer), 0., 1.);
        p = .5 * pow(1. - p, 2.);
 
        float t = .001 * u_time;
        vec3 color = vec3(0.);
 
        float noise = neuro_shape(uv, t, p);
 
        noise = 1.2 * pow(noise, 3.);
        noise += pow(noise, 10.);
        noise = max(.0, noise - .5);
        noise *= (1. - length(vUv - .5));
 
        color = normalize(vec3(.2, .5 + .4 * cos(3. * u_scroll_progress), .5 + .5 * sin(3. * u_scroll_progress)));
 
        color = color * noise;
 
        gl_FragColor = vec4(color, noise);
    }
</script>
   

CSS
body, html {
    margin: 0;
    padding: 0;
    background-color: #151912;
 overflow-x: hidden;
}
 
.content {
    width: 100vw;
    font-family: 'Times New Roman', serif;
}
 
.section {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #FFF6F7;
    text-align: center;
}
 
.section > div {
    width: 90%;
}
 
.section:nth-child(1) {
    font-size: 20vh;
}
 
 
.section:nth-child(2) {
    font-size: 10vh;
}
 
.section:nth-child(3) {
    font-size: 8vh;
}
 
.section:nth-child(2) > div {
    max-width: 800px
}
 
.section:nth-child(3) > div {
    max-width: 900px
}
 
.section:nth-child(3) a {
    padding: 0 .3em;
}
 
canvas#neuro {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
    opacity: .95;
}
 
a {
    display: inline-block;
    text-decoration: none;
    color: inherit;
    font-weight: inherit;
    font-style: inherit;
}
 
a:hover {
    font-weight: inherit;
    text-decoration: none;
    color: rgb(160, 160, 255);
}
 
a:active {
    color: rgb(160, 255, 255);
}
 
body, html {
    margin: 0;
    padding: 0;
    background-color: #151912;
}
 
.content {
    width: 100vw;
    font-family: 'Times New Roman', serif;
}
 
.section {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #FFF6F7;
    text-align: center;
}
 
.section > div {
    width: 90%;
}
 
.section:nth-child(1) {
    font-size: 20vh;
}
 
.section:nth-child(2) {
    font-size: 10vh;
}
 
.section:nth-child(3) {
    font-size: 8vh;
}
 
.section:nth-child(2) > div {
    max-width: 800px
}
 
.section:nth-child(3) > div {
    max-width: 900px
}
 
.section:nth-child(3) a {
    padding: 0 .3em;
}
 
canvas#neuro {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none;
    opacity: .95;
}
 
a {
    display: inline-block;
    text-decoration: none;
    color: inherit;
    font-weight: inherit;
    font-style: inherit;
}
 
a:hover {
    font-weight: inherit;
    text-decoration: none;
    color: rgb(160, 160, 255);
}
 
a:active {
    color: rgb(160, 255, 255);
}
 

³×ƼÁð ÀÇ°ß   ÀÌ¿ëÇϽŠÀÚ·áÀÇ Èı⸦ ÀÚÀ¯·Ó°Ô ÀÛ¼ºÇϼ¼¿ä. (»ó¾÷ÀûÀÎ ±¤°í ¹× µµ¹è¼º ±Û µîÀº »çÀüÅ뺸¾øÀÌ »èÁ¦µÉ ¼ö ÀÖ½À´Ï´Ù.)
³»¿ë ¾ÆÀ̵ð ÀÇ°ß³²±â±â
µî·ÏµÈ ÀÇ°ßÀÌ ¾ø½À´Ï´Ù.
1
À̸§
³»¿ë
:³×¸Â¾Æ¿ä: :È­³ª´Â±º¿ä: :Àá¿Í: :¿ì¿ïÇØ: :À̰ǾƳÄ: :¿ÕÇÏÇÏ: ¿Õ¿ôÀ½~ ³î·¥~
Æò°¡Çϱâ ÈǸ¢ÇÔ ¸Å¿ìÁÁÀ½ ÁÁÀ½ ±¦ÂúÀ½ º¸Åë º°·Î
µµ¹è¹æÁöÅ°
 21345410 º¸ÀÌ´Â µµ¹è¹æÁöÅ°¸¦ ÀÔ·ÂÇϼ¼¿ä.