imageloader.cpp
imageloader.h
main.cpp

위의 그림파일과 같은 2D등고선을 3D로 맵핑하여 출력하여 terrain을 만든다.
그리는 방법은 다음과 같다.

모든 연속적인 버텍스들에서 삼각형을 그리는 OpenGL을 만든다.
3개의 점이 하나의 삼각형이되고 톱니파를 만들며 모든 그림을 그린다.
(0,0)->(0,1)->(1,0) -> (1,1)->(2,0)->(2,1) -> (3,0)->(3,1)->(4,0)
여기서 필요한 것은 각 해당 버텍스마다의 벡터좌표와 법선 단위벡터를 알아야 한다.
벡터좌표는 위의 비트맵파일에서 읽어오며 법선단위벡터는 아래와 같이 계산한다.
1. 해당좌표에 대해 앞,뒤,좌,우의 차이를 계산한다.
2. 앞뒤좌우의 차이를 가지고, ↓x←, ←x↑, ↑x→, →x↓ cross곱을 통해 동일한 축으로 만든 후, 단위법선 벡터를 계산.
3. 계산된 법선벡터를 스무스하게 만들기 위해 앞뒤좌우의 법선벡터를 모두 더해서 일정한 비율로 조정한다.
법선벡터를 설정하게 되면, 조명밝기에 대해 색의 농도가 자동으로 정해지게 된다.
'작업 > opengl' 카테고리의 다른 글
| Lesson 9: animation (0) | 2012.07.28 |
|---|---|
| Lesson 8: Drawing Text (0) | 2012.07.27 |
| Lesson 6: Putting It All Together (0) | 2012.07.26 |
| Lesson 5: Textures (0) | 2012.07.25 |
| Lesson 4: Lighting (0) | 2012.07.05 |