POV-Ray

POV-Ray는 다양한 컴퓨터 플랫폼에서 사용할 수 있는 레이 트레이싱 프로그램이다. 원래는 David Kirk Buck와 Aaron A. Collins가 작성한 DKBTrace 기반이었다. 만든이 Alexander Enzmann가 공헌하였던 초기 Polyray 레이트레이서로부터의 영향도 있었다. POV-Ray는 소스 코드가 공개되어 있는 자유 소프트웨어이다.

기능 

POV-Ray는 만들어진 이후로 지금에 이르러 완성도가 매우 높다. 최근에 나온 소프트웨어 버전은 다음의 기능을 포함하고 있다:
 매크로와 루프를 지원하는 튜링 완전 장면 서술 언어 (SDL)
 미리 준비된 장면, 텍스처, 객체
 수많은 기하학 원시 데이터와 CSG(구조적 고체 기하학) 지원
 여러 종류의 광원
 안개, 매체(연기, 구름)와 같은 대기 효과
 포톤 매핑을 사용한 반사, 굴절, 화선
 라디오시티 (radiosity)
 주름, 울퉁불퉁한 모습, 물결과 같은 표면 패턴 (절차적 텍스처와 범프 매핑 사용)
 TGA, PNG, JPEG (입력만)로 텍스처, 랜더 출력 지원
 확장된 사용자 문서

SDL로 작성한 프로그래밍 예 

아래의 예는 POV-Ray가 사용하는 SDL의 예제로 랜더링할 장면을 설명한다. 카메라, 광원, 단순한 상자 모양, 변형 효과, 회전 등의 사용을 증명하고 있다.

 #version 3.6;
 #include "colors.inc"
 global_settings { assumed_gamma 1.0 }

 background   { color rgb <0.25, 0.25, 0.25> }

 camera       { location  <0.0, 0.5, -4.0>
                direction 1.5*z
                right     x*image_width/image_height
                look_at   <0.0, 0.0, 0.0> }

 light_source { <0, 0, 0>
                color rgb <1, 1, 1>
                translate <-5, 5, -5> }

 light_source { <0, 0, 0>
                color rgb <0.25, 0.25, 0.25>
                translate <6, -6, -6> }

 box          { <-0.5, -0.5, -0.5>
                <0.5, 0.5, 0.5>
                texture { pigment { color Red }
                          finish  { specular 0.6 }
                          normal  { agate 0.25 scale 1/2 } }
                rotate <45,46,47> }

아래의 예는 변수 선언, 할당, 비교, while 루프를 사용한 스크립트 부분이다.:

 #declare the_angle = 0;

 #while (the_angle <= 360)
 	box {   <-0.5, -0.5, -0.5>
 		<0.5, 0.5, 0.5>
                texture { pigment { color Red }
                          finish  { specular 0.6 }
                          normal  { agate 0.25 scale 1/2 } }
 		rotate the_angle }
 	#declare the_angle = the_angle + 45;
 #end

각주

외부 링크 

 
 

3차원 그래픽 소프트웨어
자유 소프트웨어
C++ 소프트웨어
C++로 작성된 자유 소프트웨어
GNU AGPL 라이선스 소프트웨어
자유 그래픽 스포트웨어