Shader CG34 1.5 도형 - Draw Circle 심화 04 챕터 Draw Circle을 구현해봤습니다.- https://graphicsimon.tistory.com/11?category=1119246 조금더 응용버전으로 작성해 보겠습니다. 먼저 frag 함수에서 position * 2를 해서 -1 ~ 1 좌표계 범위로 만들어 보겠습니다.다시 말씀드리면 -0.5 ~ 0.5 좌표계에서 2를 곱한 것 입니다. radius는 0.5로 주어졌다고 가정합니다. 1) 기본 원 렌더링lenght 함수는 벡터의 크기(길이)를 구합니다.pt - center를 해서 벡터를 구한 뒤, 길이를 구하면l각 픽셀과 center과의 거리 (len)가 나옵니다. len 값과 주어진 raidus과 비교하여, len이 거리가 작으면 0을 리턴하게 됩니다.1을 빼주게 되니, 원 내부픽셀들은.. 2023. 7. 18. 1.4 도형 - 타일링 타일링을 해봅시다타일링이라고 함은 특정 모양의 여러개의 타일들이 일정한 간격으로 배치가 되는 것을 의미 합니다.우리는 사각형을 만드는 것을 배웠으니, 사각형 모양으로 여러개를 반복해서 렌더링 할 것입니다. 아래 타일링을 적용하는 코드는 아래 한 줄 입니다.float2 pos = frac(i.position.xy * _TileCount);원리는 다음과 같습니다.frac 함수는 분위수 부분을 반환합니다.frac(x) + floor(x) = x 로 정의 됩니다.frac(x)는 분수 부분을 리턴합니다. 예를 들어1) 11.43경우, floor는 11, frac은 0.43 입니다.2) -1.4 음수 경우 = floor는 -2, frac은 0.6 입니다. UnityObjectToClipPos 함수로 인하여, i... 2023. 7. 13. 1.3 도형 - Rotation & Scailing Rect opengles를 공부했을때 rotation, scale matrix를 사용해본적이 있으실 겁니다.position에 matrix 행렬을 곱해서 회전을 시켜봅시다. 회전행렬 공식은 다음과 같습니다.float2x2 getRotationMatrix(float theta) { float s = sin(theta); float c = cos(theta); return float2x2(c, -s, s, c);}float2x2 타입은 라는 것은 2 by 2 행렬 입니다.계산 유도 과정 입니다. 회전 매트릭스를 position에 곱하면 됩니다.곱하기만 하면 원점 중심으로 회전합니다.float2 pt = mul(mat, pos); 회전축을 설정하려면 어떻게 하냐면회전 축 값을 빼주었다가 다시 더해 줍니.. 2023. 7. 11. 1.2 도형 - Draw Rectangle - 2 이전에 Rectangle 그리는 방법을 배웠습니다. 다른 방식의 사각형 렌더링 예제를 구현 해보도록 하겠습니다.그리고 두개의 사각형을 그려보도록 하겠습니다. 전 예제에서는 사각형을 그리기 위해서는좌측하단, 우측상단 두개의 좌표를 구하면서 시작을 했었습니다. 이번에는 소스를 보면서 시작 하도록 하겠습니다.float rect(float2 pt, float2 size, float2 center) { float2 p = pt - center; float2 halfSize = size * 0.5; float2 result = step(-halfSize, p) - step(halfSize, p); return result.x * result.y;}pt에서 cente.. 2023. 7. 9. 이전 1 ··· 4 5 6 7 8 9 다음