재미를 위해 DCPU-16 의 와이어 프레임 뷰어를 만들려고합니다 . 와이어 프레임에 숨겨진 선을 숨기는 방법을 제외한 모든 작업을 수행하는 방법을 이해합니다. 여기에있는 모든 질문은 모두 OpenGL에 액세스 할 수 있다고 가정하지만 불행히도 DCPU-16 (또는 모든 종류의 하드웨어 가속)과 같은 것에 액세스 할 수 없습니다.
Google 도서 에서 Appel의 알고리즘에 대해 상당히 잘 설명했습니다 . 그러나 알아내는 데 문제가있는 한 가지 문제가 있습니다.
등고선을 정면 및 후면 다각형이 공유하는 모서리 또는 닫힌 다면체의 일부가 아닌 전면 다각형의 공유되지 않은 모서리로 정의합니다. 두 개의 정면 다각형이 공유하는 모서리는 가시성을 변경하지 않으므로 윤곽선이 아닙니다. 그림 8.4에서 모서리 AB, EF, PC, GK 및 CH는 등고선이지만 모서리 ED, DC 및 GI는 그렇지 않습니다.
알고리즘의 규칙과 윤곽선이 있으면 알고리즘의 작동 방식을 이해하지만 가장자리가 " 정면 및 후면 다각형으로 공유 되는지 여부를 결정하기 위해 수행해야하는 작업인지 이해하지 못합니다." 코딩 관점에서 닫힌 다면체의 일부가 아닌 정면 폴리곤의 비공유 에지 ". 모양을보고 머리에 등고선이 어떤 선인지 알 수 있지만 "알려진"코드를 알고리즘으로 변환하는 방법에 대한 실마리는 없습니다.
최신 정보
등고선을 결정하는 데 약간의 진전이있었습니다. 나는 컴퓨터 그래픽에 관한 University of Buffalo 수업 에서이 두 강의 노트를 찾았습니다 .
가장자리를 고려하십시오. 이들은 세 가지 범주로 나뉩니다.
- 두 개의 보이지 않는면을 결합하는 모서리 자체는 보이지 않습니다. 이것은 목록에서 삭제되고 무시됩니다.
- 눈에 보이는 두면을 결합하는 모서리를 '재료 모서리'라고하며 추가 처리가 필요합니다.
- 잠재적으로 보이는면과 보이지 않는면을 결합하는 모서리는 '재료 모서리'의 특수한 경우이며 '형상 모서리'라고도합니다.
위의 두 가지 정보를 사용하여 이것을 코드로 작성할 수있는 것에 더 가까워 질 수는 있지만 아직 갈 길이 멀다.