サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.t-pot.com
C) エフェクトファイルリファレンス エフェクトファイルとして書くHLSLの言語仕様を見てみましょう。HLSLは、現状ではまだ簡単な言語ですが、それでも覚えなくてはならないことは山のようにあります。一度に全てを覚えることなど、とてもできないので、気になったとき(コンパイラにエラーだと言われた時ともいいますが)に、確認する程度の気楽な感じで眺めてください。 最初に気になるのが、どのような変数が使えるかということです。HLSLでは、ベクトルや行列が基本的な型に使えるといった他ではあまり見ない特徴をもっていたりします。また、セマンティクスと呼ばれる、頂点シェーダとピクセルシェーダの間等を橋渡しするためのキーワードを持っていたりします。といっても、それ以外はほとんどC言語なので、サンプルについているエフェクトファイル等のサンプルを見て、書き方に慣れていけば、そんなに不自然は感じないと思います
■はじめに 2011年10月8日に「TDD(テスト駆動開発) Boot Camp 東京 for C++」向けを開催させていただくこととなりました。 この勉強会を開かせていただいたのは、私が参加させていただいた、「TDD Boot Camp 東京 1.6」が大変に面白く、ゲームの開発でももっと広く実践してほしいという気持ちがあったからです。 もちろん、TDD(テスト駆動開発)は、専用のデバイスや画面表示を行うゲーム開発では難しいところも多いのですが、 モデルの部分には十分に適応でき、行っていれば出ないバグもあったなぁと、感じます。 ということで、今回の勉強会でも、それ以外でも、一度はTDDを体験していただいて、確実性を増す開発スタイルについて考えてみるきっかけとなればと思います。 さて、私がTDDBCを受けた前日に「SCM Boot Camp in Tokyo」という勉強会にも参加しました。
■はじめに 佐々木さんが行っているGamePM勉強会の、2010年の3月20日に開かれた第7回勉強会にLT(Lightning Talk:短い時間での講演)で登壇してきました。 毎回、お話を聞いてばかりなので、たまにはアウトプットをしようと思い立ちました。 ■スライド 話した内容的は、昨年の12月にひそかに(?)取っていた「認定スクラムマスター」についてです。 といっても、概要にもなっていないさらっとしたものです。 いろいろな都合上、スライドを加工させていただきました。 ■さいごに 実際のLTでは、時間をオーバーしてしまいました。難しいですね。
■はじめに Graphics Hardware 2004 で、NVIDIA の Li-Yi Wei が、Tile-Based Texture Mapping on Graphics Hardware というタイトルで、Wang tile の紹介をしています。まえまえから興味はあったのですが、ほったらかしてあったので実装してみました。 で、いつものようにプログラムです。 wang.zip (DirectX 9.0c [Vertex shader 1_1, Pixel shader 2_0]) スライダーを動かすと、マップの細かさが変わります。 ソースには、いつものように適当にファイルが入っています。 大事なファイルは次のものです。 ■なにやってるの? そもそもワンの絨毯とは何かということですが、基本的には1961年からある純粋な数学の問題[Wang 1961]らしいです。適当にググって見
あと、実行ファイル、リソースファイル、プロジェクトファイルが入っています。 ■何やってるの? 3角形とレイの交差判定ですが、2段階の手順を踏みます。 第1段階では、レイと3角形の作る平面との交点を求めます。 第2段階では、交点が3角形の中に入っているかどうかを調べます。 レイと3角形の作る平面との交点pの求め方ですが、 レイの方程式 p = x + t v と、3角形の作る平面の方程式 (p - p0)・n = 0 を連立して、求めます。ここで、xはレイの出る点、vはレイの方向、 p0は3角形の1点、nは3角形の法線ベクトルです。 連立した結果、レイの進んだ距離tは、 (x - p0)・n t = ------------ v・n になります。 ここで、v・n=0 の時は、レイと3角形の面に平行に進んでいるので、交わりません。 また、t<0の時は、視線の後ろ側に交点があるので、やは
です。 ここで出てくる BOID という単語は、(鳥)バードとアンドロイドを組み合わせた造語で、鳥だけでなく、魚や馬の群れにも この単語は使われています。 今回のプログラムでは、魚の一匹一匹を表現するクラスを CBoid クラスとします。 ■引き離し(Separation) われわれは、歩くときや会話するときなど、自然といい感じの距離を取って生活します。 これが『引き離し』です。 プログラムでは、次のように実装します。 関数の返り値が、『引き離し』による速度変化量(力)になります。 // ---------------------------------------------------------------------------- // Rule #1 (Separation) 仲間との距離をある大きさに維持することによって、ぶつかるのを避ける。 //-----------
■はじめに mdiapp さんの「人生やりなおし機が欲しい」 で、 「バイラテラルフィルターって何?」ってのがあって、見てみると速攻で実装できそうだったので作ってみました。 画像処理実験室の記事を参考にさせていただいています。 今回のプログラムは、次のものです。 src.zip (バイラテラルフィルタ:Microsoft DirectX 9.0 SDK (August 2006), vs_1_1, ps_2_0) まぁ、いつものように適当にファイルが入っています。 大事な部分だけを抜粋すると、次のファイルだけに注目すればいいことになります。 他にも、実行ファイル、リソースファイル、プロジェクトファイルが入っています。 ■Bilateral Filterとは? Bilateral Filter は1988 年にTomashi とManduchi により提案されたエッジ保持平滑化フィルタで、
■はじめに シーグラフ東京の第47回セミナーのCGゴング2008が2008 Mar. 7 に開かれました。 毎年、聴講者として参加していたのですが、今年は某方から「出ろ」言われたので、 急遽でっち上げて発表しました。 main.zip:実行ファイルとソースファイル main.cpp:メインファイル main.fx:シェーダファイル ■内容 私が発表した内容は、ジオメトリシェーダを使って、ポリゴンを分割することで、 簡易的にソートを行って、半透明をきれいに表示するというものです。 5分の時間制限なのに、スライドは87枚作ってしまい、本番では60枚ほどに限って発表しています。 ■さいごに 1週間ほどで作ったものなので、こんなもんでしょう。
■はじめに あいも変わらず Shirley の Realistic Ray Tracingを読んでいるのですが、その中にトーンマッピングのネタがありました。トーンマッピングは、かなりピクセルごとの並列的な処理なので、久しぶりのシェーダネタとして実装してみました。 今回のプログラムは、次のものです。 TpotToneMapping.zip (トーンマッピング:DirectX9.0c, vs_1_1, ps_2_0) まぁ、いつものように適当にファイルが入っています。 今回は、レイトレースした画像をテクスチャとして張り付けているので、レイトレースに関するプログラムも入っています。 それらは今回の話とは関係ないので、大事な部分だけを抜粋すると、次のファイルだけに注目すればいいことになります。 他にも、実行ファイル、リソースファイル、プロジェクトファイルが入っています。 ■何やってるの? トーンマ
■はじめに ATIのネットセミナーで紹介されていた、2パスを使ったガウス型のブラーフィルタです。 今回のプログラムは、15タップ30ピクセルのサンプリングと、ATIのものよりもサンプリング数が増えていることが特徴でしょうか(というか、なんでATIは少ないの?)。 src.zip (ガウスフィルタ:DirectX9) まぁ、いつものように適当にファイルが入っています。 APP WIZARD から出力されるフレームワークのファイルは紹介を省かせていただきます。 map.bmp:デカールテクスチャ あと、実行ファイル、モデル及び、プロジェクトファイルが入っています。 ■ガウスフィルタとは ガウスフィルタとは、ガウス関数を使ったぼかしフィルタです。 ガウス関数とは、指数関数的な形をした関数で、次の形をしています。 1 x2 f(x) = - exp(- ―― ) N 2σ2 Nは規格化変数で
あと、実行ファイル及び、プロジェクトファイルが入っています。 ■Cg を動かす Cg Toolkit をそのままインストールしただけでは、Cg は使えません。 「オプション」-「ディレクトリ」で、ディレクトリを追加します。 私の場合は、 に、それぞれのファイルがあるので、追加しました。 また、プログラムを書くときは、インクルードファイル 0013: #include <Cg/cg.h> 0014: #include <Cg/cgGL.h> を、追加しましょう。 ■Cg プログラム Cg 言語によるプログラムは、DirectXのものと変わりません。 今回は、頂点シェーダで、透視変換して色は頂点色をそのまま出力します。 struct appdata { float4 position : POSITION; float3 normal : NORMAL; float3 color : D
今回行う方法は、モデルの一部を引き伸ばして、しかも引き伸ばした先が薄くなるようにレンダリングします。 従って上の立場から言うと、残像を擬似的に表現しているといえます。 まぁ、いろんな場所でモーションブラーとして紹介されているので、そのようにしておきます。 N.B.) BBS で Masa さんから、 > モーションブラー関係で、当時は > 残像はCGには必要ない」みたいなことを書いたのですが、 > これは本当に「裸眼で見る」と同じような > 写実」を求めるという意図で書いてました。 > > ゲームやリアルタイムCGで、 > 良い意味での適度なディフォルメを施す場合、 > 残像は逆に重要なファクタだと思っています。 > #当時はあまりそうは考えてなかったのですけどね(汗 > 今は残像の虜です(謎 の、コメントをいただきました。 Non-Photorealistic
■何をやっているの 今回の方法は、環境マップを適当な係数を掛けて平均することにより入射光をSH展開して扱いやすくしておき、後は法線ベクトルからコサイン項(max(N.ω,0))のSH展開を求め、両者の積を足すことによって、拡散光を導出します。 数式で説明すれば、拡散光に関するレンダリング方程式 の入射光Liに関して、SH展開 を施すと(これは頑張ればリアルタイムで可能である)、レンダリング方程式は のように変形できる。ここで、積分された部分を1つにまとめてしまえば、 と、ラディアンスを単純な積和の形で書くことができる。 これは、シェーダで計算可能な量である。 Almは、 である。この量は、lm以外には、法線ベクトルNにしか依存しないので、あらかじめ計算しておくことが可能である。今回は、法線ベクトルを反射ベクトルとみなすスフィアマップ に、テーブルとしてその値を埋め込んだ。ここで、赤はl=
■はじめに Vista も出て、DirectX 10 をそろそろ勉強しなきゃいけない今日この頃、 皆様、いかがお過ごしでしょうか。 DirectX 10 の勉強といっても、最近はサンプルが充実してるので、 それやるだけで通り一遍はマスターできちゃうんですよねぇ。 いや、ほんと、たんなる入門書は時代遅れだとおもいますよ(書こうと思ってるけど)…wiki か何かで皆でよってたかって作ったほうが今時じゃね? と、いうことで、本を書くのは時間がかかるので(遅く出た本は価値が下がるので悩みどころなのですが)、前哨戦として入門編をここで展開してみます。 ■インストール VisualStudio をインストールしてください。(無料な Express Edition のダウンロードは、こちらから) あと、Microsoft Windows SDK (Platform SDK) も必要だったと思いますの
~ Bitonic sort ~ 下のムービーは、512x512=262144個をソートする様子です(2MB)。背景が赤くなると、ソートは完了しています。 ■はじめに もういい加減、順序を気にしなくてよい半透明表示をハードウェアで実装してもらいたいところですが、なかなかそんなものは実現していません。 半透明を正確に実現するためには、GPU によるソートが必要不可欠です。 ソートは、異なる位置のピクセルを入れ替えるという作業で、現在のGPUでは行いにくい方法の1つです。 そのような状況で、Graphics hardware 2003 において、Timothy J. Purcell, Craig Donner, Mike Cammarano, Henrik Wann Jensen, Pat HanrahanによるPhoton Mapping on Programmable Graphi
■はじめに 最近の知識の暗黙の前提にある級数展開にとり組んでみましょう。 級数などによる関数の展開は、うまい級数を選んでやると、 少ない基底関数で精度の高い関数の近似を行なってくれます。 級数展開がすらすらとできることは、将来のプログラマの必須条件になるかもしれません。 また、球面調和関数を見るためのプログラムを作って見ました。 qやwでlを、aやsで球面調和関数のmの値を変えることができます。 src.zip (球面調和関数:DirectX9) ■テイラー展開(Taylor Series expansion) 関数f(x)=x は2次元グラフではまっすぐなグラフです。関数f(x)=x2は放物線を描いて、f(x)=x3はより複雑なグラフになります。 y=x y=x2 y=x3 これら、べき乗した変数のグラフは拡大縮小しても重なり合うことはありません。 これら変数のべき乗の組は、線形に
■はじめに 碁石の表示に glutSolidSphere を使っていたのですが、 さすがにそれは無いだろうということで独自メッシュで表示するようにしてみました。 まぁ、シェーディングしてないので、こんなのにしたところでたいしたことはないですな 今回のプログラムは、次のものです。 タイトル画面でほっぽっておくとデモモードに突入します。 hikago102.zip (飛花碁 実行ファイル:Windows, GLUT) hikago102_src.zip (飛花碁 ソース:ツール) ソースには、いつものように大量にファイルが入っています。 今回関係するファイルは次のものです。 まだ「仕事でもこんな感じでやってるの?」とか聞いてくる人がいますが、 家で扱いやすい手っ取り早い環境として構築しているので、 仕事でやってることとは全然関係ないと考えてください。 ■簡単なやつ 最初に一番簡単なポリゴン
■はじめに 長久さんや三宅さんがやっている「ゲームAI連続セミナー」 の第6回に行ってみました。 今回のテーマは、進化です。 今回は、三宅さんの講演とグループワークと星野瑠美子さんによるライトシンセサイザNeonの紹介やその他、盛りだくさんの構成でした。 基本的にセミナー中にメモったものを起こし直したので、 聞き漏らしたり、勘違いしているところがあると思います。すいません。 ■新さんの前説 ケベックの「モントリオール・インターナショナル・ゲーム・サミット」のキーノートでSporeの人が「次世代技術はAIだ」と断言していた。 ■長久さんの前説 宿題の説明 手間がかかっているところを見つけて、自動化できるか考えよう 自分のニーズに合致しているか気にしながら三宅さんの話を聞こう ■三宅陽一郎劇場 らき☆すたみてた。 これからのAIがどうなっていくかということに活かして欲しい 毎日同じ世界は退屈
■はじめに 長久さんや三宅さんがやっている「ゲームAI連続セミナー」 の第4回に行ってみました。 今回のテーマは、有限状態マシンです。 今回も三宅さんとグループワークの2部構成です。 基本的にセミナー中にメモったものを起こし直したので、 聞き漏らしたり、勘違いしているところがあると思います。すいません。 ■最初 最初に、定番のゲームAIセミナーの概要紹介。 ゲームAIセミナーの目的紹介 1.紹介、発表の場 2.討論 3.ゲーム業界で本当に必要なセミナーの形は? ゲームAIの特徴:ゲームとAIが相互進化 繰り返して、良いセミナーを模索する 今回の改善点 設定を限定的に 事前公開が良かったので、みんな原論文も読んでね ボランティア随時募集中 ■講義 目的 ゲームAI現在の構造を理解 FSMの話が多いがそれだけではない。 ゲームの進
■はじめに 2007年11月17日にIGDA日本開催のゲーム開発者セミナー連続企画:新世代CG表現の事例報告 〜第3回〜 板野一郎氏が語るCG映像演出の過去と未来に行ってみました。 基本的にセミナー中にメモったものを起こし直したので、 聞き漏らしたり、勘違いしているところがあると思います。すいません。 ■自己紹介 自分のことは「表現者」といっている。 アニメーターではない。 大事なものに対して、「意図」を拾って表現する。 ■板野さんの思う表現者 言葉、活字、として読んで、ないたり笑ったりする。 伝わった人が受け取ったときに、泣くのか笑うのか。 企業の歯車ではない!感動させる仕事。 楽しませる仕事はサービス業で、感動を作らなければいけない。 その分、自分も感動していかないといけない。 別に3次元でなくても2Dのレイヤーを重ねてもカッコよければいいよね
■はじめに NyaRuRu さん(Microsoft MVP for DirectX/XNA)の発案で、XNA チューニング勉強会が2007 Nov. 22 に開かれました。 内容は、NyaRuRu さんのC#やCLRの話や、XNAの開発チームのひげねこさんこと伊藤雄一さんのXNAでどのようにプログラムをすれば高速化されるかなど、とてもためになるお話がありました。 私も、つゆはらいとして話させていただいたので、その資料をさらしておきます。 ■資料 ■さいごに 長 健太(ABA)さんが途中で質問をはさんでくれたので、やりやすかったでした。 と、いうか、結構、構成がずれて話したところもあって、すまんかったでした。
■はじめに 「MSDN オフライン」 という、開発者の方々を対象にした、マイクロソフトが提供する無償のスクール形式のセミナーがあるそうで、 「プレゼンテーション実践講座 ~心をつかむ ”話し方” ~」というのに行ってみました。 要は、話し方講座です。 3Dとまったく関係ないです。 ■講師さん マイクロソフト株式会社 ビジネスプロダクティビティテクノロジー本部 本部長の小柳津(おやいず) 篤さんでした。 「個人と組織のナレッジイノベーション」という本を書かれているそうです。 ■知識を身につけるということ 知識を身につける段階は、次の2つの段階で明確に分かれている。 Passive Knowledge:十分理解できる知恵 Active Knowledge:行動にできるくらい血と肉になっていった知識 Passive Knowledge を受けたレベルでわかった気になるが、Active Kno
Super Incorrect Translation "The Direct3D 10 System" (2006 Aug. 2)
■フォームの作成 C++.NET の開発は、VBと同じようにフォームを作成することから始まります。 アプリケーションウィザードで「Windows フォームアプリケーション」を作成します。 そのあと、適当に部品を張り付けます。 ここでは、ボタンを置くパネルと描画するためのpictureBox、ポーズのためのボタン及びTimerを張り付けました。 panel は、DockプロパティをLeftに、pictureBox1はDockプロパティをFillにしました。これによって、フォームのサイズを変更したときにpictureBoxのサイズも自動で変わってくれます。(panelのあとにpictureBoxを配置する必要があります) あと、プロパティウィンドウをイベント表示にして、pictureBox1の描画関数、タイマーの更新関数、ボタンをクリックしたときの関数を追加します。これらは、Form
■はじめに すっかり紹介を忘れていた、強力なデバッギングツールの PIX(Performance Investigator for DirectX) for Windows です。 これを知っているのと知らないのでは、開発効率に天と地との差があります。 "for Windows" とあるように、"Not for windows" もあります。 と、いうか、そもそも PIX は、Xbox 用のツールとして開発されたらしいです。 いやぁ、規格が決まっている Xbox から、色々な環境が混在する Windows なんて無理もいいとこです。 大助かりです。 ぜひ、OpenGL 用とか、他の環境にも… ■起動法 今回は、簡単で楽しい、フレームキャプチャ機能で遊びます。 この機能は、あるフレームのコマンドを全て記録しておいて、 オフライン実行や、はてはピクセル単位のデバッグまでしてくれます。
■はじめに SBR2006のFastest Forward Paper Preview で解説した SIGGRAPH 2006 の論文の "The Direct3D 10 System"のスライドを公開します。 あわてて作ったので、ひどいところが多々あると思いますが、他意はありません。 特に、悪意は絶対ありません。 間違っていたらごめんなさい。
このページを最初にブックマークしてみませんか?
『http://www.t-pot.com/』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く