'Raytracing'에 해당되는 글 6건

  1. 2010/03/28 Hybrid CL Raytracer
  2. 2010/03/24 Hybrid CG 3. Real World & Rendering (1) (4)
  3. 2008/11/19 Hybrid 파장에 영향을 받는 반사 함수 (3)
  4. 2008/04/11 Hybrid Real-time Relativity (4)
  5. 2008/03/16 Hybrid [번역] John Carmack talks ray-tracing, PC gaming

CL Raytracer 는 Common Lisp 으로 구현된 레이트레이서로 다음과 같은 특징을 가진다.

  • 실용성 - 없음
  • 속도 - 무진장 느림
  • 특별히 좋은 특징 - 전혀 없음

즉, 다른 것으로 짠 것에 비해 장점이 하나도 없다는 것이 된다. 그럼에도 불구하고 시작하는 것은 그냥 취미 생활이다. 아마도 주중에는 거의 건들지 못하고, 주말 같은 여가 시간에 잠깐씩 할 것 같다. CL 로 짜는 이유는, CL 공부겸, 취미겸 하는 것인데, 사실 기본적인 구현은 전혀 어렵지는 않은 것이라 그다지 공부가 되지 않을 것 같기도 하다.

뭐, 사실 레이트레이싱이 반사만 제대로 되도 적어도 반짝 반짝하는 정도는 볼 수 있는데, 텍스쳐와 복잡한 장면까지 구현은 사실 좀 막막하다(원래 목표는 KD-Tree 까지 넣는 것이다).

아무튼 그저께 시작해서, 만 하루가 조금 넘었는데, 생각보다 진도가 빨랐다. 지금은 기본적인 구조는 잡혔고, 실제 쉐이딩 연산은 노멀을 사용해서 간단하게 했으며 내일이면 퐁 쉐이딩까지는 가능 할 듯 하다.

Common Lisp Raytracer
2 Spheres

Common Lisp Raytracer
4 Spheres

소스는 공개한 상태에서 진행 될 것이다. 지금은 스프링노트에는 vector.lisp 만 공개 되어 있고, 소스포지에는 정리 안된 코드 그냥 넣었음.

문제는 스프링노트는 소스를 공유하기에 매우 안좋은 환경 같다. 아무래도 소스는 소스포지나 구글코드를 이용하고, 수정 내역만 스프링노트와 병행하면서 기록하는게 나을 것 같다.

  • 소스 코드의 개선 방안 지적 매우 환영
  • 소스 코드를 공유하기 위한 좋은 환경 추천 ㄳ

아, 속도는...... 음.... 느려도 진짜 너무너무 느리다. -_-ㅋ 400x300 해상도에, 씬은 고작 구 2개. 초반에는 1분 안에 끝나겠는걸? 했는데, 점점 느려지더니, 무려 4분 15초가 걸렸다. 모든 결과가 리스트로 쌓이기 때문에 느려지는 듯하다. 차차 속도 개선 방법도 좀 생각해봐야겠다.

PS. 논문 진행이 좀 막혀서 스트레스를 여기에 다 풀어버린듯 -_-ㅋ

PS. 윈도우 환경이라 텍스쳐를 얻거나 하기 쉽지가 않을 것 같다. 텍스쳐를 이미지가 아닌 Procedural Texture 로 처리하도록 구현을 해야겠다.

추가

라이트와 쉐이딩을 추가했다.

CL Raytracer with Phong Shading
Phong Shading 추가

추가 2

쉐도우 레이까지 추가

CL Raytracer with Shadow Ray
쉐도우 추가! Scene 에 global ambient 를 살짝 넣어서 조금 밝아졌다.


크리에이티브 커먼즈 라이센스
Creative Commons License
2010/03/28 02:35 2010/03/28 02:35

트랙백 주소 :: http://www.hybrid.pe.kr/tt/trackback/559

댓글을 달아 주세요

[로그인][오픈아이디란?]