MicrosoftのXNAを使ってゲーム開発を始めたいと思っています。 Shaderの開発の一部ですが、どうやって始めたらいいかわかりません。 nVidia's FX Composerはシェイダーを開発するのに最適なツールだとわかっていますが、実際に始める方法についてはあまり役に立ちませんでした。Shaderの開発開始
おすすめのチュートリアルを教えてください。
MicrosoftのXNAを使ってゲーム開発を始めたいと思っています。 Shaderの開発の一部ですが、どうやって始めたらいいかわかりません。 nVidia's FX Composerはシェイダーを開発するのに最適なツールだとわかっていますが、実際に始める方法についてはあまり役に立ちませんでした。Shaderの開発開始
おすすめのチュートリアルを教えてください。
XNA(明らかにDirectXを使用)でシェーダを開発するには、HLSLまたはシェーダアセンブリの知識が必要です。私は後者に入る前に前者に慣れることを勧めます。
シェーダを書き込む前に、シェーダパイプラインを確実に理解し、プログラマブルシェーダを使用するときに可能なことを心がけてください。ピクセルの寿命(ソースデータから画面まで)に精通している場合、シェーダの例を理解するのがずっと簡単になります。
次に、Fixed T&Lパイプラインが行っていた独自のHLSLを作成しようとしましたが、手を汚してしまいました。これは、頂点/ピクセルシェーダの世界では "hello world"プログラムと同じです。あなたがそれを行うことができ、あなたが書いたことを理解すれば、より楽しいものに進む準備が整いました。
次のステップとして、単一の光源からシェーダの1つに基本sepcular lightingをシミュレートすることができます。これをトラックに合わせて、複数のライトを使用することができます。色と光の動きで遊ぶ。これは、シェーダ定数の使用にも慣れ親しむのに役立ちます。
基本的なシェーダを2つ一緒に使用する場合は、ゲーム/エンジンが異なるオブジェクトの複数の/異なるシェーダを使用するようにしなければなりません。基本ビットbumpまたはnormal mapsのようないくつかのビットを追加し始めます。
この段階に入ると、世界はあなたの牡蠣です。あなたはいくつかのファンキーなエフェクトにダイビングを始めることができますし、もともと意図したよりもmoreのGPUを使用することを検討してください。
もう少し進んだ方には、Nvidia hereとhereの素晴らしい情報がいくつかあります。
ShaderXと呼ばれる一連の優れた一連のシェーダが含まれていることを忘れないでください。 1,,3,4,5および6が既に印刷されており、すぐに7が来ています。
幸運。シェイダーがいくらか動くなら、私はそれらを見たいと思うでしょう:)
SAMSのXNA Unleashed Chad CarterによるXNAの出発点は、ゲーム開発の実践や難しい数学の知識が少ないことを前提としています。基本シェーダとアドバンスシェイダには2つの章があります。
脇の下として、Google for WPF Shaderチュートリアルに注目して、同じ技術を使用してWPFアプリケーションとチュートリアルのカスタマシェーダがXNAと大きく互換性があると思われるものを許可します。
私は、GPU Gemsの本がいかにすばらしいのかを繰り返し述べたいと思います。真剣なグラフィックス開発にとって本当に素晴らしいリソースです。
OJは基本的に学習の本当の良いプロセスを要約していますが、私はちょうど幾何学的な数学(ベクトル/行列を最小限にする)の良い基礎を持つことは過小評価できないと付け加えています。でる。ドットプロダクト、クロスプロダクト、法線ベクトル、行列乗算がどのようなものであるかを学ぶことは、良い第一歩です:)。ワールド/ビュー/プロジェクションクリップ/スクリーンスペースの間に何が起きているのか、パースペクティブな分割があるのかなどを理解してください。
私は学習を始めていたとき、実際にT & Lパイプラインソフトウェアでは、クリッピング/カリングなどがあります。これは長いプロセスであり、価値のあるように見えるかもしれませんが、楽しいものにちょうど飛び込んでみたいと思っているかもしれませんが、何が起こっているのかを正しく理解することは、バグを診断するのが難しくて難しい場合は、常に価値があります。
最初はFX Composerのようなツールを使用しないようにしてください。プロトタイプ作成には便利ですが、基本的な基礎は丈夫で長期的にははるかに価値があります。
私はXNAまたはDirectXを使用していません。しかし、Cgでシェーダープログラミングの基礎を理解するためには、Cg Tutorialが私が見つけた最高の本です。
RenderMonkeyもご覧ください。それは良いツールです。限り、本は、XNA 2.0のゲームプログラミングレシピRiemer Grootjansからチェックアウトする...素晴らしい本。
私はOJに与えられた賛辞に参加します。本当に良い答えです。
をレンダリング:あなたは基本的な理解を持っている一度 それでも、次の2つの偉大なツールのいずれかをダウンロードすることにより、多くのと高速を学ぶことができます一旦それをしたら、プロジェクトライブラリに移動し、基本的な陰影から始まり、陰影、通常のマッピング、マテリアル、エフェクト、興味のあるものまで、サンプルをブラウズします。 プロジェクトを開始し、設定した目標に応じてアルゴリズムを変更し、取得方法を確認します。 多くの例が実際に進歩しており、あなたの視野が広がることがわかります。あなたは大変な仕事に必要な手順の周りにあなたの心を得ることを抱えている場合は良いアドバイスの多くはすでに、与えられてきたが
はMental Millはシェーダを構築する視覚的な方法を提供し、楽しい
を持っている(アーティストEditionがありますFx Composerと自由にバンドル - それ自体も無料!)。
HLSLコードを長期間学習するのが良いですが、Mental MillはこれらのFxファイルを生成することができます(変更点を覗くことができます)。すべてのコードジェネレータと同様に、HLSLを理解すると、やや詳しく説明します。
1つの方法から別の方法への効果の視覚的な進行は非常に印象的です!
ビジュアルシェーダエディタについて簡単に考えてください。 このようなエディタは非常に楽しいものですが、テキストベースのHLSL(RMとFXCの両方がその仕事をしています)での作業にこだわることを本当に推奨します。私はゲーム開発者として働き、いくつかのシェーダシステム(Battlefield 2やFarcry 2など)を構築しました。正直言って、HLSLはこれまでのグラフィックシェーダネットワークよりも貴重です。
実行フロー、シェーダのデバッグ、またはビジュアルツールを使用することはほとんど不可能な洞察を与えるテストケースを素早く反復できるようなものがあります。
私はビジュアルシェイダービルダーを自分で使いました。私はそれらが好きです。今日、シェーディングが今日のようにパフォーマンスクリティカルではない、ある日、彼らは仕事の正しいツールかもしれません。
私の推測では、その日が来る前に、私たちは繰延照明、おそらくフルソフトウェアレンダリングを参照してくださいよということです..though、シェーダを始めるための最良の方法の)
1つの3Dゲームプログラミング入門を読むことですフランクルナのDirectX 9.0ca Shaderアプローチ著者はまずDirectXとHLSLを紹介し、シェーダの力を段階的に明らかにします。彼は非常にシンプルなシェーダで始まりますが、本の最後にはライティング、シャドウ、パーティクルシステムなどの作成方法が分かります。
OJはShaderXシリーズを読むことを提案しましたが、初心者のためのものではありませんので、最初のステップを踏んだときに多くの助けになりません。
また、ゲーム開発を開始するのに最適な書籍に関する記事hereを掲載しました。
それは本当に面白い本のように見えます。ええ、私はShaderXと推奨GPU Gemsの両方を見ましたが、彼らは本当にハードコアのようです。 Bruce Schneierが暗号について何も知らない時に読んでみたいです。私はルナの本を注文すると思う。 –
あなたが言った本を実際に編集しました! :) –
詳細な返信をありがとうございます。確かに、私は何かを取得して実行するとすぐに私はリンクを追加します:)しかし、数ヶ月を取ることができます。 –