POV-ray를 다운로드하여이 반짝이는 금속 구를 90 년대 스타일로 렌더링했습니다.
귀하의 작업은 동일한 작업을 수행하는 것이지만 가능한 한 적은 바이트로 렌더링 엔진을 직접 구현하여 수행하는 것입니다. 이 정확한 이미지를 복제 할 필요는 없습니다. 아래의 기준을 충족하는 한 무한 바둑판 위의 반사 구 이미지는 그대로 적용됩니다.
규칙 :
이미지는 무한 바둑판 위에 떠오르는 반사 구를 나타내야합니다. 바둑판 자체와 구에서의 반사가 이미지에 표시되어야합니다. 이것이 우리가보고있는 것임을 시각적으로 분명해야합니다. 이 외에도 지오메트리, 색상, 재료 속성 등의 세부 사항은 사용자에게 달려 있습니다.
장면에 약간의 조명이 있어야합니다. 구의 일부는 다른 부분보다 어두워 야하며 시각적으로 빛의 출처를 대략적으로 알 수 있어야합니다. 그 외에도 조명 모델의 세부 사항은 사용자에게 달려 있습니다. 원한다면 간단한 조명 모델을 만들 수 있습니다. 구는 그림자를 드리울 필요가 없습니다.
광원에 의해 조명 된 바둑판 위의 반짝이는 구처럼 보이는 위의 두 가지 기준은 투표를 사용하여 커뮤니티에 의해 판단됩니다. 따라서 답을 얻으려면 정답이 양수 여야합니다.
출력은 300x300 픽셀 이상이어야합니다. 화면에 표시하거나 파일에 쓸 수 있습니다.
코드는 합리적인 최신 컴퓨터에서 1 시간 이내에 실행되어야합니다. (이것은 관대합니다. POV-ray는 위의 장면을 실제로 즉각적으로 렌더링합니다.)
내장 된 레이트 레이싱 기능을 사용할 수 없습니다. 렌더러를 직접 구현해야합니다.
이것은 code-golf 이므로 가장 짧은 코드 (바이트)를 가진 양의 스코어링 항목이 이깁니다. 그러나 코드를 짧게 유지하면서 예쁜 그림을 그려서 가장 많은 표를 얻는 메타 게임을 즐길 수도 있습니다.
이 문제는 어리석게 어려워 보일 수 있지만 지오메트리가 고정되어 있기 때문에 광선 추적으로 이러한 장면을 렌더링하는 알고리즘은 매우 간단합니다. 실제로 출력 이미지의 각 픽셀을 반복하고 수학 표현식을 평가하여 색상이 어떤지 확인 해야하는 경우 일뿐이므로 좋은 답변을 얻는 것이 낙관적입니다.