2020年2月20日木曜日

法線ベクトル

 試しに法線ベクトルの出力を作ってみた。







 法線マップのダンプは特に意味はないが、比較的簡単な改造で実現できる機能。あるいは、ベクトルの途中経過を出力すれば、UVマップの確認にも便利かな、とも思ったり。UVは2次元だから、また別の形式に対応する必要があるけどね。。。
 なんとなく、法線ベクトルのマッピングに違和感がある。こんなに氷結缶みたいにデコボコしてるんだろうか?

***

 OBJファイルの読み込み、とりあえずポリゴンだけの描画は問題なく動いてる。画像はライセンスの関係で無し。「だめ」とは言われてないけど、「いいよ」とも言われてない。
 日本語圏で配布してる、緩いライセンスのデータでも「品位を損なう用途は禁止」とかは書いてあっても、改変の許可とかは書かれてなかったり、判断に迷う。レンダリングに失敗した状態のスクショとか、品位損なわない? 大丈夫?

 そもそも、今回の用途ってどういう分類に当てはまるんだ?
 データの改変等は行わず「読み込んだまま」処理してるけど、表面処理いろいろ試してるので、作者側が提供した見た目とは変わってる。シェーダで遊んでると解釈すれば、データ側はそのまま。ゲームの中身みたいな感じで配布する予定はないし、データを抜き出せる状態で配布する予定も無いが、ブログで画像貼り付けたりはやりたい。商業で使う予定はないけど、このブログはたまにアフィリンク貼るので、完全な非商業用途とは言えない。
 という、色々があって、球と円筒だけのサンプル画像しかない。

 メジャーな(ググってすぐ出てくる)コンテンツで、ライセンスがゆるそうなのは「ユニティちゃん」とか。ただ、「詳細なライセンスはこのリンクを見てね」が404なんだよな。。。ゆにてぃぃぃぃいいい!!! ググれば英語版は出てくるが、英語版のライセンス読むの嫌だから日本語圏のコンテンツ探してるんだよ!!!まぁ、ユニティちゃんはUnityのファイルフォーマットで配布してるっぽいので、どっちにしろ使えないんですけどね。。。
 日本語圏のフリーデータだと、ローポリの家具でポリごとに色つけたようなやつが多い感じ。BOOTHあたりだとちゃんと作り込んだ3Dデータを売ってるけど、テストデータとして使うにはちょっと値段が高い。あと、人間のモデルばっかり出てくる。レンダリング壊れた人間とか完全にホラーじゃん……まずは無機物で試したい。

***
追記
 氷結缶みたいな質化は、ベクトルの正規化の処理を誤ってたっぽい。
 頂点ベクトル付きのデータを読み込んで、ポリゴン内で線形補間して、それに応じて陰影を計算したら、陰影のガタガタが消えた。頂点ベクトルってすげーな。めっちゃ高負荷だけど。高付加だからしょうがないね!!
 おそらくバンプマッピングでも同じような表現はできるはずで、バンプマップなら2次元の線形補間で済むけど、メモリアクセスとか考えると頂点ベクトルのほうが扱いやすいのかな。
 プログラム内で作った球体や円筒は、頂点ベクトルの計算に非対応なので、サンプル画像は無し。三角関数演算いくつか増やせば作れるんだろうけどね。

 データ形式が結構面倒なことになってきた。レンダリングパイプラインもゴッソリ作り直したほうがいいかもしれない。。

0 件のコメント:

コメントを投稿