분류 전체보기98 Matrix Matrix https://thndl.com/square-shaped-shaders.html 도형의 위치를 바꾸는 방법 #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; float bar(vec2 loc, vec2 size, vec2 coord){ vec2 sw = loc - size/2.; vec2 ne = loc + size/2.; vec2 rect = step(sw, coord) - step(ne, coord); return rect.x*rect.y; } float cross(vec2 loc, vec2 size, vec2 coord){ floa.. 2021. 8. 19. Circle Circle distance는 input 변수가 2개 length는 input 변수가 1개라서 length가 더 빠르고 알려졌기때문에 length를 쓰는것이 좋다. 단 distance는 두개의 좌표의 거리를 구하지만 length는 하나의 값과 원점과의 거리를 나타내기때문에 구별해서는 써야 한다. step smoothstep //화면 비율에 구애 받지 않고 유지 시켜주는 코드 st.x *= u_resolution.x/u_resolution.y; d의 값이 최대 0.1이기 때문에 어둡게 나옴 #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void m.. 2021. 8. 19. Rectangle Rectangle NE를 기준으로 계산하면 파란색 SW를 기준으로 계산하면 빨간색 두좌표의 계산하면 가운데 부분만 1,1이고 나머지는 하나이상은 0을 가지고 있는 구별점이 생성된다. 2021. 8. 19. qualifier qualifier in vec4 == vec4랑 똑같음 깊은 복사에 해당해서 return 하지 않고 void하기 때문에 0+0.5가 되어 회색이 되는것이 아니라 검은색으로 표현된다 회색으로 변환시킬때 사용하는 것이 out 과 inout이다. inout 레퍼런스 복사가 되어서 아무것도 리턴을 하지 않았지만 주소 값이 전달이 되고 그값에 +.5가 더해져서 실제 main함수 color값이 변한다. in out inout vec3 col = vec3(.5): 일때 in out inout 실제 작업에서는 out은 안쓰는것이 좋고 최대한 in을 사용하며 부득이한 경우에 inout을 사용하는 것이 좋다. 2021. 8. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 25 다음