목록2025/04 (38)
뭐라도 쓰겠지
유니티에서 코루틴(Coroutine)은 여러 프레임(Frame)에 걸쳐 함수를 중단했다가 재개하는 개념이다. 정확히 말하자면 C#의 IEnumerator 인터페이스와 yield 키워드를 활용해 구현된 '반복자(Iterator) 함수'를 유니티 엔진에서 특정 시점마다(매 프레임, 특정 시간 후 등) 다시 호출하여 마치 함수 실행이 멈췄다가 이어지는 것처럼 보여주도록 만든 구조이다.어떻게 동작하는가? 1. 코루틴 함수 정의IEnumerator를 반환하는 함수 안에서 yield return 문을 사용해 함수 실행을 일시 중지 할 수 있다.유니티는 MonoBehaviour.StartCoroutine()로 이 코루틴 함수(반복자)를 실행시킨다.2. 코루틴 실행 흐름코루틴 함수가 시작되면, yield return ..
디퍼드 렌더링은 3D 게임 엔진에서 조명 계산을 효율적으로 처리하기 위해 고안된 렌더링 기법이다. 전통적인 포워드 렌더링(Forward Rendering)과 달리, 장면의 각 픽셀에 대해 조명을 바로 계산하지 않고, 먼저 지오메트리 정보를 별도의 버퍼(G-Buffer)에 모아 둔 뒤에 나중(Deferred) 단계에서 한꺼번에 조명 계산을 수행한다는 점이 특징이다. 주요 흐름은 다음과 같다. 1. 지오메트리 패스(Geometry Pass)씬의 각 픽셀마다 필요한 정보를 'G-Buffer'라고 불리는 여러 텍스처나 버퍼에 저장한다.예: 월드 스페이스 노멀, 기본 색상, 머터리얼(금속성/거칠기 등), 깊이(Depth), 스페큘러 반사 계수 등이 단계에서는 실제 조명 계산을 수행하지 않으며, 오직 지오메트리 및..

Volumetric Light와 Volumetric Shadow는 빛이 안개나 먼지 입자 같은 매질(Volume)을 통과하면서 생기는 시각적 효과를 일컫는다. 일반적인 표면 조명만 계산하는 것이 아니라, 공간 내의 부유 물질 때문에 빛이 산란하고 약해지며, 이로 인해 빛의 빔(Beam), 광선(Rays) 또는 그림자가 공기 중에 부피감을 가지고 보이는 것이 특징이다.Volumetric Light란?개념:Volumetric Light는 빛이 공간(3D 볼륨)을 통과할 때 산란(Scattering)과 흡수(Absorption)를 시뮬레이션해, 공기 중에서도 빛의 흔적(광선)이 보이도록 하는 기법이다.일상생활에서 안개 낀 풍경이나 어두운 무대 위에서 스포트라이트가 내려올 때, 그 빛의 빔이 공기 중의 미세 입..
글로벌 일루미네이션(Global Illumination, GI)이란, 3D 장면 내에서 빛이 한 번의 직진(직접광)으로 끝나지 않고, 여러 표면에 반사∙산란∙투과 등을 반복하며 간접광으로 다른 부분을 발깋는 현상까지 종합적으로 계산하는 조명 기법을 말한다. 즉, 단순히 "광원 -> 오브젝트 표면"만 고려하는 것이 아니라, "광원 -> 표면 -> 다른 표면 -> ..."으로 이러지는 모든 빛의 경로가 전역적으로 씬 전체에 미치는 영향을 반영하는 것을 목표로 한다. https://www.youtube.com/watch?v=qC5KtatMcUw 언리얼 엔진 5의 테크 데모를 보면 글로벌 일루미네이션의 예시를 볼 수 있다.글로벌 일루미네이션의 개념 1. 직접광 vs 간접광직접광(Direct Lighting): ..
최근 Ray Tracing을 지원하는 게임들이 많아지고 있다. 그래서 이번 글에선 Ray Tracing과 Radiosity를 알아보겠다. Ray Tracing과 Radiosity는 모두 3D 공간에서 빛의 거동을 시뮬레이션하여 사실적인 이미지를 생성하는 기법이다. 그렇지만 접근 방식과 장단점, 주 사용 용도가 크게 다르다. 아래는 이 두 기법의 개념, 특징, 차이점을 정리한 내용이다.Ray Tracing개념:카메라(또는 광원)에서 광선(Ray)을 추적하며, 광선이 물체 표면과 충돌할 때마다 반사∙굴절∙흡수 등을 계산해 최종 픽셀 색을 결정하는 방식.현대의 Path Tracing은 광선의 확률적 분기(반사, 굴절, 산란 등)를 시뮬레이션하여 글로벌 일루미네이션(Globla Illumination)까지 고려..
3D 모델링에서 버텍스(Vertex, 정점)는 3차원 공간상에서의 점(좌표)을 의미하며, 폴리곤 메쉬(Polygon Mesh)를 구성하는 가장 작은 단위이다. 여러 버텍스가 연결되어 선(Edge)이 되고, 이 선들이 모여 면(Face)을 이루는 구조이다. 아래에서 좀 더 구체적으로 살펴보자.버텍스(Vertex, 정점)란 무엇인가?정의:3D 좌표계(x, y, z)에서 하나의 점(Point)2D로 치면 픽셀 좌표에 해당하는 개념이지만, 3D 공간에서 오브젝트의 "꼭짓점"을 표현주요 역할:모델(오브젝트)의 형태를 정의: 여러 버텍스들이 연결되어 3차원 오브젝트의 윤곽과 표면을 결정속성(Property) 보유: 위치(좌표)뿐만 아니라, 법선(Normal), 텍스처 좌표(UV), 색상(Color) 등의 정보를 저..