컴퓨터 그래픽스 용어

Extreme Coding·2022년 1월 20일
0
  1. 블랜딩 (Blending)
  • 혼합, 융합이라는 뜻으로 두 개의 텍스쳐를 합쳐 같은 물체에 표현하는 시각적인 기법
  1. 알파 블랜딩 (Alpha Blending)
  • 두 개의 텍스처를 합칠 때 투영 효과를 주는 블랜딩 기법 알파값 조절
  1. 바이리니어 필터링 (Bininear Filtering)
  • 물체의 표현에 나타나는 텍스처를 흐릿하게 함으로써 블록화 현상을 줄이기 위한 기법.
  1. 안개효과 (Fogging)
  • 말그대로 안개 효과
  1. 쉐이딩 (Shading)
  • 3D 환경에서 물체의 표면을 나타내는 성질을 표현하는 기법
  1. 밉 맹핑 (MIP Mapping)
  • 실시간 랜더링 기법 중 하나로 복수의 텍스처 맵을 사용해 디테일 레벨이 변경될 경우 그에
    걸 맞는 텍스처 맵을 사용해 물체가 커지거나 작아질 경우 자연스러운 텍스처를 출력한다.
  1. Z 버퍼링 (Z Buffering)
  • Z 버퍼에 저장된 3D 공간의 거리를 계산하여 출력하려는 물체의 가림 여부를 수행
  1. 비트맵 (Bitmap)
  • 2차원 이미지를 말함.
  1. 폴리곤 (Polygon)
  • 점으로 이루어진 다각형 3D 물체의 기본 단위.
  1. 필 레이트 (Fill Rate)
  • 3D 가속기가 텍스처 맵핑된 폴리곤을 출력하는 속도를 나타내는 수치.
  1. FPS(Frames Per Second)
  • 프레임 레이트의 단위. 3D 가속기의 성능을 표현할 때 사용 초당 출력 가능한 화면수를 나타냄.
  1. Direct 3D
  • 실시간 3D 렌더링을 위해 마이크로소프트가 배포하는 API.
    하드웨어 추상화 기법을 사용하므로 개발자들이 각종 하드웨어에 대해 신경 쓰지 않아도되는 장점이 있음.
  1. Light Probes (라이트 프로브)
    라이팅을 씬에 있는 고정된 포인트에 샘플링해 놓고, 이것을 프로브 포지션에 기록해 놓는 것입니다. 어느 지점의 라이트라도 가까운 프로브에 샘플링된 라이트 값으로 인인터폴레이션 되어서 계산됩니다.
    프로브는 플레이어가 돌아다니는 영역에만 필요하다. 프로브는 일반적으로 조명 상태가 갑자기 변할때 필요하며 그림자의 끝 부분이라던가 풍경 조각 다른 칼라일때 사용합니다.
  1. HDR(High Dynamic Range)
  • HDR 렌더링은 빛의 최대강도 1.0 과 같은 제한을 제거하고 픽셀에 조명 강도를 1.0 이상으로 저장할 수 있게 합니다. 8bit->16 ->32 ->64 의 더 많은 단계를 갖는 부동소수점 사용
    장점: 아주 밝은 영역에서도 칼라값을 읽어버리지 않습니다 / 휠씬 좋은 블룸을 제공합니다. / 적은 주파수의 라이트 영역에서의 밴딩을 줄입니다.
    단점: 부동 소수점 포인트의 버퍼를 사용합니다. 그래서 느립니다. / 모든 하드웨어에서 사용되는것은 아닙니다.
  1. Linear Space
  • Linear space를 사용하는 큰 이점은 쉐이더에 제공되는 컬러들이 light의 intensities가 증가할 때 선형적(linearly)으로 밝아진다는 것이다. 반대로 감마의 경우는 white로 빠르게 올라가는데, 이는 이미지의 퀄리티에 좋지 않다.
    Linear의 또 다른 주요 이점은 쉐이더들이 감마보정(Gamma(Midtone) Compensation) 없이 텍스쳐들을 샘플할 수 있다는 것이다. 이는 컬러값이 렌더 파이프라인 전체에서 일관성을 유지하는데 도움을 준다.
  1. Gamma Space
  • 아쉽게도 Linear Color Space는 특정 모바일 하드웨어와 몇몇 게임 콘솔에서 지원되지 않는다. 그럴때 대신 사용할 수 있는것이 Gamma다.
  1. Dual Lightmap
  • 싱글 라이트맵의 단점을 개량해서 나온 새 기능으로 Shadow distance(그림자 출현 거리) 옵션 값으로, 카메라와 가까운 영역은 리얼타임 그림자와 리얼타임 라이트가 계산됩니다. 즉, 노말맵이나 스펙큘럭가 적용된 라이트맵을 사용하지 않는 실시간 상태를 렌더링하고 Shadow distance를 넘어간, 카메라와 먼 영역은 예전의 라이트맵 방식만 나타나게 됩니다.
    장점: 퀄리티가 올라갑니다. / 저사양에서도 품질이 덜 떨어집니다. / 사양이 낮아집니다. / 간단한 수정이 쉬워져 보입니다. /
    단점: 제작이 귀찮습니다(라이트맵을 Baking)하는 작업의 시간이 꽤 걸립니다. / 메모리를 더 차지합니다. / 디퍼드 렌더링 모드에서만 사용가능합니다.
  1. 프러스텀 컬링
  • 가장 가벼운 지형 최적화 방법중 하나.
  1. 클리핑
  • 버텍스를 하나하나 잘라버리는 기술 (부하가 심해서- 매 프레임 전체 버텍스의 충돌을 계산 + 버텍스를 추가 생성해서 면을 만들어 버리는 기술) 마영전의 옷 처리도 클리핑 플렌을 미리 설치해 놔서 계산량을 줄였다고 합니다.
  1. LOD(Level of Detail)
    LOD 단계를 설정으로 거리에 따라 드로우콜 변화 가능.

  2. Unity Shadow
    Hard Shadows : 딱딱함. 부자연스러운 그림자
    Soft Shadows: 부드러운 그림자
    Strength: 그림자의 강도를 조정
    Resolution: 그림자의 해상도를 조절
    Bias: 그림자 시작지점
    Cookie: 모양의 비어있는 부분으로 빛을 쏨

  3. Vertex Lit

  • 오래된 하드웨어에서 지원하도록 한 경량버전으로 성능은 좋지만, 지원하지 않는 기능이 많다. ex) 노말맵핑, 쿠키, 라이트 프로브 등
  1. Forward
  • Pixel 당 라이트를 계산하는 방식으로, 범프매핑 등이 가능합니다. Direct3D9에 대응하는 가장 일반적인 방식이며, 빛과 물체의 수만큼 느려집니다. 따라서 라이트에 중요도를 설정하고, 중요도에 따라 다른 품질로 라이팅을 표현합니다.
  1. Deferred Lighting
  • 가장 최신의 파이프라인이며, 빛의 수에 제한이 없다는 것이 가장 큰 장점 입니다. 하지만 아직까지는 모바일에서 이를 지원하지 않으며 , 투명한 물체는 지원하지 않습니다. 동작원리 - 2D 렌더 타겟간의 계산이다. 3D계산을 ->2D 계산으로 변환 시킨다. 오브젝트는 라이팅 계산이 전혀 없이 속성만을 렌더링 한다.
    화면에 실제로 렌더링 되는 픽셀만 라이팅 계산을 수행한다. (라이팅 계산을 미루어 두었다가 실행하기 때문에 지연 셰이딩이라 불리운다.)
    요구 조건: MRT을 기본적으로 4장 이상 사용한다. / DirectX 9 이상 / 지포스 6800 이상 / ShaderModel 3.0 이상 을 충족시 가능
    사용된 게임들: 배틀필드3 , 크라이시스2 , gta4 ,데드스페이스,스타크래프트2 등
  1. G-Buffer
    Geometry Buffer
    Per-Pixel 라이팅에 필요한 모든 정보(Normal / Position / Diffuse / Specular Albedo(반사율) / Depth / Shiniess /Other Attributes )

  2. 지오매트리 패스

  • 3D 공간의 지오메트리(오브젝트) 데이터의 속성값들을 G-Buffer에 렌더링 하는 단계
    라이팅 처리는 하지 않는다.
    MRT(Multi Render Target)을 사용해서, 한 패스에 4개의 렌더 타겟에 정보를 렌더링 한다. Depth / Normal / Diffuse / Specular
  1. 라이팅 패스
  • 라이팅에 영향을 받는 픽셀을 찾아내서 체크한다.
    각각의 라이팅에 영향을 받는 픽셀들의 계산 결과를 누적 버퍼에 블렌딩한다.
    (Diffuse 값과 Specular 값은 별도로 저장)
  1. real-time Global illumination
  • 3d 컴퓨터 그래픽스에서 3d 씬에 좀더 사실적인 라이팅을 추가하기 위한 알고리즘이다.
  1. Enlighten (인라이튼)
  • GI가 사뮬레이션되는 지오메트리는 정적이어야합니다. 하지만 동적 오브젝트는 라이트프로브에 의해서 동적으로 라이팅이 변경 될 수 있습니다. 이 라이트프로브는 실시간으로 정적인 오브젝트의 GI를 업데이트 할 수 있습니다. 이를 위해 인라이튼은 실시간으로 GI를 시뮬레이션 하기 위한 데이터를 미리 연산해놓습니다.
  • 실시간 라이트맵
  • 실시간 라이트프로브
  • 실시간 큐브맵
  1. 인라이튼 사전 연산 (precompute)
    정적인 지오메트리는 GI 솔루션 시스템에서 효과적으로 관리됩니다. 사전 연산(precompute) 단계에서 인라이튼은 씬을 여러 시스템 태스크로 쪼갠 후 이를 방대한 병렬 파이프라인에서 나누어 연산합니다. 사전 연산 과정을 거친 후 시스템 태스크간의 지오메트리 연결 정보가 구성됩니다. 이 정보들은 실시간으로 간접광을 제어하는데 사용 될 수 있습니다. 이어한 덕에 벽의 파괴나 문이 열리는 상황 등 라이팅이 변화되는 상황이 반영 될 수 있습니다.

  2. 인라이튼 런타임
    인라이튼은 데스크탑PC나 차세대콘솔 뿐만 아니라 하이엔드 모바일 장치에서도 작동합니다. 이는 CPU 스레드에서 비동기적 연산으로 돕니다만, 모바일에선 동적 라이팅과 그림자의 GPU 연산이 이슈다보니 모바일에서는 처리 가능한 동적 라이팅의 갯수가 제한됩니다. 하지만 발광색(emissive) 변경은 자유롭습니다. 발광색의 정보는 비록 저해상도이긴 하나 인라이튼에 인코딩된 정보로 연산을 하기 때문입니다.

  3. 베이킹(Baking)
    어떤 게임들은 라이팅을 미리 굽는(baking) 과정이 매우 적절한 선택이 될 수 있을 것입니다. 유니티5에서는 라이트소스, 발광 재질, 환경 라이팅 등이 baked 및 리얼타임으로 태그 될 수 있습니다. baked는 이전 버젼(4.x)와 같은 방식으로 베이킹 되는 것 의미합니다. 동적 라이트는 인라이튼 런타임에서 처리합니다. baked와 real-time은 이질감 없이 합성됩니다.
    유니티5의 라이트맵은 여러 컴포넌트로 나뉩니다. 직접광, 간접광, 직접광 지향성, 간접광 지향성, AO 등 5개의 라이트맵으로 나뉘어집니다. 이 라이트맵 컴포넌트들은 실시간으로 합성하게 됩니다. 또한, 이는 에디터에서 컨트롤 가능합니다. 예를 들어 간접광만 증가시키는 것이 불과 몇 초 안에 이루어질 수 있습니다.

  4. 라이팅 워크플로우(workflow)
    라이튼은 실행중인 게임안에서만 실시간 GI를 제공하는 것은 아닙니다. 에디터에서 작업하는 과정에서도 실시간 GI가 이루어집니다. 인라이튼의 주요 장점 중 하나는 아티스트에게 엄청나게 개선된 워크플로우를 제공해준다는 것입니다. 이는 라이팅 작업이빠른 이터레이션으로 이루어 질 수 있기 때문입니다. iterative모드가 추가됨으로써 명시적으로 굽는 과정 필요가 없어졌습니다. 씬의 사전 연산 정보들이 실시간으로 구워지고, 사용자가 이 과정중에 일일이 개입할 필요가 없습니다. 에디터는 지속적으로 씬의 변경 사항 확인하여 자동적으로 라이팅 정보를 반영해주는 작업을 수행합니다. 대부분의 작업은 즉각적으로 반영됩니다.

  5. 디퓨즈맵

  • 디퓨즈는 분산, 확산이란 의미를 가지고 있는데...마야의 경우 칼라맵과 디퓨즈맵이 별도로 존재합니다.
    칼라가 그 오브젝트가 가지는 고유의 컬러이고 디퓨즈는 얼마나 그 색을 많이 표현할것인가나 빛을 많이 받을것인가등을 컨트롤하는데 맥스의 디퓨즈가 마야의 칼라맵에 해당합니다.
    결론적으로 적접적인 색이나 무늬등을 말합니다.
  1. .범프맵
  • 흑백만을 인식합니다. (칼라가 있는 맵을 적용해도 맥스자체에서 흑백으로 전환되 음영의 농도만 인식합니다.)
    검은색은 들어가보이고 흰색은 튀어나와보이게 하는 역할을 합니다. 범프맵 수치에 -를 입력하면 반대로 작용합니다.
    조명에 의한 눈속임으로 실제 표면의 변화는 없습니다.
  1. 노멀맵
    -범프맵의 발전형으로 흑백만 인식하는 단순한 형태에서 버텍스의 노말값을 RGB로 인식해서 좀더 디테일한 표현이 가능합니다.
    역시 조명에 의한 눈속임이고 실제 폴리곤의 변화는 없습니다.

  2. 스팩큘러맵

  • 스펙큘러 레벨과 스펙큘러 칼라 두가지가 존재합니다.
    스펙큘러 레벨의 경우 흑백만을 인식하며 흰색은 강하게 검은색은 스펙큘러0를 표현합니다.
    흰색이나 회색이 어느정도 강해야 하는가...에 대한 기준이 없기 때문에 요놈은 수치가 -999~999까지 올라갈수 있습니다.
    서로 다른 오브젝트의경우 각각의 재질에 각각의 스펙큘러값을 적용해주면 되지만 하나의 오브젝트로 되어 있는 물체가
    부위마다 다른 스펙큘러값을 가지게 된다면 스펙큘러맵을 사용해야 합니다.
    예를들어 사람 얼굴의 입술이나 콧잔등은 상대적으로 광택이 더 많이 나고...
    군대군대 페인트가 벗겨져 녹이슨 철판의 경우가 이에 해당됩니다.
    스펙큘러 칼라의 경우 역시 부분적으로 다른 스펙큘러색을 표현할때 사용합니다.

