HLSLの学習に役立つリソースは何ですか?[閉まっている]


28

HLSLを最後に学ぼうとしたとき、いくつかのシェーダーを作成し、自分がやっていることをほとんど理解しましたが、暗闇の中でつまずいているように感じました。私が学んだことのほとんどは、物事をあまりよく説明していないさまざまなブログ投稿から得たものです。

また、MSDNのドキュメントは、関数リファレンスのようです。

HLSLを書くだけでなく、シェーダーを書くためのテクニックをどこで学ぶことができますか?

回答:


14

これら2つは、ジェネリックシェーダーを作成するたびに一貫して次の記事に戻ることを指摘しました。


1
そして、「APIリファレンス」によって、「プログラミングガイド」セクションを意味することを指定する必要があります。
ショーンジェームズ

6

あなたが望んでいるのが単なる言語リファレンスではなく「シェーダーテクニック」(質問、人々を読む)なら、私は(簡単から上級まで)お勧めします:

そして基本的には、「長所」が物事を行う方法を吸収しながら、物事を試して練習します。または、そこから達成しようとしていることと似ているものを選んで選択します。


3

Cgは技術的にはHLSLではありませんが、構文的には実質的に同一です。

そうは言っても、古い本ですが、NVIDIAは「The Cg Tutorial」を無料でオンラインで読めるようにしています。プログラマブルパイプラインの基本を非常に包括的にカバーしており、最小限の労力ですべてHLSLに変換する必要があります。


1
nVidiaとMicrosoftはCg / HLSLを共同で作成しました。ブランディングのために異なる名前を付けましたが、言語は同じです。今、おそらくわずかな違いがありますが、それは本当に最小限です。
jacmoe

それは驚異的な本です。基本的に、Kilgardによるものはすべて、チュートリアルの点で本当に良かったです。
ボボボボ

3

編集して結果をリアルタイムで表示する場合は、このシンプルなSilverlightツールを使用できます

http://shazzam-tool.com/
Shazamm 1.3-HSLSシェーダーの編集者および前任者


Riemers.netのチュートリアル+1については、このシリーズのXNA / HLSLチュートリアルがさらに優れていることもわかりました。

以下にリストを示します。それらはすべてここにあります:http : //digitalerr0r.wordpress.com/tutorials/

  • 1 – HSLSの紹介、環境光
  • 2 –拡散光
  • 3 –鏡面ライト
  • 4 –法線マッピング
  • 5 –頂点シェーダーの変形
  • 6 –シェーダーデモ:シンプルな海/島の風景
  • 7 –トゥーンシェーディング
  • 8 –光沢マップ
  • 9 – Wiggleのポストプロセス
  • 10 –ポストプロセスの反転
  • 11 –グレースケールシェーダー
  • 12 –ピクセルディストーションシェーダー
  • 13 –アルファマッピング
  • 14 –透過率/深さバッファー
  • 15 –動的環境マッピング
  • 16 –屈折
  • 17 –ポイントライト+セルフシャドウイング
  • 18 –複数のポイントライト
  • 19 –半球の周囲光
  • 20 –被写界深度
  • 21 –移行:フェード
  • 22 –移行:クロス
  • 23 –ぼかし
  • 24 –ブルーム
  • 25 – GPUのパーリンノイズ
  • 26 –バンプマッピングパーリンノイズ


1

私が見つかりました。Riemers.netはそのXNAチュートリアルの一環として、HLSLに非常に優れた入門チュートリアルを持っています。作者のRiemer Grootjansは、推奨される本XNA 3.0 Game Programming Recipes- レシピアプローチがお好きなら。





0

どのシェーダーモデルとDirectXバージョンをターゲットにしているのかわかりませんが、Direct3D11による実用的なレンダリングと計算を強くお勧めします。この本は、DirectX11のすべての詳細、リソース、さまざまなパイプラインシェーダー、HLSL(これに特化した章全体)、およびパーティクルシステムシミュレーション、テッセレーション、画像処理、遅延レンダリングなどの実装を開始する方法について説明します。 、およびDirectCompute!



-1

私にとっては、最初にGLSLを学ぶ方が簡単です。HLSLとGLSLは似ているからです。コンセプト全体、パイプライン、ハードウェア、および内部シェーダー言語の仕組みを理解したら、HLSLやCgなどの別の言語を使用するのは簡単です。

GLSLを提案するのは、openGLのオレンジと赤の本のような非常に優れた本があり、初心者にとって学習しやすいからです。


1
これは質問に答えません。
PhillC

しかし、それは悪い反応ではありません-GLSLの根底にあるものの多くはHLSLに非常に似ており、OPがGLSLのリソースを見つけることができれば、それらを利用することは有効です。シェーダーコード自体の主な違いの多くは、見ているものがわかれば、精神的な変換の問題にすぎません。GLSLを学習するというアイデアは、OpenGLを学習する必要があり(それ自体は悪くない;両方を知っていると便利です)、プログラムを書き換える(悪い)ために最初に失敗しますが、GLSL教材を使用してHLSL学習を補完することにはまったく問題はありません(そして該当する場合、その逆も同様)。
マキシマスミニマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.