OPENGL에서 그래프 렌더링 관련하여 2D로 변경해주어야 하는 일이 있었는데
그래프의 높이를 낮추어 2D에 가까운 형태로 구현해주었을 때 조명문제 때문에 2D가 깔끔하지 않게
그려지는 이유가 있었다. 그리고 더 찾아보고 적용하다보니 이게 조명문제 때문만이 아니라
그려진 도형에 해당하는 색상을 전부 입혀주지 않았기 때문에 발생한 일이었다.
모든 면에 제대로 된 색상을 입히고 색이 깨지는 현상을 보지 않으려면
vertices에 8줄의 값을 설정해주었다면 이에 입히는 color도 8줄로 설정해주어야 한다는 것이다.
물론 8줄보다 적거나 많거나 할 경우도 있을 수 있다. 이건 어디까지나 얕게 이해하고 얕게 적용하는 예 중에 하나니까.
기존 네 줄로 선언되있던 colors 배열을 네 줄을 추가해 8줄로 vertices 수와 맞춰주었다.
색을 전부 맞춰줬을 경우에는 Lighting 설정을 따로 안해두었기 때문에
모든 면이 설정된 조명에 구애받지 않는 모습을 확인할 수 있다.
첫번째는 설정해주기 이전의 초기 그래프, 두번째는 colors 배열을 수정해준 이후의 그래프,
세번째는 2D 구현을 위해 높이에 해당하는 float 값을 대폭 낮추었을 때의 출력되는 모습이다.
참고 : http://www.learnopengles.com/android-lesson-two-ambient-and-diffuse-lighting/
'GRAPHICS > OpenGL ES' 카테고리의 다른 글
[OPENGL ES] FloatBuffer allocation 관리를 통한 그래픽 최적화 (0) | 2018.04.02 |
---|---|
[OPENGL ES] 안드로이드 액티비티 이동간 출력해 준 그래픽 유지하기 (0) | 2018.02.14 |
[OPENGL] 특정 변수값에 따른 HSV 형식 색 표현을 RGB를 이용해 해보기 (0) | 2018.01.30 |
[OPENGL ES] 모델간 겹치는 상황에서 색이 깨지지 않게 하기 (0) | 2018.01.22 |
[OPENGL] OpenGL es 3D차트 애니메이션을 위해 참조할 자료 (0) | 2018.01.12 |