38 . 라이트맵

  • 일반적인 재질이 아닌 DX쉐이더에 사용하는것으로 일반적인 맵에 사용할경우 포토샵등에서 디퓨즈X라이트맵=디퓨즈 로 사용하셔도 됩니다. 게임엔진의 경우 실시간 렌더링되기 때문에 맥스에서 렌더링 건것처럼 라이트의 효과를 볼수 없기 때문에
    맥스에서 음영이나 그림자를 실제 렌더링 걸렸을때의 상황으로 맵으로 뽑아서 사용하게 됩니다.
  1. 알파맵
  • 흑백만을 인식합니다.
    투명도에 관여를 하는데 오퍼시티항목에 들어가기때문에 정확한 표현은 오퍼시티맵입니다.
    흰색은 불투명 검은색은 투명, 회색은 반투명을 표현합니다.
  1. 리플렉션맵(reflection)
  • 리플렉션은 반사를 표현하고 이미지를 넣을경우 해당 이미지가 직접적으로 투영됩니다.
    raytrace맵을 넣을경우 실질적인 빛추적을 계산해서 주변 물체를 반사하게 됩니다.
    이는 스탠다드 재질에서의 경우이고 기타 다른재질에서는 이미지를 적용할경우 흑백의 음영에 따라 반사의 정도가 달라집니다.
  1. 리프락션맵(refraction)
  • 굴절(투명도)를 표현하고 리플렉션맵과 거의 동일하게 작용하고
    raytrace맵을 넣으면 실질적인 빛의 굴절에 의해 뒷쪽 오브젝트가 왜곡되서 보입니다.
  1. 필터칼라
  • 자주 사용하는 기능은 아닙니다.
    재질에 오퍼시티가 적용되어 있을경우 필터칼라에 의해 투명도의 색과 그림자의 색에 변화를 줍니다.
  1. 그로스니스맵
  • 흑백만을 인식하며 광택의 정도를 표현합니다.
    흰색은 날카로운 광택...색이 어두워질수록 광택이 퍼져보입니다. 스펙큘러 레벨과 비슷하게 작용하고
    스펙큘러 레벨은 광택의 세기를 표현하지만 그로스니스의 경우 광택의 크기로 생각하시면 됩니다.
  1. 셀프일루미네이션맵
  • 수치만 조절할경우 디퓨즈가 밝아지지만 맵을 적용할경우 맵의 칼라에 영향을 받게 됩니다.
    흑백이미지를 넣게 되면 흰색은 셀프일루미네이션 100, 검은색은 0이 되고,
    칼라가 있는 맵을 넣을경우 일반적으로 흑백만 인식하지만 color항목에 체크를 하게 되면 칼라대로 나옵니다.
  1. 앰비언트맵
  • 일반적으로 디퓨즈와 앰비언트는 같은색을 사용합니다.
    디퓨즈는 전체적인 칼라를 담당하지만 앰비언트의 경우 어두운 부분의 색을 결정짓습니다.
    일반적인 상황에선 표현이 되지 않고 라이트에서 ambient only를 체크해 강제적으로 앰비언트 영역을 밝혀줄때
    어두운 영역의 색을 맵칼라대로 표현하게 됩니다.
    앰비언트를 따로 표현하기 위해서는 디퓨즈와의 연결고리를 끊어야 합니다.
  1. 디스플레이스먼트맵
  • 흑백만을 인식합니다.
    범프와 노말맵이 조명에 의한 눈속임이라면 디스플레이스먼트맵은 실질적으로 폴리곤에 영향을 줍니다.
    뷰포트상에서는 표현이 안됩니다. (단...모디파이어의 디스플레이스먼트는 바로 적용이 되고 그만큼 폴리곤수가 많아야합니다.)
    디스플레이스먼트맵은 렌더링 되는 과정에서 폴리곤이 늘어나고 결과물에서 표면에 변화가 생깁니다.
    렌더링 시간이 많이 걸림.
profile
나의 개발 일기장!

0개의 댓글