스케치 드로잉이나 만화처럼 선으로 3D 세계를 그리는 방법


9

Dilbert와 같은 스트립 만화에서 볼 수 있듯이 음영이없고 모든 선의 무게가 같은 잉크 그리기를 고려하십시오. 이것은 활성 3 차원 세계를 나타내지 만 개체에는 텍스처가 없지만 테셀 레이트 된 삼각형도 표시되지 않습니다.

예를 들어 달의 표면을 그리는 것이 좋습니다. 당신이 그리는 선은 언덕의 상단 가장자리를 따라, 표면의 일반적인 수준을 만나는 지점까지 내려갑니다. 그 뒤에는 더 큰 언덕, 먼 거리, 수평선에서 볼 수있는 것 뒤에 대해서도 똑같이 할 것입니다. 분화구의 경우 바깥 쪽 가장자리에 가까운 원을 그리거나 아래쪽 가장자리에 대한 원을 부분적으로 마스크 할 수 있습니다. 바위는 가장자리 주위와 눈에 보이는 주요 가장자리를 따라 선이 생깁니다. 우주 비행사들은 바깥 쪽 가장자리와 우주복의 주요 특징을 따라 선을 긋습니다.

저는 숙련 된 프로그래머이지만 3D 프로그래밍을 처음 사용합니다. 나는 이런 모양의 게임을 생각할 수 없다. 그리고 어떻게할까요? 중요한 가장자리를 찾아서 그리는 두 가지 문제가 있습니다. 일반 3D 엔진이 아니라 라인을 기준으로 매트릭스에서 코딩 된 "엔진"이 필요합니까?


인간은 2D 화면에서 3D를 잘 인식하지 못하기 때문에 장면의 깊이를 이해하는 데 중요한 부분 인 음영을 제거하면 3D에 의존하는 게임에서 제대로 작동하지 않을 수 있습니다 게임 플레이
Jeff

당신이 묘사하는 스타일에 맞는 게임이 하나 있습니다. Okami는 몇 년 전 PS2를 위해 출시되었습니다. en.wikipedia.org/wiki/%C5%8Ckami
Eran Galperin

1
좋아, 나는 이것을 스스로 할 생각을하고있다. 그래도 선이 아닌 일종의 셀 음영 을 사용하고 싶을 것 입니다.
mpnk121

답변:


11

근본적으로, 당신이 말하는 것은 가장자리 찾기이며, 다양한 방법으로 그것을하는 많은 게임이 있습니다.

아마도 첫 번째는 Jet Set Radio (서쪽에서 "Jet Grind Radio"로 출시됨) 일 것입니다. 그 후 한 달 또는 두 달 만에 비슷한 렌더링 기술을 개발 한 게임 인 Looney Tunes : Space Race 가 출시되었습니다 . (우주 경주에서 우리는 균일 한 선 두께를 유지하기 위해 최선을 다했지만 Jet Set Radio는 고르지 않은 선 너비를 시각적 스타일의 큰 부분으로 만들었습니다).

이 두 게임은 같은 방식으로 작동했습니다. 윤곽을 그릴 각 객체에 대해 객체를 두 번 그립니다. 먼저, 정점 푸시를 적용하여 (즉, 각 정점을 법선 벡터를 따라 일정 거리만큼 이동), '선'을 표시하려는 색상에 상관없이 백 페이싱을 뒤집어 렌더링합니다. 그런 다음 정점 푸시와 일반적인 백 페이싱없이 다시 그립니다. 이 작업 쌍을 사용하면 개체 주위에 색이 칠해진 실루엣이 생겨나 고 처음 두 게임이 모두 사용됩니다. 우주 경주에서는 물체가 카메라에서 얼마나 떨어져 있는지에 따라 정점을 다양한 거리로 밀어서 일정한 선 너비의 환상을 유지했습니다. Jet Set Radio에서는 그렇지 않았습니다 (카메라에서 물체가 가까워 지거나 멀어짐에 따라 선이 커지거나 작아짐)

NVidia와 ATI는이 효과를 달성하기위한 다른 방법에 대한 몇 가지 데모를 가지고 있습니다. 대부분 픽셀 쉐이더를 중심으로 각 픽셀마다 카메라 대 픽셀 벡터에 수직 인 법선을 찾고 있지만, 모두 고해상도 메시가 필요하고 일관성이 없습니다 실제로 선 너비. 어떤 게임이 실제로 이런 유형의 접근 방식을 사용하는지 모르겠습니다. 나는이 회사의 샘플처럼 보이는 것을 보지 못했다고 생각합니다.

또한 내가 알고있는 유일한 게임 인 Dragon 's Lair 3D 에 대해서도 설명 하겠습니다. 카메라에서 다각형의 내적 및 모델의 각 다각형에 대한 다각형의 법선을 취하여 각 다각형이 카메라를 향하고 있는지 또는 카메라를 향하고 있는지 확인한 다음 연결된 다각형의 모든 쌍을 확인하는 단계; 다각형 쌍이 하나의 모서리를 공유하고 하나의 다각형이 카메라를 향하고 하나의 다각형이 그렇지 않은 경우, 화면 공간에서 해당 모서리를 따라 얇고 일정한 너비의 선을 그립니다. (Dreacast for Space Race에서이 작업을 충분히 빨리 수행 할 수 없었거나 그것을 사용했을 것입니다. 오늘날 현대 컴퓨터에서는 이것이 효과를 거두려고하더라도 완전히이 방식을 사용하려고합니다.

Dragon 's Lair 3D는 내가 알고있는 유일한 게임이기도합니다. 실제로 가장자리를 찾을 수있는 실루엣 가장자리가없는 경우에도 실제로 다른 색상 영역이나 정점-정규 불연속 영역에 선을 그립니다. 나는 그들이 예술가들이 다각형 선을 항상 선을 받도록 지명 할 수있게 해주는 커스텀 툴을 가지고 있다고 생각한다.

다른 사람들이 언급 한 Okami 는 Jet Set Radio 및 Space Race와 비슷한 이중 렌더링 버텍스 푸시 접근법을 사용하는 것으로 보이지만 브러시 아트 스타일을 사용하여 작성된 텍스처를 사용합니다. (예를 들어, 거리의 언덕은 브러시 스트로크로 표준 쿼드로 그려진 텍스처에 그려집니다). 오카 미는 사랑 스럽지만, 당신이 요구하는 기술에 실제로 영향을 미친다고 생각하지 않습니다. 확실히, 그것은 그 효과를 위해 오래된 접근법을 사용하고 있습니다.

이제는 채움없이 세계를 선으로 만 그릴 수 있습니다. 쉬운 일입니다. 조명없이, 그리고 배경색과 일치하는 하나의 일정한 색으로 모든 다각형을 그립니다. 이러한 접근 방식은 게임 엔진을 전혀 변경하지 않고 해당 접근 방식을 사용하여 작동해야합니다. 실제로 "배경과 동일한 색상"다각형을 그리는 것이 중요합니다. 배경 가장자리가 전경 개체를 통해 표시되지 않도록하므로 매우 혼란 스러울 수 있습니다.


이론과 흥미로운 예를 포함하여 +1 훌륭한 답변
Maik Semder

멋진 답변, 시간 내 주셔서 감사합니다.
cheerless bog

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.