<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=2dInDirect3d%2FChapter3</id>
	<title>2dInDirect3d/Chapter3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=2dInDirect3d%2FChapter3"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter3&amp;action=history"/>
	<updated>2026-05-14T20:25:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter3&amp;diff=83166&amp;oldid=prev</id>
		<title>Maintenance script: Repair MoniWiki formatting after migration</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter3&amp;diff=83166&amp;oldid=prev"/>
		<updated>2026-03-26T14:01:35Z</updated>

		<summary type="html">&lt;p&gt;Repair MoniWiki formatting after migration&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:01, 26 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   === RHW ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   === RHW ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  RHW는 &amp;#039;&amp;#039;&amp;#039;동치좌표 W의 역수&amp;#039;&amp;#039;&amp;#039; 입니다. 그러면 동치 좌표란 무엇이냐. 이것은 좌표계의 또 다른 점입니다. 이게 있음으로 우리는 4차원 좌표계가 됩니다.(??)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  RHW는 &amp;#039;&amp;#039;&amp;#039;동치좌표 W의 역수&amp;#039;&amp;#039;&amp;#039; 입니다. 그러면 동치 좌표란 무엇이냐. 이것은 좌표계의 또 다른 점입니다. 이게 있음으로 우리는 4차원 좌표계가 됩니다.(??)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;어쨌든 W좌표는 우리가 일하기 편하게 해줍니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;어쨌든 W좌표는 우리가 일하기 편하게 해줍니다.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SeeAlso : [http://member.hitel.net/~kaswan/feature/3dengine/rhw.htm]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SeeAlso : [http://member.hitel.net/~kaswan/feature/3dengine/rhw.htm]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l86&quot;&gt;Line 86:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 86:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[2dInDirect3d]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[2dInDirect3d]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter3&amp;diff=26752&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=2dInDirect3d/Chapter3&amp;diff=26752&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Vertex Formats =&lt;br /&gt;
 3장의 학습목표!!&lt;br /&gt;
* Direct3D의 두가지 목적을 이해한다.&lt;br /&gt;
* 점을 표현하기 위한 유연한 vertex형태를 이해한다.&lt;br /&gt;
* Transformed 버텍스와 Untransformed 버텍스의 차이를 안다.&lt;br /&gt;
* 버텍스 버퍼가 무엇인지 알고 사용법을 안다.&lt;br /&gt;
* 인덱스 버퍼가 무엇인지 알고 사용법을 안다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 == Direct3D의 목적 ==&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
 만약 D3D를 쓰는 사람에게 &amp;quot;당신은 왜 D3D를 씁니까?&amp;quot; 라고 물으면, 일반적으로 이런 대답이 나온다. Z-Buffer라던지, 모델, 메시, 버텍스 셰이더와 픽셸세이더, 텍스쳐, 그리고 알파 에 대한 이야기를 한다. 이것은 많은 일을 하는 것처럼 보인다. 몇몇을 제외하면 이런 것들은 다음의 커다란 두 목적의 부가적인 것이다. 그 두가지란 Geometry Transformation과 Polygon Rendering이다. 간단히 말해서 D3D의 교묘한 점 처리와 삼각형 그리기라는 것이다. 물론 저것만으로 모두 설명할 수는 없지만, 저 간단한 것을 마음속에 품는다면 혼란스러운 일은 줄어들 것이다.&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 == Vertex데이터의 표현 ==&lt;br /&gt;
 버텍스 데이터를 표현하는 방법은 많이 있고, D3D개발자들은 그들에게 편한 방식으로 접근했다. 어떤 버텍스는 다른 것보다 정보가 더 필요했고 다른 것들은 좀 더 달랐다. &lt;br /&gt;
