シェーダーって何だよ
こんにちは、KKです。
今年も残すところあと4ヶ月となりましたが、いかがお過ごしでしょうか。
猛暑かと思えば突然気温が下がってみたり、ゲリラ豪雨が降ってみたりと、嫌がらせとしか思えない天気が続いております。これでは体調を崩してしまう・・・!
涼しい天気になってくれれば近くの公園にでも運動をしに行きたいと思ってはいるのですが、なかなかやる気が出ません。
これは天気のせいなのか、それとも自身の引きこもり体質のせいなのか・・・
昨年より明らかに悪化しているコロナ禍で帰省や飲み会が全く出来ず、恐らく人生で一番つまらない夏になってしまった今日この頃です。
私が一体何をしたっていうんだ、助けてウェザーロイド!
ということで今日の進捗です()
今日の進捗:シェーダーって何だよ
10日ほど前にブログで「それっぽい3Dのプログラム」を作成したことを報告しました。
todayskeyword667.hatenadiary.com
このプログラムに「シェーダー」を設定することで、ホラーゲームっぽいライトや暗闇の表現ができないものかとここ数日格闘しておりました。
そもそもシェーダーは何なのかと申しますと
シェーダとは、3次元コンピュータグラフィックス(3DCG)において、陰影付けや表面の質感や凹凸の設定、各画素の表示色の決定などを行うプログラムのこと。
シェーダ(shader)とは - IT用語辞典 e-Words
とのこと。
DXライブラリでも色々とシェーダーの設定ができるようなのですが、これが中々難しい。先ずDXライブラリで用意されている「スポットライト」で設定すべきパラメータが多い。
スポットライトのコーンの角度や減衰に関するパラメータを設定しなければならないのですが、これを適当にするとライトの描画がおかしなことになってしまいます。
こんな風に ↓
減衰パラメータが小さいために、眩しい感じになってしまいました。
これは個人的にいい感じだと思ったもの ↓
まあどんなライトが適切かは時と場合によるので、何とも言えませんな。
またパラメータの他にも、3Dモデルにおける光の反射は面ごとに行われるため、モデルの面をある程度細分化しておかないとおかしなことになってしまうようです。
そしていい感じのパラメータで設定したスポットライトを前回のプログラムに加えたものがこちら
ホラーゲームのような、それっぽい暗さの見た目になってくれました。
ワクチンの副作用に苦しみながら、何とかそれっぽい見た目の3Dゲームにする所まで進めることができました。
まあまだマップを歩き回るだけのゲー無なのですが。
今日の進捗はこんな感じです、競技プログラミングも精進せねば・・・
ではでは。