Modeling Type 74 Tank #3

ずいぶんと長い間放置していた74式戦車です。ここ数日深夜まで作業してUVを調整しながらテクスチャーの作業をしていました。

type74_20133627

まだパーツも足りてないし、テクスチャーも途中ですが、ある程度までは完成に近づいたかなと思います。

 

type74_20133627_02

以前から書いていることですが、こういったモデリングをするのは、つくる過程でいろんなスクリプトを書くことになり、それが後々仕事の役に立てばいいなという一石二鳥的な考えがあります。ドイツ戦車をモデリングしていた頃はメカモデリングに必須の座標系スクリプトを書いたりしてましたが、今回はどちらかというと効率化のスクリプトばかり書いていました。効率化も大事なんですが、こういった類のスクリプトはあまり自己満足感がないんですよね・・・。

そんなわけでモデルのほうはあまり進んだことは出来なかったのでモデルビューワのシェーダを見直すことにしました。

 

ガンマ補正

まずは最近話題の物理ベースのライティングをいろいろ調べてみたのですが、ガンマ補正のことを今まで知らなかったので、さっそく見直すことにしました。(ガンマ値についてはGDC 2010のUncharted 2: HDR Lightingがわかりやすく説明しているので検索してみてください)

gamma

左が通常のランバートライトの描画で、右が補正した描画です。右のほうが光と影の境界が引き締まっていて現実のライティングに近いと思います。昔からなぜこういう結果にならないのか不思議に思っていましたが、ディスプレイがガンマ補正(一般的に2.2乗)していたためだったんですね。なのであらかじめリニアスペースで描いたカーブを1/2.2乗しておき、補正を打ち消すようにしておくと上手くいきます。

 

彩度と明度

自分が絵を描くときに陰の部分を敢えて彩度を高めに色をのせるのですが、これをシェーダーでやってみました。彩度はRGB値の一番高い色を基準に他の色を差の割合で移動させることで変更できます。基準の値と差が開けば彩度が高くなり、近づけば低くなります。(彩度を変えるのは意外と簡単でフォトショップのカラーパレットでRGB値とHSB値の関係をスライダーをいじって観察すれば関係性について理解が深まるかと思います)

saturation_and_value

上は通常のライティング、下はアンビエント部分の彩度を高めに設定したもの。

シェーダ内の関数は以下のような感じで書いてみました。彩度を2倍にしたければratioに2を入力し、半分にしたければ0.5を入力します。

code_saturation

彩度を高めると明度が下がるので、明度を調整する関数も書いてみました。これはもっと単純で全体の値を同じ割合で動かす要領です。

code_brightness

 

最新のビューワにてレンダリングした画像です。(2015年5月更新)
type74_20150524200329

type74_20150524200240

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中