전체 글(58)
-
2차원 transformation
2차원 transformation에서는 해볼 것은 3가지 변환이다. 1. rotation 2. translation 3. scale rotation 회전변환으로 원점을 중심으로 회전하는 것을 나타낸다. 2차원에서는 점을 중심으로 회전을 하고 3차원에서는 축을 중심으로 회전을 하게 된다. translation 좌표 이동이고 덧셈으로 나타낸다. vertex.x + translation, vertex.y + translation ... scale 크기 변환으로 곱셈으로 크기를 변경해준다. vertex.x * xScale, vertex.y * yScale ... 처음 변환을 하려면 vertex들을 가져오고 rotation을 할때는 어느 각도로 rotation을 할지 넘겨준 뒤 변환한 것을 return하면 된다...
2023.02.22 -
Rasterization 원 그리기
원은 무수히 많은 삼각형으로 이루어진 것으로 볼 수 있다. 앞에서 했었던 삼각형 그리기를 이용하여 원을 그려볼 것이다. https://whdtjr222.tistory.com/68 Rasterization Rasterization은 3D 좌표계의 오브젝트를 2D로 비율에 맞게 옮겨주는 과정이다. Rasterization을 이용하여 삼각형을 그려볼 것이다. Rasterization의 과정은 2단계로 볼 수 있다. 3d 좌표계에서 NDC(normalized devic whdtjr222.tistory.com 어떻게 그릴지 그려보자 8개의 삼각형으로 원을 그린다고 했을 때 vertex는 9개가 들어간다. 원을 표현하는 벡터를 좌표 상에 나타냈을 때 정리해서 코드로 옮기기 쉽게 하자 주의해야할 것은 vertex가 ..
2023.02.22 -
Blinn Phong, rim light를 이용한 specular
Blinn phong은 라이팅의 한 방법인데 reflection vector와 view vector간의 내적을 이용한 빛 표현이다. 그런데 reflection vector 구하는 방법이 까다롭고 오래걸리기 때문에 H vector과 Normal vector을 내적해서 구하기도 한다 그러면 실제 Blinn phong과 별로 차이가 나지 않은 결과를 얻을 수 있어서 많이 이용한다고 한다. H vector는 (L+v) / 2로 구할 수 있다. Unity에서는 Blinn phong 의 구현을 H = lightvector + viewvector로 구해주고 normalize하여 h vector를 구한다. 그리고는 normal과 h를 내적한다. float3 H = normalize(lightDir + viewDir);..
2023.02.20 -
Rasterization
Rasterization은 3D 좌표계의 오브젝트를 2D로 비율에 맞게 옮겨주는 과정이다. Rasterization을 이용하여 삼각형을 그려볼 것이다. Rasterization의 과정은 2단계로 볼 수 있다. 3d 좌표계에서 NDC(normalized device coordinates) 로 옮겨주는 과정 NDC에서 Raster 좌표계(Screen 좌표계)로 옮겨주는 과정 그리고 삼각형을 그리기 위해서 해당 픽셀이 삼각형 내부에 있는지 판단하고 내부에 있다면 색을 넣어주어서 삼각형을 그리게 된다. 1. 3d 좌표계에서 NDC로 옮겨주는과정 보통 3D에 물체가 있다고 가정하고 해당 vertex들을 처리하는게 그래픽스 파이프라인이다. 그래서 3차원 벡터의 vertex들을 정해주고 해당 vertex를 NDC 좌..
2023.02.15 -
CustomLight
Lambert 라이팅 빛의 음영만 계산하고 specular는 계산하지 않는 라이팅이다. Shader "Custom/CustomLight" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf Lambert noambient sampler2D _MainTex; struct Input { float2 uv_MainTex; }; fixed4 _Color; void surf (Input IN, inout SurfaceOutput o) { // Albedo comes..
2023.02.13 -
perspective 원근표현
https://honglab.co.kr/ honglab About Jeong-Mo Hong 약력 2020-2021 인스타그램 소프트웨어 엔지니어 2008-2019 동국대학교 컴퓨터공학과 부교수 2005-2007 스탠포드대학교 전산과 박사,연구원 2002-2005 고려대학교 전산학 박사 1996-2002 KAIST honglab.co.kr 위의 수업을 바탕으로 공부한 자료입니다. 원근법을 표시할 때 우리는 가까운 것이 더 크게 먼 것이 더 작게 표현하게 된다. 그러면 해당 현상을 표현하기 위해 필요한 것이 무엇이 더 가까운지에 대한 것과 가까운 것은 크고, 먼 것은 작게 표현하는 것이다. 해당 그림을 보면 같은 크기의 나무가 거리만 다른 것을 볼 수 있는데 눈을 따라가면 크기를 조절해주지 않아도 크기가 다..
2023.02.09