<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; Direct3D</title>
	<atom:link href="http://www.game-create.com/archives/tag/direct3d/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>「 COM とは何か？」を本で学びたい（さわりだけ）</title>
		<link>http://www.game-create.com/archives/3181</link>
		<comments>http://www.game-create.com/archives/3181#comments</comments>
		<pubDate>Fri, 16 Apr 2010 14:21:20 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[書籍]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=3181</guid>
		<description><![CDATA[…というわけでゲームコーディング Vol.1 を買いなおしました。


実は以前、コンピューターの技術で食っていくのをやめようかと思った時期がありまして、持っている本を売りに出してしまったのです。入手できなくならないうち [...]]]></description>
			<content:encoded><![CDATA[<p>…というわけでゲームコーディング Vol.1 を買いなおしました。</p>
<p><span id="more-3181"></span></p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=game-create-22&#038;o=9&#038;p=8&#038;l=as1&#038;m=amazon&#038;f=ifr&#038;md=1X69VDGQCMF7Z30FM082&#038;asins=4777511405" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" class="left"></iframe></p>
<p>実は以前、コンピューターの技術で食っていくのをやめようかと思った時期がありまして、持っている本を売りに出してしまったのです。入手できなくならないうちに買いなおそうと思って Amazon に突入です。</p>
<p>この本は最初に読んだ時と、ある程度わかってから読んだ時で違う面を見せてくれるのでためになります。どれだけ勉強が進んでいるかのバロメーター的な存在。</p>
<p>レビューで、「ソースコードの割合が多い」との意見がありましたが、自分は全部本で確認できた方がありがたい気がします（自分が書く本はページ数の関係で無理そうですが…）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/3181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2010 年、おすすめしたい 3D 技術解説書籍の新書</title>
		<link>http://www.game-create.com/archives/2712</link>
		<comments>http://www.game-create.com/archives/2712#comments</comments>
		<pubDate>Fri, 08 Jan 2010 14:53:17 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[書籍]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2712</guid>
		<description><![CDATA[誰でも最後まで読めるかといわれると難しいかもしれませんが（自分は無理でした）、冒頭部分は基礎からの解説で、実際に使われている 3D 技術の入門書用途に最適と感じました。


テーマがテーマだけに 3D ゲームプログラミン [...]]]></description>
			<content:encoded><![CDATA[<p>誰でも最後まで読めるかといわれると難しいかもしれませんが（自分は無理でした）、冒頭部分は基礎からの解説で、実際に使われている 3D 技術の入門書用途に最適と感じました。</p>
<p><span id="more-2712"></span></p>
<p><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=game-create-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4844327550&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" class="left"></iframe></p>
<p>テーマがテーマだけに 3D ゲームプログラミングとしての基礎（パイプライン模式図の１・２・６・７に相当する部分）は<a href="http://www.game-create.com/archives/788">オライリー本</a>の方が詳しく載っていますが、基礎がわかったら、次は DirectX といった具体的な技術の勉強をしなければなりません。その時に見る本がこれです。</p>
<p>前提となる知識が多い 3D ですが、だいぶ安心感が増してまいりました。こういった書籍のおかげですね。</p>
<p>実は簡素な表現（幼稚な表現というか…）のゲームが好きなので、自分で作るときは陰影すらつけないかもしれませんが、そういった場合でも十分活用できます。次に作るゲームは 2D ですが、 3D のパイプラインを使いますので復習目的で読んでおります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2712/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2D ゲーム作成時、テクスチャがぼけて表示されたらこの辺を確認することにします</title>
		<link>http://www.game-create.com/archives/2628</link>
		<comments>http://www.game-create.com/archives/2628#comments</comments>
		<pubDate>Wed, 23 Dec 2009 09:54:59 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ウェブログ]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[備忘録]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2628</guid>
		<description><![CDATA[DirectX で 2D 画像を描画時、テクスチャを期待通りに画面表示するために注意すべき情報のメモです。困ったら参照してみます。
テクセルからピクセルへの直接的なマッピング (Direct3D 9)
ラスター化ルール  [...]]]></description>
			<content:encoded><![CDATA[<p>DirectX で 2D 画像を描画時、テクスチャを期待通りに画面表示するために注意すべき情報のメモです。困ったら参照してみます。</p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/bb219690%28VS.85%29.aspx" class="external">テクセルからピクセルへの直接的なマッピング (Direct3D 9)</a><br />
<a href="http://msdn.microsoft.com/ja-jp/library/bb147314%28VS.85%29.aspx" class="external">ラスター化ルール (Direct3D 9)</a></p>
<p><span id="more-2628"></span></p>
<p>スクリーン座標を算出する際、各頂点のＸとＹ座標を -0.5 となるようにするときれいに出るということかとでしょうか。ただ、 DirectX 10 ではこの辺りの考慮が不要とのことで、なんとも嬉しいやら残念やら…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2628/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Direct3D パフォーマンスの最適化</title>
		<link>http://www.game-create.com/archives/2612</link>
		<comments>http://www.game-create.com/archives/2612#comments</comments>
		<pubDate>Sun, 20 Dec 2009 10:33:04 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ウェブログ]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[ポリゴン]]></category>
		<category><![CDATA[最適化]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2612</guid>
		<description><![CDATA[「～するためには～します」と書かれてわかったような気になるのですが、「それはどれくらいやっていいの？」という疑問が残ります。新しい技術を学ぶ際はなおさら。もし、 DirectX でこういった疑問に遭遇したら次のページがヒ [...]]]></description>
			<content:encoded><![CDATA[<p>「～するためには～します」と書かれてわかったような気になるのですが、「それはどれくらいやっていいの？」という疑問が残ります。新しい技術を学ぶ際はなおさら。もし、 DirectX でこういった疑問に遭遇したら次のページがヒントになるかもしれません。</p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/bb147263%28VS.85%29.aspx" class="external">パフォーマンスの最適化 (Direct3D 9)</a></p>
<p><span id="more-2612"></span></p>
<p>ただ、こういった情報は計算量が多い 3D のようなゲームを想定してのものかと思われます。１フレーム（ 1/30 くらい）中に描画するポリゴン数が 30 で 256&#215;256 程度のテクスチャ数が５枚くらいだったら、必要になったタイミングでステートやテクスチャを切り替えて差し支えないかと思います（どうやら今のゲームがそれくらいになりそうで…）。</p>
<p>これを確かめるためにはページ中にある「アプリケーションのパフォーマンスを絶えずテストする」が重要だと考えているのですが、解説の途中に結論みたいなお話が出てきてちょっと面白く感じました。</p>
<p>一応、制作中のクラス設計に反映しております。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2612/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Direct3D 時代の矩形転送</title>
		<link>http://www.game-create.com/archives/2610</link>
		<comments>http://www.game-create.com/archives/2610#comments</comments>
		<pubDate>Sat, 19 Dec 2009 09:51:47 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[矩形]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2610</guid>
		<description><![CDATA[ゲーム画面を構成している最小単位はピクセルです。もし、任意の場所に任意の色でピクセルを表示し、それを必要な回数だけ繰り返せば、理論上、どんなゲーム画面でも構築することができるというのがメルマガでお伝えしている内容です。
 [...]]]></description>
			<content:encoded><![CDATA[<p>ゲーム画面を構成している最小単位はピクセルです。もし、任意の場所に任意の色でピクセルを表示し、それを必要な回数だけ繰り返せば、理論上、どんなゲーム画面でも構築することができるというのがメルマガでお伝えしている内容です。</p>
<p>矩形転送というのは、それを一気にやることです。四角形で一括転送するので矩形転送という呼び方なんだと思います。</p>
<p>絵を表示することが目的なのに転送という表現がわかりづらいかもしれませんが、絵のデータを VRAM にコピーすることによって、そのデータを（ディスプレイなどの）ピクセルに反映するわけですので、やってることは転送なんだと思います。</p>
<p><span id="more-2610"></span></p>
<p>DirectX でこれをやる IDirect3DDevice9::UpdateSurface() というメソッドがありまして、これを使うと「絵を画面に表示する」というゲームの基本的な機能を実現することができるのですが、どうやら<a href="http://msdn.microsoft.com/ja-jp/library/bb204857%28VS.85%29.aspx" class="external">アルファブレンディングができない</a>ようです（実際だめでした）。</p>
<p>面倒ですが、テクスチャで絵書いた方が良いかもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2610/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>「こういうテクスチャが作りたいんだけど作れる？」に答えてくれる関数</title>
		<link>http://www.game-create.com/archives/2190</link>
		<comments>http://www.game-create.com/archives/2190#comments</comments>
		<pubDate>Sun, 13 Sep 2009 14:42:28 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[D3DX]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[テクスチャ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2190</guid>
		<description><![CDATA[今ではだいぶ緩くなったそうですが、それでもサイズやフォーマットに制限があり、不安になるのが「このテクスチャ作れるだろうか？」という疑問です。
こういった場合、 D3DXCheckTextureRequirements() [...]]]></description>
			<content:encoded><![CDATA[<p>今ではだいぶ緩くなったそうですが、それでもサイズやフォーマットに制限があり、不安になるのが「このテクスチャ作れるだろうか？」という疑問です。</p>
<p>こういった場合、 <a href="http://msdn.microsoft.com/ja-jp/library/bb172716%28VS.85%29.aspx" class="external">D3DXCheckTextureRequirements() 関数</a>を使うと、実際にテクスチャを作る前にその可否がわかります。</p>
<p><span id="more-2190"></span></p>
<p>この関数は、「そのサイズは作れないけど、もっと大きくてビット深度の深いこのサイズなら作れる」という情報を返してくれる点が大変魅力的です。</p>
<p>そもそも D3DX を使うと、こういった問題を調整し、良い感じのテクスチャを提案して作ってくれるのが利点なのですが、時として「その提案はいらない」という場合があるかもしれません。こういう場合に、「じゃあ自分で調べるから教えろ」の答えになるのがこの関数です。</p>
<p>昔は、「そのサイズ、どうやっても作れないから、絵を縮小して作りました」というのがあったそうです。「だったら別の方法をとるから最初からできないって言えよ」と思う方にはおすすめできます。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2190/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ピクセル情報を直接編集するのにロックが必要な理由</title>
		<link>http://www.game-create.com/archives/2186</link>
		<comments>http://www.game-create.com/archives/2186#comments</comments>
		<pubDate>Sat, 12 Sep 2009 04:04:52 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectDraw]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2186</guid>
		<description><![CDATA[DirectX でテクスチャやサーフェスに読み込んだ画像のピクセル情報をコピーするためにロックという操作が必要になるのですが、これはテクスチャやサーフェスの配置アドレスが変わる可能性があり、それを一時的に止めるためとのこ [...]]]></description>
			<content:encoded><![CDATA[<p>DirectX でテクスチャやサーフェスに読み込んだ画像のピクセル情報をコピーするためにロックという操作が必要になるのですが、これはテクスチャやサーフェスの配置アドレスが変わる可能性があり、それを一時的に止めるためとのことです。</p>
<p><span id="more-2186"></span></p>
<p>ロックと聞くと、「排他する必要があるのか」と思ってしまうかと思います。これは間違いではなく、こっちが手を加えているうちは DirectX が勝手にテクスチャの配置アドレスを変えてしまわないように排他しなければならないのだと思います。</p>
<p>いつも文章が下手で何が言いたいのか伝わらず申し訳ないのですが、要は、一度取得したテクスチャやサーフェスの先頭アドレスを保持しておいて、「次からもここにアクセスすれば絵が描けるだろう」と思ってはいけないということです。</p>
<p>ロックによってピクセル情報を編集するためのアドレスがわかるというのは覚えておくと学習が楽になるかもしれません。もちろん、ドキュメントに書いてあるのですが、最初のうちは見落としてしまいやすいかと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2186/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自由なサイズのテクスチャを作る（ただし、描画できない！？）</title>
		<link>http://www.game-create.com/archives/2139</link>
		<comments>http://www.game-create.com/archives/2139#comments</comments>
		<pubDate>Tue, 01 Sep 2009 17:02:28 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[備忘録]]></category>
		<category><![CDATA[勉強]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2139</guid>
		<description><![CDATA[全然試してないのでメモ程度ですが、頂点をソフトウェアで処理する方式にすると、自由なサイズのテクスチャが作れるみたいです。

前に、テクスチャを扱う際の注意点を載せておいたのですが、画像ファイルなんかの読み込み先くらい自由 [...]]]></description>
			<content:encoded><![CDATA[<p>全然試してないのでメモ程度ですが、頂点をソフトウェアで処理する方式にすると、自由なサイズのテクスチャが作れるみたいです。</p>
<p><span id="more-2139"></span></p>
<p>前に、<a href="http://www.game-create.com/archives/52">テクスチャを扱う際の注意点</a>を載せておいたのですが、画像ファイルなんかの読み込み先くらい自由にさせて欲しいと思っておりました。ただ、このテクスチャは描画することができないそうな…。ソフトウェアで処理するわけですので、描画コストがかかるのは覚悟の上でってことになりますが、手軽に 2D のゲームが作れたら嬉しかったかも。</p>
<p>ちなみに頂点をソフトウェアで処理するには D3DUSAGE_SOFTWAREPROCESSING 、自由なサイズのテクスチャを作りたいときは D3DPOOL_SCRATCH を指定して IDirect3DDevice9::CreateTexture() を呼び出します。なるほど、 SCRATCH か、そういう用途なのか。</p>
<p>この後、本物のテクスチャにコピーするなら普通のメモリに画像を読み込んでも同じですな。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>スプライトの要件ってあるんですね</title>
		<link>http://www.game-create.com/archives/1732</link>
		<comments>http://www.game-create.com/archives/1732#comments</comments>
		<pubDate>Sun, 24 May 2009 13:50:11 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[スプライト]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1732</guid>
		<description><![CDATA[今、作っているゲームのクラス階層の中に Sprite というクラスを考えたのですが、スプライトにも要件があるようです。

ひとつ、今日知ったのが、「スプライトは座標を変化させるだけで移動できること」という要件です。たとえ [...]]]></description>
			<content:encoded><![CDATA[<p>今、作っているゲームのクラス階層の中に Sprite というクラスを考えたのですが、スプライトにも要件があるようです。</p>
<p><span id="more-1732"></span></p>
<p>ひとつ、今日知ったのが、「スプライトは座標を変化させるだけで移動できること」という要件です。たとえば、座様を変化させたときに、残像が残ったり、背景がくりぬかれてはいけないということのようです。</p>
<p>スプライトの実装には Direct3D にて板ポリゴンを使う予定ですので、今の設計だとうまくいきそうですが、スプライト愛好家の方の考えがちょっとわかったような気がしました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1732/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>スーパーペーパーマリオはシリーズ化して欲しい！！！</title>
		<link>http://www.game-create.com/archives/1710</link>
		<comments>http://www.game-create.com/archives/1710#comments</comments>
		<pubDate>Mon, 18 May 2009 12:50:29 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[COM]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectDraw]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1710</guid>
		<description><![CDATA[あれ、ゲームプログラミングを教えるのにすごく便利なんです！

最近よく、「一見、 2D のゲームでも 3D の技術で描いてるときがある」と説明するのですが、これのもっともわかりやすい実例がスーパーペーパーマリオです。実際 [...]]]></description>
			<content:encoded><![CDATA[<p>あれ、ゲームプログラミングを教えるのにすごく便利なんです！</p>
<p><span id="more-1710"></span></p>
<p>最近よく、「一見、 2D のゲームでも 3D の技術で描いてるときがある」と説明するのですが、これのもっともわかりやすい実例がスーパーペーパーマリオです。実際に遊んだことある人はよくわかると思います。あのゲームはＡボタンで 2D と 3D が切り替わりますが、あの 2D は疑似で、本当は全て 3D で描いているのです。</p>
<p>3D は必要性がないと興味すらわかない分野かと思います。 Windows の場合、特に DirectX8 からの 3D 化が激しいですよね。最初から 2D のゲームしか作る予定のない人が「 2D を切り捨ててまで 3D に移行する必要あるか？」と疑問に感じられても無理のないことだと思います（ただ、 DirectDraw も COM なので切り捨てられたわけではないようです）。しかしながら、 3D で 2D を作ると楽なのも事実です。少なくとも DirectX ならクリッピングは不要、透過転送も不要、拡大縮小回転も用意されているので自作のコードは不要。…魅力的です。</p>
<p>これからゲームプログラミングを学ばれる方が好きな作り方を選択できるよう、実例はたくさん欲しいところです。もちろん、自分で作れれば一番良いのですが…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1710/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

