일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ASW(Application SpaceWarp)
- working set
- 벡터
- Cartoon Rendering
- 게임 수학
- 개인 바이트
- URP로 변경
- AppSW
- Private Bytes
- 가상 바이트
- Toon Shader
- URP
- Cell Shader
- 3d
- Three(Two) Tone Shading
- Cell Look
- 메모리 누수
- OculusMotionVectorPass
- Windows Build
- 작업 집합
- VR
- C언어
- 프로그래밍 기초
- Rim Light
- Specular
- Virtual Byte
- ColorGradingLutPass
- Today
- Total
WinCNT
Texture 본문
그래픽스의 기초
- 모양(Primitive)
- 정점 색(Vertex Color)
- 조명(Light)
Texture
질감, 재질을 뜻하는 영단어
3D 컴퓨터 그래픽스에서는 3차원 물체의 표면에 2차원 이미지를 입히는 렌더링 관련 요소를 뜻한다
맵(Map)이라고 부르기도 한다
3D 그래픽스에서 픽셀 단위의 정교한 작업을 한다고 해도 어차피 래스터라이징을 사용하므로,
래스터 이미지를 샘플링해서 매핑하자는 아이디어에서 나왔다
텍스처를 사용하면 적은 삼각형으로도 높은 디테일을 표현할 수 있게 해준다
(텍스처 좌표를 보내고 샘플링하면 됨)
텍스처 좌표
텍스처를 사용하려면 버텍스 정보에 텍스처 좌표를 추가한다
참고로 텍스처의 좌표는 보통 x, y가 아닌 u, v로 표시한다
텍셀
텍셀(texel)은 텍스처에서의 화소이다
모니터 상의 한 점을 픽셀이라고 부르는 것 처럼 텍스처 상의 한 점을 텍셀이라고 부른다
0 ~ 1로 정규화가 되어있으며, 매핑 시 선형 보간이 된다
하나의 텍셀이 여러개의 픽셀로 구성될 수도 있고(확대)
여러개의 텍셀이 하나의 픽셀을 구성될 수도 있다(축소)
샘플링, 샘플러
텍스처의 실제 사이즈와 모델의 버텍스는 1 : 1 매핑이 되지 않는다
그걸 여러 보간(필터링)을 통해 맞춰주는 것이 샘플러라고 한다
필터링
좌표는 0~1까지의 실수, 텍스처는 정수 값
즉 텍스처에는 없는 것도 가져오게 된느 경우가 생긴다
이런 경우는 보간해서 적당한 값을 가져오게 되는데
그걸 필터링이라고 한다
보통 Linear나 Bilinear를 많이 쓴다
축소 - 밉맵 체인
축소에 대비하기 위해서 텍스처를 2의 승수 분으로 나누면서 체인을 만든다
구글 어스의 LOD, Popping 기술 등등
우리가 고민할 필요는 없고 DX3D에 사용할 것이라고 설정해주면 된다
다운 샘플링
화면의 픽셀과 텍스처의 픽셀의 비율을 비슷하게 맞추는 것
축소하면 화면의 픽셀
LCD 모니터 - 최대 해상도가 최적 해상도
1개의 소자가 1개의 픽셀을 표현할 때 가장 이상적으로 나온다
이러한 이유로 밉맵과 다운 샘플링이 존재한다
비등방성 필터링
텍스처는 지평성으로 갈수록 뭉개지는 경우가 있다
그러한 경우를 범위를 나눠서 보간하는 방식을 바꿔서 적용하는 필터링이 있는데
그것을 비등방성 필터링이라고 한다
SSS
'게임 프로그래밍(학습 내용 정리) > 3D Game Programming' 카테고리의 다른 글
PBR (0) | 2022.03.31 |
---|---|
Light (0) | 2022.03.31 |
Primitive (0) | 2022.03.25 |
렌더링 파이프라인 (0) | 2022.03.24 |
Transform(변환) 3 (0) | 2022.03.23 |