&lt;br /&gt;
 버텍스를 표현 하는 방법을 &amp;#039;&amp;#039;flexible vertex format&amp;#039;&amp;#039; 줄여서 FVF라고 한다. 버텍스에 필요한 정보는 다음과 같다.&lt;br /&gt;
 position : 점의 위치, 가장 중요한 정보이다.&lt;br /&gt;
 RHW : Reciprocal of the homogenous W coordinate&lt;br /&gt;
 Blending weights : 블랜딩 매트릭스&lt;br /&gt;
 Vertex normal&lt;br /&gt;
 Vertex point size : 버텍스의 크기 (포인트스프라이트에서 사용한다.)&lt;br /&gt;
 Diffuse color &lt;br /&gt;
 Specular color&lt;br /&gt;
 Texture coordinates&lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
  === Position ===&lt;br /&gt;
 점이 어디있나를 나타내는 정보이다.&lt;br /&gt;
 #define CUSTOM_VERTEX_FVF D3DFVF_XYZ&lt;br /&gt;
 struct CustomVertex&lt;br /&gt;
 {&lt;br /&gt;
 	float x;&lt;br /&gt;
 	float y;&lt;br /&gt;
 	float z;&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 CUSTOM_VERTEX는 내 버텍스 정보가 어떤 정보들을 담고있나를 지정하는 플래그이고, CustomVertex구조체는 실제 정보를 담는 나만의 구조체이다.&lt;br /&gt;
  === RHW ===&lt;br /&gt;
 RHW는 &amp;#039;&amp;#039;&amp;#039;동치좌표 W의 역수&amp;#039;&amp;#039;&amp;#039; 입니다. 그러면 동치 좌표란 무엇이냐. 이것은 좌표계의 또 다른 점입니다. 이게 있음으로 우리는 4차원 좌표계가 됩니다.(??)&lt;br /&gt;
어쨌든 W좌표는 우리가 일하기 편하게 해줍니다.&lt;br /&gt;
 SeeAlso : [http://member.hitel.net/~kaswan/feature/3dengine/rhw.htm]&lt;br /&gt;
 #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW&lt;br /&gt;
 struct CustomVertex&lt;br /&gt;
 {&lt;br /&gt;
 	float x, y, z;&lt;br /&gt;
 	float rhw;&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
  === Vercto Normal ===&lt;br /&gt;
 이것은 3차원 좌표로서, 기본적인 x,y,z에 수직인 곳의 좌표를 정한다. 이것은 나중에 빛에 관련된 계산을 할 때에 사용된다.&lt;br /&gt;
 #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_NORMAL&lt;br /&gt;
 struct CustomVertex&lt;br /&gt;
 {&lt;br /&gt;
 	float x, y, z;&lt;br /&gt;
 	float nx, ny, nz;&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
 이 노말 좌표를 사용하면 RHW는 사용할 수 없다. (둘은 함께 사용할 수 없다는 뜻입니다.)&lt;br /&gt;
  === Diffuse Color ===&lt;br /&gt;
 노말 좌표 뒤에 오는 정보로는 diffuse color가 있다. Diffuse color란 것은 빛이 그 점을 밝혔을 때 그 점에서 발산하는 컬러를 말한다. 3D에서의 빛은 실제 생활과는 달리 거의 아무일도 하지 않는 다는 것을 기억하다.&lt;br /&gt;
 &lt;br /&gt;
 Diffuse Color의 형태는 D3DCOLOR(사실은 DWORD형이다.)형을 사용한다.&lt;br /&gt;
 #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW | D3DFVF_DIFFUSE&lt;br /&gt;
 struct CustomVertex&lt;br /&gt;
 {&lt;br /&gt;
 	float x, y, z;&lt;br /&gt;
 	float rhw;&lt;br /&gt;
 	D3DCOLOR diffuse;&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
  === Specular Color ===&lt;br /&gt;
 디퓨즈 컬러 다음에 오는 정보이다. 이것도 D3DCOLOR값이다. 이것은 한 점의 &amp;quot;Shininess&amp;quot;를 알려준다.&lt;br /&gt;
 #define CUSTOM_VERTEX_FVF D3DFVF_XYZ | D3DFVF_RHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR&lt;br /&gt;
 struct CustomVertex&lt;br /&gt;
 {&lt;br /&gt;
 	float x, y, z;&lt;br /&gt;
 	float rhw;&lt;br /&gt;
 	D3DCOLOR diffuse;&lt;br /&gt;
 	D3DCOLOR specular;&lt;br /&gt;
 };&lt;br /&gt;
  &lt;br /&gt;
----&lt;br /&gt;
[[2dInDirect3d]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>