Daily Life of BlueRose
728x90

컴퓨터 & 코딩 공부/컴퓨터 그래픽스 & 언리얼 엔진 9

언리얼 엔진 - 나나이트/버추얼텍스처에서 말하는 '가상화'의 의미

여는 글언리얼엔진5가  처음 출시되었을 때, "지오메트리를 가상화하여 획기적인 숫자의 폴리곤을 처리할 수 있게 되었습니다"라는 이야기를 들었을 때 이게 대체 무슨의미인지 몰라서, 뭔지 모르겠지만 아무튼 최적화를 잘 해주는가보다 정도로만 생각하고 있었습니다. 최근 그래픽스를 배우면서 각 용어를 배우다보니 이제 이러한 내용이 어떤 의미인지를 대략적으로는 알게 되었습니다만은 여전히 가상화라는 용어의 의미는 알 수 없어서 헤매게 되어, 이참에 한 번 정리를 해보았습니다.  가상화?그래픽스 전체에 적용되는 용어인지는 모르겠습니다만은 적어도 나나이트와 버추얼텍스처에서의 가상화란 모델링이나 텍스처가 사용될 부분의 위치, 크기, 세부묘사 수준 등을 계산하여(이 부분이 '가상'의 의미입니다), 필요할 때, 필요한 만큼만..

컴퓨터 그래픽스 - 래스터라이저의 기능(클리핑, 뒷면제거, 뷰포트 변환, 스캔 전환)

여는 글래스터라이저는 포토샵에서 종종 보이던 기능인 '래스터라이즈'라는 기능을 통해서 어느정도 이름을 접해본 기억이 있다보니 아무래도 친숙하게 느껴졌습니다. 포토샵에서 래스터화 전/후가 벡터에서 픽셀로 바뀌다보니 이와 유사하게 3D그래픽스에서도 벡터그래픽을 픽셀로 바꿔주는 기능정도라고 생각이 들기도 했네요. 물론 래스터라이저의 가장 주요한 기능 중 하나가 해당 기능이기는 합니다만은, 2D 평면의 벡터그래픽을 픽셀로 바꿔주는 단순한 모습과는 다르게 여러가지 래스터라이저가 하는 일이 많다는 걸 새삼 깨닫게 된 챕터였습니다. 아... 혹시나 저처럼 래스터라이저와 픽셀셰이더의 역할을 혼동하시는 분이 계실듯하여 미리 역할을 서로 정리하자면, 파이프라인 단계상으로도 래스터라이저가 우선 작동하게끔 되어있으며 클리핑,..

컴퓨터 그래픽스 - (버텍스 셰이더/래스터라이저) 좌표계 변환

여는글어떤 물체를 우리가 바라보고 인식하기까지 여러 단계를 거친다는 점은 다들 잘 알고계실겁니다. 광원으로부터 온 빛이 물체의 표면에 닿고, 해당 표면에서 반사된 빛이 동공을 통해 들어와 망막에 상이 맺히며, 이것이 뇌에서 처리되어 우리는 물체를 인식할 수 있게되는거죠. 그래픽스에서도 비록 형태는 좀 다를지언정, 어떤 물체가 단순한 좌표의 나열에서부터 화면에 표시되는 이미지가 되기까지는 우리의 눈과 마찬가지로 여러 과정을 거칩니다. 오브젝트 공간에서 월드공간으로 변환, 월드공간에서 카메라 공간으로의 변환, 그리고 카메라 공간에서 클립공간으로의 변환까지 총 3번의 변환과정을 거쳐 우리의 화면에 표시되기 위한 밑작업을 수행하게 됩니다. 이러한 변환을 각각 월드변환, 뷰변환, 투영변환이라고 부릅니다. 월드변환..

컴퓨터 그래픽스 - (버텍스 셰이더)물체 축소/확대, 회전, 이동의 원리

여는 글에픽게임즈사에서 언리얼엔진을 무료로 풀고 각종 강의를 제작하여 배포하였지만, 관련 지식이 전무했던 저에게는 기본 용어들조차 너무 어려워서 힘들었던 기억이 납니다. 특히, 모델의 하단에서 상단으로 갈 수록 색상이 연해지는 효과를 적용하기 위한 강의를 들을 때, '로컬 스페이스에서 버텍스의 Z축 좌표값에 비례하여 색상을 블렌딩한다'는 단 한줄의 문장을 이해하지 못해서 용어들을 파헤치느라 한참을 헤맸던 기억이납니다.  생각해보면 에픽게임즈사에서 언리얼엔진을 무료로 풀고 각종 강의를 제작하여 배포하였지만, 강의를 들을때마다 위의 내용처럼 용어에 대해 이해하지 못해서 헤맸던 적이 매 강의마다 있었던 것 같네요. 예전부터 생각해왔던것이지만 언리얼엔진을 배워보기 위해 2번이나 도전했다가 실패한 주요한 원인 중..

컴퓨터 그래픽스 - 모델링(폴리곤 메시, 정점(버텍스), 노멀(법선)의 관계)

