最近生まれたてのGitHubアカウントでプログラムの海を泳いでます。
いろんな実装方法とか書き方を知ってパワーアップしてる感じがします。感じがするだけかも(笑)
とはいえ自分の中ではエラー処理の考え方が変わったり、基本的な記述方法がスネークケースに変わったりしたので結構影響されてはいます。
■今週のゲーム制作:プログラミングのお勉強
今週は先週に引き続き、自分でライブラリの中身を実装してみようということで、DirectXについて勉強を進めています。
マイクロソフトの開発者向けのドキュメントを読んだりいろんなブログの入門記事を読んだりしつつ・・・・・・
文系にはなかなか難しいシェーダーというものにぶち当たりました。これは避けては通れない壁のようです。
C++言語ではなくHLSL言語で書かれているというのはなんとなく知っていたんですが、読めるやろ~~と軽ーいノリで開いてみると・・・・・・Σ(゚д゚)!
なにこれーーーーーー
VSなんたらPSなんたらとかPOSITIONとかSV_POSITIONとかUVとかなんとかかんとか・・・・・・
全部一から調べていかないとなにもわからない!
色々ググってみるとUnity用のシェーダープログラムがいっぱい出てきたので斜め読み。
とりあえずわからなかった略語は今の自分の認識として↓にまとめておきます。
※これは違うよっていうのがあったら是非Twitterで教えてくださると幸いです。m(_ _)m
シェーダー:入力されたポリゴンのデータを画面に描画できるデータとして吐き出すもの
VS:VertexShader(頂点シェーダ―)の略
頂点シェーダ―:描画するポリゴンの頂点のデータを計算するもの
PS:PixelShader(ピクセルシェーダー)の略
ピクセルシェーダー:描画するピクセルのデータを計算するもの
SV:SystemValue(システム値)の略
↓こちらが見つけた記事の中では一番コンパクトでわかりやすかったのでシェアです。
結構一から作ってみると見えてくるものもあったので、最終的には自作ライブラリでゲームが作れたらいいな~とか思っています。
今のところウィンドウとプロシージャ、TSF、サインテーブル、ゲームループのタイマー、メモリアロケータ、キー入力関係あたりは何とかなりそう!
画像・フォント・音楽・コントローラー入力(Xinput)あたりは一から勉強が必要そうです。前に一度諦めたPNG画像のグリッチフィルターも作れるようになりたい・・・( ;∀;)
GitHubを泳いでいるときにデバッグビルド時はコンソールで動作するプログラムを見つけて、その手があったか!!と思ったので、機能レベルのことはコンソールで作ってみるのもありかなと思っています。
Luaにも手を出してみたい今日この頃です。(Vulcanにも興味出てきたけどGitHub上のコード見てそっ閉じしました。DirectX11が使えるようになったら多分使うと思います。。。)というわけで今週も頑張りますぞ~!