そろそろGPGPUにも手を出すんべ、と思って、試しにAleaをコンソールアプリから呼んでみた。が、どうどう見ても処理CPUです。。。
CUDA入ってないからかなーと思って謎のメーカーことNVIDIAから一式落とそうとしたんだけど2.6GBとか言われて笑ってる。
そもそもAleaって開発自体数年されてないっぽいしなぁ。いまいちC#でGPGPUって流行らんよな。WebCLとかはあるのに…って、こっちもだいぶ開発されてないんだな。
「CPUパフォーマンス足りないよね!マルチスレッド処理得意なライブラリ作ったよ!!便利でしょ!!!」からの「CPU性能上がってきたよね。開発やめるね。。やむ。。。」の流れかなぁ。
パフォーマンスがっつり使いたいならC++でCUDAたたけって話だし、そうじゃないならちまちま最適化して速度稼げって話だし、いまいち「便利なGPGPU」は流行らないのかもなぁ。
いちおう、NVIDIAがCUDA/SIMDのライブラリを提供してるんだけど、年間ライセンス250USDとのこと。業務でガッツリ使うなら安いけど、個人の遊びに使うには高いよなぁ。
***
試しにフォグを実装。
**********
株式会社インフィニットループのマスコットキャラクターのモデルデータ「あいえるたん3Dモデル」を使用しています。
配布元:https://www.infiniteloop.co.jp/special/iltan/
**********
あいえるたんが神々しいぜ……
デプスバッファはfloat.MaxValueで初期化しているので、背景は真っ白になる。
今回はポストプロセスで処理してるけど、ラスタライズ時に最大深度を渡して比較すれば、不要なポリの描画を省ける。あるいは、MaxValueで初期化するのでなく、最大深度で初期化してやって、ラスタライズ前に適当なサンプリングポイントで現在の深度を取得・比較してやる、という流れもありそう。
全ピクセルの計算とはいえ、他ピクセルの参照はないので、負荷はさほど大きくない。線形補間をリミットして加算するだけ。
ライティング周りはもうちょっと真面目に実装しておきたいなぁ。表情が暗い。
***
他の物体とかも配置したいけど、使いやすい(ライセンス的な意味で)データ探すの面倒。。
深度とかの確認だけならテクスチャいらないし、ちょっとした家具くらいならFusion360で作ってSTLで出せばよさそう。
あるいは、STLにテクスチャ貼ってOBJに変換するソフトをゴリゴリやるとか。UVマッピングだけに機能を絞れば、なんとかなりそうな気もする。テクスチャどーやって用意するんだ、って問題は残るけど。最悪2x4材の写真撮ってくれば、でぃーあいわい的なオシャレな家具は作れるはず。。
Fusion 360、Objのインポート/エクスポートができるけど、少なくともインポートではテクスチャは反映されてない気がする。Fusion自体はテクスチャとかはサポートしてるので、扱えるはずなんだけど。
とりあえず家具でも作るか、と思って、いざFusion開いても、なかなか手がつけられない。普通、DIYで家具を作るときって、「ここに置きたい」というのが決まってて、それによって大きさなりデザインなりが拘束されるので、あとは材料とかの制約から自ずと形が決まっていく。3Dデータとしての家具が欲しい場合、そういう成約がないので、選択肢が多すぎる。暇なときにチマチマ作っていくしかないかな。
そういえば、STLで出せば、スケーリングすれば3Dプリンタで出力できるんだよな。使えるようなものじゃないだろうけど。figma座らせたりくらいなら使えるか。
***
可愛い子には旅をさせよ!で、あいえるたんを旅に送り出したわけだが、北海道でバイトしてる女子高生の割に、スタート地点は関東なんだね。しかもママチャリって……それで日本全国行くつもりか!?いったい何時間かかるんだ!?
ゲーム自体は、まぁ、放置したら写真1枚増えるっていう感じのやつなので……
1日目にしてランキング上位3割入れるってどんだけ過疎ってんだ。。。あいえるたんかわいいんぞ!!みんなやろうぜ!!!そして俺の後塵を拝すがいい!!!!あ、俺じゃなくて、俺が送り出したあいえるたんの後塵を……
そういえば、時々見かける「仙台のプログラマー(ry」のバナー、あれってinfiniteloopのやつだったんだな。最近特によく出てくる気がする。
***
本日は気分転換で別件やってたので特に進捗なし。フォグ追加とちょっとリファクタリングしたくらいか。
今月リンク集いじってないので近いうちにやっておきたい。
0 件のコメント:
コメントを投稿