<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Distributed_ray_tracing</id>
	<title>Distributed ray tracing - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Distributed_ray_tracing"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Distributed_ray_tracing&amp;action=history"/>
	<updated>2026-05-14T20:46:29Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Distributed_ray_tracing&amp;diff=1080&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류:레이 트레이싱  == 개요 == 기존 Whitted Ray Tracing의 단점을 극복하고자, 여러개의 랜덤한 광선을 사용하여 렌더링하는 기법이다. Cook 이 1984년에 발표하였다.  == 안티 얼리어싱== 섬네일 많은 방법이 있지만, 그중 좋은 방식은 격자를 나누고 랜덤한 부분을 선택하는 방식이다. 만약 격자를 나누지 않으면 물체가 움직이기 시작하면...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Distributed_ray_tracing&amp;diff=1080&amp;oldid=prev"/>
		<updated>2023-04-05T10:29:06Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EB%A0%88%EC%9D%B4_%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8B%B1&quot; title=&quot;분류:레이 트레이싱&quot;&gt;분류:레이 트레이싱&lt;/a&gt;  == 개요 == 기존 &lt;a href=&quot;/noriwiki/index.php?title=Whitted_Ray_Tracing&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Whitted Ray Tracing (없는 문서)&quot;&gt;Whitted Ray Tracing&lt;/a&gt;의 단점을 극복하고자, 여러개의 랜덤한 광선을 사용하여 렌더링하는 기법이다. Cook 이 1984년에 발표하였다.  == 안티 얼리어싱== &lt;a href=&quot;/noriwiki/index.php?title=%ED%8C%8C%EC%9D%BC:Antialiasing.png&quot; title=&quot;파일:Antialiasing.png&quot;&gt;100px|섬네일&lt;/a&gt; 많은 방법이 있지만, 그중 좋은 방식은 격자를 나누고 랜덤한 부분을 선택하는 방식이다. 만약 격자를 나누지 않으면 물체가 움직이기 시작하면...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류:레이 트레이싱]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
기존 [[Whitted Ray Tracing]]의 단점을 극복하고자, 여러개의 랜덤한 광선을 사용하여 렌더링하는 기법이다. Cook 이 1984년에 발표하였다.&lt;br /&gt;
&lt;br /&gt;
== 안티 얼리어싱==&lt;br /&gt;
[[파일:Antialiasing.png|100px|섬네일]]&lt;br /&gt;
많은 방법이 있지만, 그중 좋은 방식은 격자를 나누고 랜덤한 부분을 선택하는 방식이다. 만약 격자를 나누지 않으면 물체가 움직이기 시작하면 지터링이 너무 심하게 나오게 된다. 이 방식은 격자를 안나누는 방식에 비해 지터링이 훨씬 괜찮게 나온다. 또한 랜덤한 변수를 선택하는 이유는 랜덤할 경우 규칙적인 패턴이 없어지면서 훨씬 자연스럽게 나오기 때문이다. &lt;br /&gt;
:&amp;lt;math&amp;gt;c(x,y)=c(x,y)+trace(x+\frac{p+\epsilon_1}{n},y+\frac{p+\epsilon_2}{n})\\c(x,y)=c(x,y)/n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Soft Shadows ==&lt;br /&gt;
그냥 shadow ray를 사용하면 그림자가 너무 정직하게 생겨버린다. 부드러운 그림자 효과를 내기 위해서 area light 에서 랜덤한 부분과 shadow ray 검사를 한뒤 평균을 내는 방식으로 soft shadow를 구현한다. &lt;br /&gt;
:&amp;lt;math&amp;gt;l_{pos} = c+\epsilon_1 a + \epsilon_2 b &amp;lt;/math&amp;gt;&lt;br /&gt;
==Depth of field (DOF)==&lt;br /&gt;
[[파일:DOF.png|200px|섬네일]]&lt;br /&gt;
카메라의 렌즈가 점이라면 깊이감이 들어가지 않는다. 그러나 카메라의 렌즈가 점이 아니라면 초점이 맞춰지는 대상과 깊이감이 들어가게 된다. 카메라의 렌즈에서 한점을 랜덤하게 고른뒤 광선을 발사한다. (이때 안티얼리어싱때문에 픽셀에서도 랜덤한 한 점이 잡히게 된다.) 여러개의 광선이 발사되 평균되면서 초점이 맞지 않는 대상은 DOF효과가 구현되게 된다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===pseudo Code===&lt;br /&gt;
 glm::vec3 random = parameters.lensRadius * randomP; //렌즈의 크기만큼 랜덤한 지점을 고른다.&lt;br /&gt;
 glm::vec3 originOffset = u * random.x + v * random.y; //빛을 발사하는 원점에 더할 오프셋을 카메라의 u v 좌표를 참고하여 구한다. &lt;br /&gt;
 return ne::Ray(origin + originOffset, bottomLeft + s * horizontal + t * vertical - origin - originOffset); &lt;br /&gt;
 //구해진 오프셋을 더한 원점과 방향은 픽셀위의 한점 (여기선 s,t) 이 되도록 빛을 발사한다.&lt;br /&gt;
&lt;br /&gt;
==Motion Blur==&lt;br /&gt;
물체가 움직이면서 생기는 잔상을 처리하기 위해서 사용된다. 시간을 평균낸다음 시간 간격사이에서 램덤하게 물체의 위치를 잡고 레이트레이싱을 한다. 나온 결과를 평균내면 Motion Blur 가 구현되게 된다. &lt;br /&gt;
#Set time interval&amp;lt;math&amp;gt;[T_0,T_1]&amp;lt;/math&amp;gt;&lt;br /&gt;
#Randomly choose a time t&lt;br /&gt;
#Ray tracing with object transform with t &lt;br /&gt;
#Averaging the result&lt;br /&gt;
이건 단순한 케이스이고 만약 복잡한 케이스일 경우는 구간을 나누어서 표현하게 된다. 등속도 운동이 아니면 속도함수를 구한뒤, 그 커브를 이용해서 non linear interpolation 하면 된다.&lt;br /&gt;
&lt;br /&gt;
==Glossy reflections==&lt;br /&gt;
모든 물체가 [[Lambertian]]이나 거울처럼 이상적인 반사분포([[BRDF]])를 가지는 것은 아니다. 흔히 보이는 대부분의 물체는 부분적인 반사분포를 가진다. 그러한 물체는 반사범위에 있는 점을 랜덤하게 결정한뒤 레이트레이싱한후 평균내면 원하는 결과가 나오게 된다.&lt;br /&gt;
===Pseudo Code===&lt;br /&gt;
 r_out = ne::Ray(hit.p, reflected + roughness_*randomSphere()); &lt;br /&gt;
 레이를 만들면서 반사된 지점에 roughness를 곱한 랜덤 스피어를 더해서 랜덤함을 부여한 반사를 만든다.&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>