monument ball travel 최종 발표
TRANSCRIPT
실수는 모바일을 얕본 것
발표자
프레젠테이션 노트
안드로이드 스튜디오, 디바이스별 이슈 해결을 얕봄 모든 조원들의 디바이스에서 돌아가는 코드를 만드는데 무려 2주가 걸림 안드로이드 파편화 XXX해봐
간단한 해결책: 모바일 포기
C++
Drawing(CG)
Porting(not CG)
발표자
프레젠테이션 노트
처음에 만들 코드: 컴퓨터 그래픽 그 자체 포팅: 안드로이드 SDK와 자바 이해(컴퓨터 그래픽 아님) 최적화 진행시 모바일 그래픽 도전과제이나, 시간 없어보임 대신 업무 재분배 컴퓨터 그래픽과 경로 탐색을 같이 구현하는 애로사항 과하게 쏠리는 업무부담을 재분배 결과적으로는 좋은 선택
결국 핵심은 눈속임가장 영감을 받은 장면은 인셉션의 Penrose step
발표자
프레젠테이션 노트
마술사의 화려한 마술도 또 다른 각도에서 보면 밑장빼기일 뿐 가장 영감을 받은 장면은 인셉션의 Penrose step 다른 각도에서 보면 떨어진 것도, 어느 한 시점에선 이어져 보임
어떻게 해결했나?Penrose triangle 접합부의 트릭
발표자
프레젠테이션 노트
Penrose triangle 접합부의 트릭 서로 다른 높이의 구성요소가 붙어 보이는 부분 존재 직육면체의 면들을 높이에 차등을 둬 해결
인간은 그림자로도 위치관계 파악
발표자
프레젠테이션 노트
물체들에 그림자가 진 면으로 광원의 개수와 방향을 파악 그 후에 물체의 Shading inform이 거기에 부합하는지 검증 추론과 결과가 다르면 혼란
뺄수도, 넣을수도 없는 irony이동 가능한 경로 설명 & Tricky batching이 들통
가짜 배치를 감추면서 그림자를 넣을 방법
발표자
프레젠테이션 노트
그림자를 뺀다면 실제 오브젝트가 이동 가능한 경로 설명 불가 그림자를 그냥 넣는다면 Tricky batching이 들통날 수 있음
Ambient만으로 해결가능할까?실험결과: 불가능
발표자
프레젠테이션 노트
한 면을 한 가지 색으로 렌더링 가능(요구사항 일부 만족) 결과적으로 그냥 한 색으로만 보여 경로 알려주기 불가능
결론: 셀 쉐이딩
발표자
프레젠테이션 노트
Cartoon rendering(shading)이라고도 불리는 기술 마치 셀 애니메이션(작화가가 직접 그리는)과 같이 광원정보를 의도적으로 단순화하는 것을 기초로 하는 기법 단순화된 조명 광원은 필요 윤곽선은 굳이 필요 없으리라 판단
화면의 정보를 가지고 오기gluUnProject : 윈도우 좌표를 오브젝트 좌표로
오브젝트 좌표를 윈도우 좌표로 바꿔줄 수 있지 않을까?gluProject모든 큐브의 버텍스를 프로젝션한다.
발표자
프레젠테이션 노트
광추적 할 때 쓰던 gluUnProject 함수는 윈도우 좌표를 오브젝트 좌표로 바꾸어주는 함수. 오브젝트 좌표를 윈도우 좌표로 바꿔줄 수 있지 않을까?
...하다가 망예상과 렌더링 방식이 달랐음
발표자
프레젠테이션 노트
주고받는 API 통합이 안됨 예상과 렌더링 방식이 달랐음 순간이동이 필요한 부분에 큐브가 두개라 프로젝션으로 못 구함 하지만 위치와 속도를 받는 과정에서 미리 처리되어 있는 것들을 발견
새로운 해결책미리 처리되어 있는 것들을 발견
+맵의 데이터(하드코딩)로 해결하기로 함
물론 멘붕도 함께...
발표자
프레젠테이션 노트
위치와 속도를 받는 과정에서 미리 처리되어 있는 것들을 발견 특정 큐브와의 충돌 여부를 판단 가능, 회전축은 xz평면 원점 순간이동이 필요한 시점은 맵의 데이터로 해결하기로 함