おもちゃラボ

Unityで遊びを作ってます

シェーダ

【OpenGLでゲームを作る】シェーダって何?GLSLへの第一歩

前回はダブルバッファリングとFPSについて説明しました。nn-hokuson.hatenablog.comそろそろ画面に図形の1つでも表示したいところですが、OpenGLのプログラムだけでは画面に絵を出すことはできません。絵を出すにはシェーダを書く必要があります。そこで、…

【Unityシェーダ入門】フォン鏡面反射で金属っぽくしてみる

前回はライティングの基本となるランバート拡散照明モデルを紹介しました。今回は、ランバート拡散照明モデルを応用した、フォン(Phong)鏡面反射モデルをUnityを使いながら紹介します。フォン鏡面反射は反射光を再現した照明モデルで、金属のような質感の…

【Unityシェーダ入門】ランバート拡散照明モデルを試す

今回はUnityのライティングとシェーディングのお話をしようと思います。シェーダとは名前が示すとおり「影」をつけるための技術です。影の付け方で、様々な質感や見た目を表現できます。上の画像は左からランバートシェーダ、フォンシェーダ、トゥーンシェー…

【Unityシェーダ入門】テクスチャをブレンドして自然な地形を表示する

例えば草と土、土とレンガ、など複数のテクスチャをうまい感じにブレンドすることで、自然な見た目の地形表現ができるようになります。Photoshopで作成しても良いのですが、リアルタイムに変化させたい場合や、ステージを見ながら調整したい場合はシェーダを…

【Unityシェーダ入門】uvスクロールで水面を動かす

シェーダを使ってテクスチャを動かすことで、水面を表現してみます。テクスチャを動かせれば水面だけではなく、滝や川など様々なものを表現できるようになります。今回はテクスチャを動かすために、uvスクロールという方法を使います。今回の内容は次のよう…

【Unityシェーダ入門】ステンドグラスのシェーダを作る

前回に引き続きテクスチャを表示するシェーダを作成しましょう。前回はテクスチャを表示するだけの基本的なシェーダでした。nn-hokuson.hatenablog.com今回は、もう少し発展させてステンドグラスのような見た目のシェーダを作ってみましょう。実行結果は次の…

【Unityシェーダ入門】テクスチャを表示する

ここまでドラゴンの3Dモデルを使っていろいろなシェーダを作ってきました。いい加減ドラゴンも飽きてきたので、今回はテクスチャを使ったシェーダを作ってみましょう。最終的な見た目は次の図のようになります。 シェーダを作る下準備 今回もベースとなるプ…

【Unityシェーダ入門】リムライティングのシェーダを作る

前回は氷のような中央部の透明度が高く、周辺の透明度が高いシェーダを作成しました。nn-hokuson.hatenablog.com今回は前回作った氷のシェーダを利用して、背後から光が当たったようなリムライティングと呼ばれるシェーダを作ってみましょう。 リムライティ…

【Unityシェーダ入門】氷のような半透明シェーダを作る

前回はオブジェクトを半透明にするための方法を紹介しました。オブジェクトを半透明にするには次の3点をを設定する必要がありました。 Queue alpha:fade SurfaceOutputStandard nn-hokuson.hatenablog.com今回は前回作った半透明のシェーダに、もうひと工夫…

【Unityシェーダ入門】透明なシェーダを作る

前回はサーフェイスシェーダのパラメータをインスペクタから制御できるようにしました。nn-hokuson.hatenablog.com今回はシェーダを使って3Dオブジェクトの見た目を半透明にしてみましょう。シェーダで透明度を扱えるようになるとガラスのような表現や、金網…

【Unityシェーダ入門】シェーダのパラメータをインスペクタから設定する

前回はシェーダプログラムの中で色の情報を直接指定していました。もうすこし、柔軟にパラメータを操作できるようにしましょう。nn-hokuson.hatenablog.com今回は、はじめにC#スクリプトからシェーダ内のパラメータを操作できるようにします。続いてインスペ…

【Unityシェーダ入門】20行から始めるUnityミニマルシェーダ

前回は標準のシェーダを使って何が出来るかをひと通り試してみました。nn-hokuson.hatenablog.com今回は、一歩立ち戻って、最小限のシェーダをみてみましょう。 最小限のシェーダ 下のプログラムが、不要な要素を全てはぶいた最小限のシェーダです。まずは単…

【Unityシェーダ入門】Unityのシェーダで遊んでみよう

Unityのシェーダって、かっこ良い表現ができるらしいけど、難しそう・・・ というイメージがありますよね。実際に、C#のプログラムとかと比べると すこしトリッキィーに感じる部分も沢山あります。ですが、基本的には高校レベルの数学と画像処理の簡単な知識…