最近悩んでいること。

こんにちわ,Pocolです。

たまには日記っぽいことを書いてみようかと思います。
最近の悩みは,シェーダバリエーションの生成とシェーダのマルチプラットフォーム対応どうしようかな?ってことで悩んでいます。
仕事で使っているものは他の方が書いてくれたもので,特に問題なく使っています。
で,「プライベートで使う方はどうしようかな?」ってのが今回の悩みです。
仕事で使っているのと同じものを作るのが手間というのと,
#ifdefのオンパレードが死ぬほど嫌いなので,趣味のコーディングではそういった手法は使いたくないです。
ソースコードが汚くなる。

で,比較的に綺麗に書けたなぁっていうのが,fxファイル。
前職で有名な方もいまだに使っていたというのと,バンジーのスライドだったような気がするのですが,やっぱりfxっぽい記述できるようにしていたんですよね。あとunityもcgfxっぽい感じなので,「やっぱりfxファイルでいいんじゃないの?」って気がして,fxシステム欲しいなぁ・欲しいなぁと思って,ずっと放置していました。
ようやく仕事がひと段落付きそうなので,ちろっと作ってみました。
https://github.com/ProjectAsura/asfxc

あんまり,凝ったツールにすると面倒なので,シェーダの組み合わせだけをとりあえず作るようにしてみました。
組み合わせはxmlファイルで吐き出すので,あとで別ツールにかまして… みたいなことができます。…というかその目的で作っています。
あくまでも,バリエーション生成用のHLSLソースコードと,バリエーションの羅列を出力だけする簡単なツールです。
雑ですが,とりあえずバリエーション生成はこれで解決!

あと残ったのは,マルチプラットフォーム対応ですね。
会社ではHLSLcc使っているみたいなんですが,HLSLccのフラグに関するドキュメントっぽいものがあんまりなくて,ちと不親切。
で他にないかなぁ…って探していたら,ありました。
https://github.com/microsoft/ShaderConductor

Microsoftが作ってくれているみたいなのです。
Metalにも対応しているみたいなので,「あ、これでいいじゃん!」って思ったので,今のところこれで行こうと思います。
これで,マルチプラットフォーム対応も(ほぼ)問題ないです。

シェーダのワークフローは下図みたいな感じになります。

「ほぼ」と言ったのにはワケがって,それでまた悩み中です。
悩み解決の進展があったら,またなんか書こうとかと思います。

深度バイアスについて

お久しぶりです。Pocolです。
最近お仕事の関係で,たまたま他社さんのソースコードを観る機会があったのですが,そのソースコードのコメントに自分のホームページのURLが記載してありました。
で,見てみたら深度バイアスの説明している個所だったのですが…
「これ正確じゃないな…」と今更ながら気づいてしまったので,訂正を兼ねてここで説明することにします。

深度バイアスについては,”Real-Time Rendering Forth Edition”の7.5にまとめられています。

(さらに…)

私的メモ 8/2

<A3Dのバージョンアップ(予定)>
 APIの仕様変更
  ・DescriptorSetの廃止
  ・ブレンド周りの設計ミスの修正
  ・UnorderedAccessViewの追加・StorageViewの廃止
  ・ICommandListにSetConstantBuffer()を追加
  ・ICommandListにSetTextureView()を追加
  ・ICommandListにSetUnorderedAccessView()を追加。
  ・ShaderAPIをHLSLに統一
  ・独自シェーダバイナリの策定
  ・IShaderReflectionインタフェースの追加
  ・遅延リソース破棄の実装
  ・BufferDescとTextureDescのメンバーを変更。
  ・各コンソール用に継承コマンドリストを追加。
  ・シェーダコンバーターの作成
  ・MetalAPIのサポート
  ・リターンコード列挙体の追加
  ・サンプルを整備
  ・NX版Vulkanのサポート廃止

勉強メモ 2018/04/28

今日はVeachの論文のChapter.2の2.2までを見ました。
幾つか分からない(or忘れている)内容があるので,あとで確認するためにメモしておきます。

・ニュートン・コーツ法
・中点法
・台形法
・シンプソン法
・ガウスルジャンドル法
・テンソル積
・Bakhvalovの定理

そのうち…

会社で,大気散乱とレイマーチを用いたボリューム雲のプログラムを作りました。
時間頑張った割には,見た目がいまいちなので,
時間が出来たらもう一度勉強しなおして,調整かけたいなぁと思っています。

勉強会やった

こんにちわ,Pocolです。
牛歩ですが,頑張って執筆作業やっています。

先日,会社で勉強会やるために資料を作ったので,折角だから公開しようかなと思いました。
オリジナル版の資料は320枚程度あるのですが,いくつか外に出せないものとかが混じっているので,
ちょっと手を加えて編集した資料をアップロードしました(それでも237枚あります)。
もし良かったら,見てみてください & 間違いがあったら教えてください!

謹賀新年

明けましておめでとうござりまする。
本年度もProject ASURAをよろしくお願い致します。

昨年は長年勤めたS社を退社しまして,ゲームプログラマーになりました。
相変わらずS社を退社しても作っているのはライブラリとかエンジンとかと言われる類のものですが,
現代的な画を目指して,ある程度裁量を持たせて頂いて自由にプログラムさせてもらっていて,
本当に感謝しています。
会社変わるだけでこれだけ違うものかと…。
また,長年離れて失っていた現代的な3DCGへの意欲も復活しつつあります。

今年の抱負ですが,
「まずは昨年出版できなかった本を出版させたい!」
…というのが第一目標ですかね。

第二目標としては今作っているゲームをちゃんと世の中に出せるような形にしたいです。

第三目標としては,エフェクトライブラリ&ツールを完成させたいですね。
実はちまちまと趣味でライブラリとツールをコソコソ作っていまして,(社内で作ろうとすると露骨に嫌な顔をされるので…)
前の職場でも結局(まともに使える)エフェクトツールが無くて困っていたりや,
HDRTV対応などで見た目が結構変わるという問題がちょっとずつ出ていまして,
それを改善するべくエフェクトツールの設計実装を開始しています。
たぶん,ある程度形になったらオープンソースで公開すると思いますので,
是非ともご協力いただける方は,ご意見ご感想などを頂戴できればと思っています。

昨年度は執筆の関係で,ほぼ更新することがありませんでしたが
執筆完了次第,また更新を再開しようと思いますので

今年もどうぞよろしくお願い致します。