# Computer Graphics Final Project 소프트웨어학과 201620986 채성희
# Computer Graphics Final Project,
##소프트웨어학과 201620986 채성희
## Texture Mapping (multiple texture mapping)
No. Basic Texture Mapping
- 3D 객체에 고양이 사진을 mapping한 간단한 예제 이다. <br>
- 3D 객체는 다음과 같은 과정을 통해 만들어졌다. <br>
1. 삼각형 두개로 정사각형을 그린다. <br>
2. 정사각형을 다시 여러개의 삼각형으로 쪼갠다. <br>
예제에서는 총 16개의 삼각형을 이용하여 정사각형을 이용하였다. <br>
3. 각 꼭짓점의 좌표를 계산하여 정사각형을 그릴 수 있도록 한다. <br>
4. 정사각형을 그린다음 자연스러운 굴곡이 생길 수 있도록 z 값을 조정해준다. <br><br>
- 이 3D 객체에는 3D객체를 구성하는 삼각형이 많이 있기 때문에 각 삼각형의 vertex에 해당하는 값이 texture의 어느 부분인지 계산하는 것이 중요하다. <br>
- texture에서의 좌표값을통해 uv vector를 형성하고, 형성한 vector를 통해 texture를 mapping시킬수 있다. <br>
- 또한, 완성한 3D객체를 보면 rotate하는 각도에 따라, 고양이의 표정이 변화하는 것을 볼 수있다. <br>
- 삼각형을 더 잘게자른다면, 굴곡이 더욱 자연스러워 질 것이다. <br><br>
- Vertex shader source code : attribute로 현재 vertex의정보와 각 vertex에서의 color및 texture의 uv vector정보가 있다. <br>또한, vertex들의 이동을 통해 object를 trasnformation 할 수 있는데, <br>이때 matrix의 곱의 형태로 사용되어진다. <br>texture의 uv vector는 varying으로 fragment에 전해진다. <br><br>
- Fragment shader source code : vertex fragment로부터 varing을 통해 전달받은 texture의 uv vector를 통해<br> uniform 으로 선언된 texture를 mapping 할 수 있게 된다. <br>