여는 글언리얼 엔진이 무료화되고 얼마 지나지 않아 엔진을 다루는 방법을 배워보려고 고군분투했던 때가 있었습니다. 언리얼 엔진의 기본강의로 머티리얼이 있었는데요. 버텍스의 개념을 몰라서 상당히 헤맸던 기억이 납니다. 머티리얼을 생성하고 다룰때마다, 버텍스 셰이더가 어쩌고, 픽셀 셰이더가 어쩌고... 버텍스의 상대 좌표계의 Y축 값을 기준으로 값이 낮아질 수록 알파값을 높이네 어쩌네 하는 등.... 버텍스, 노멀의 개념을 알면 크게 어렵지 않았겠지만, 당시엔  버텍스나 노멀이 어떤 개념인지 모르는 상태로 무작정 머티리얼 작성법 강의를 듣고 있던터라, 학창시절 수학 공식을 무작정 외우는 느낌이 들어서 영 와닿지가 않더라구요. 특히, 꼭지점, 법선 등의 한글 용어로 중고등학교 수학을 배워온 저로서는 버텍스, 노..

컴퓨터 그래픽스 - 그래픽 관련 수학 용어 정리

여는 글[OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문]은 고려대학교 한정현 교수님께서 K-MOOC에 무료강의를 올려주시기로 유명한 책이죠. 저도 교수님의 강의를 보면서 도움을 받고자 책을 구입했습니다.  사실 전공이 아예 다르다보니, 3D 그래픽을 배울때 선형대수학을 얼마나 배워야하는지 감이 안왔는데요. 교수님께서 강의에서 말씀주시기를 3D에서 사용되는 선형대수학은 제한적이라고 하시더군요. 사실 이런 부분을 몰랐다보니 블렌더를 가르쳐주는 블로그에서 나온 토폴로지라는 용어가 위상수학을 말하는 줄 알고, 선형대수학과 위상수학을 언제 다 보고 있나 고민도 많이 했네요. (결론은 위상수학이 아니라, 메쉬 표면의 폴리곤 배열을 블렌더에서 일컫는 용어였습니다. 토폴로지를 잘 해야 한다는 건 모델링을 여러..

컴퓨터 그래픽스 - 언리얼 엔진 지형도구에서 각 셰이더의 역할

여는 글언리얼 엔진에서의 지형 레이어는 주로 버텍스 셰이더와 픽셀 셰이더를 사용하여 구현한다고 합니다. 렌더링 파이프라인에 대해 공부하면서 지오메트리 셰이더에서도 뭔가 역할이 있는건 아닐까 싶었는데, 딱히 역할이 별로 없더군요.  대부분의 텍스처 작업(머티리얼 작업)에서 픽셀셰이더와 버텍스셰이더만 언급되는데는 다 그만한 이유가 있는가 봅니다. 대체로 전문분야 종사자들의 QnA와 Reddit 등을 통해 알아보았는데, 온전하게 시스템을 이해하는 사람이나 문의 글이 생각보다 많지 않아서 내용 정리가 쉽지 않네요(즉, 틀린 정보일 수 있다는 뜻). 어차피 실제 엔진작업에서 어떤 단계에서 어떻게 이뤄지는지를 굳이 세세하게 알 필요는 없으니, 왜 고도에 따른 지형 변화 적용시 버텍스 접근부터 시작해야 하는지, 반면..

컴퓨터 그래픽스 - 그래픽 파이프라인(렌더링 파이프라인) 단계 정리

여는 글 언리얼 엔진에서도 여러번 보았던 버텍스 셰이더, 픽셀 셰이더 등의 용어가 렌더링 파이프라인에 속한다는 것을 최근에서야 알게되었습니다. 기존에 얼마나 무지한 상태에서 엔진을 배우려했는지 새삼 느껴지네요. 컴퓨터 그래픽스에 대한 공부를 본격적으로 들어가기에 앞서, 렌더링 파이프라인별 특성을 알고 있어야 이후에 어떤 단계에서 진행되는 공정인지를 알 수 있을 것 같아서 한 차례 정리해보고 가려합니다. 정의그래픽 파이프라인은 3D 개체가 우리의 2D 모니터 화면에 출력되기 까지 거치는 일련의 과정입니다. 3D는 3D로 표현하면 되는것 아닌가? 생각할 수 있겠지만, 컴퓨터의 처리결과를 통해 우리가 보게 되는 것은 모니터의 2D 화면이지, 디지몬 어드벤처의 가상 환경 세상이 아니라는 점을 기억해야 합니다. ..

컴퓨터 그래픽스 - 기본지식

여는 글컴퓨터 그래픽스를 천천히 공부해 나가려 합니다. 전공자가 아니라서 여러가지 정보를 찾아가며 배우는 중이며, 언리얼엔진4-5를 몇 번 만져보았으나 용어가 생소하고 작업 과정이 익숙지 않아서 포기했다가 다시 들여다보기를 반복하고 있는 상황입니다. 용어와 원리를 모르다보니 아무래도 엔진의 기능이 지향하는 바를 아무래도 알아보기가 어렵더군요. 때문에 이번에는 시간이 좀 걸리더라도 원리 부분을 넉넉히 배워보고 다시 진행해보려합니다.앞으로 기록할 내용들은 기본적으로 아래 내용들을 기반으로 작성할 예정입니다.OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 / 고려대학교 한정현OpenGL을 통한 3차원 그래픽스 프로그래밍 - 기초편 / 서강대학교 임인성언리얼엔진 문서 / 공식 강의Reddit / Stac..

반응형