「Unityでシェーダを書いてみたいけど何から始めたらいいか分からない…」そんな方のファーストステップとして、レンダリングの基礎知識から学ぶことができる入門講座です。
![Unityシェーダプログラム入門](https://cdn-ak-scissors.b.st-hatena.com/image/square/d3db254ae7c66f8a9c7105ada9b63f0bd86753a0/height=288;version=1;width=512/https%3A%2F%2Fi.ytimg.com%2Fvi%2F8WsWNYNUyeE%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%26rs%3DAOn4CLDfNz9i0c6oOFggTUxFf0oRhNmGxA%26days_since_epoch%3D19854)
「Unityでシェーダを書いてみたいけど何から始めたらいいか分からない…」そんな方のファーストステップとして、レンダリングの基礎知識から学ぶことができる入門講座です。
Unityでシェーダを書いてみたいけど何から始めたらいいか分からない…そんな方のファーストステップとして、レンダリングの基礎知識から学ぶことができる入門講座です。 ▼第2回はこちら https://youtu.be/602VNAdZZe4 ▼『Unityシェーダプログラム入門』の再生リスト https://www.youtube.com/playlist?list=PLKDiJl9C6HD6m5P7COIEFW271-YtDDs2_ ★今回の内容 00:00 プロフィール 00:50 この動画講座でやること 06:27 レンダリングパイプラインとは 09:19 シェーダとは 10:34 SRPについて 12:24 Unity標準パイプライン 14:44 Unityにおけるシェーダの種類 21:24 まとめ ------------------------------ ★動画内で
Unityシェーダプログラム入門 第2回 ▼第1回はこちら https://youtu.be/8WsWNYNUyeE ▼第3回はこちら https://youtu.be/eEnz-OPO6T4 ▼Unityシェーダプログラム入門の再生リスト https://www.youtube.com/playlist?list=PLKDiJl9C6HD6m5P7COIEFW271-YtDDs2_ ★今回の内容 00:00 OP 00:07 ShaderLabとは 00:38 シェーダを書くエディタについて 01:25 今回の解説用シェーダを確認 02:27 Shaderブロック 03:33 Propertiesブロック 14:10 SubShaderブロック 22:25 Passブロック 23:30 まとめ ------------------------------ ★動画内で紹介した
floatの値が0から1の範囲内ならA、範囲外ならBを返す処理が欲しかった。 通常であればこのようにif文で作ることができます。 if (x >= 0.0 && x <= 1.0) { return A; } else { return B; }しかし、シェーダにおいてはif文を使ってしまうとGPUの並列処理を阻害することになり、パフォーマンスが大きく落ちます。 そこでif文を使わない方法を考えることにしました。 結論だけ見たい方はこちら 方針最初に思いついたのはこれです。 int isInRange = 1 - (int)(abs(x - 0.5) + 0.5);abs(x – 0.5)のところで絶対値が0.5に満たない場合は、+0.5しても1にならないので、int型にキャストすることで0か1に分けることができます。 最後に書きますが0か1に分けることでlerpを使用して目的の値を取得で
この記事ではUnityにおけるシェーダプログラムの読み方・書き方を解説します! その中でもUnity特有の機能であるShaderLabと、頂点シェーダ・フラグメントシェーダというものを中心に扱っていきます。 なお現在はShaderGraphなどのビジュアルエディタを利用することでシェーダプログラムを書かなくてもシェーダを作ることが可能です。 そんな時代ですがシェーダプログラムを読み書きできるようになっておくメリットも大きいので、今回はあえてビジュアルエディタについては一切取り扱いません。 Unityでシェーダの使い方は分かるけど、書いたことはないシェーダを編集しようと思ってファイルを開いたものの、ナンモワカランC#など、他のプログラムはある程度分かる(C言語が分かるとGood)ShaderGraphに対応していない環境(VRChat等)のシェーダを書きたい
どんなシェーダというのは書きませんが... フラグメントシェーダ(ピクセルシェーダ)内で、 floatの値(例としてx)が0〜1ならA、それ以外ならBを返す処理が欲しかった。 通常なら、 if(x >= 0.0f && x <= 1.0f) { return A; } else { return B; } これで終了なのですが、ピクセルの分だけループするので条件分岐を使うのは避ける必要があり... 小難しいことを考えるのが苦手な僕は、 迷った。 まず辿り着いたのがxを-0.5した絶対値を四捨五入する方法 int isInRange = 1 - (int)(abs(x - 0.5f) + 0.5f); abs(x - 0.5f) のところで絶対値が0.5に満たない場合は、+0.5しても1にならないので、 int型にキャストすることで0か1に分けることができます でもこれ、 abs関数の中でi
HITとは? NEXONが出してるスマホゲームです。UE4製で綺麗なグラフィックのアクションゲームです。 mobile.nexon.co.jp ログイン時のエフェクトってどんなの? 実装方針 まずこんな画像を用意します。 こういうのはパーリンノイズが向いてる気がするので、パーリンノイズで生成しました。 色を高さと見なして、こんな風にしたらそれっぽいのができそうですね! (図は Processing で生成しました) EffectVisualize.pde · GitHub 実装 シェーダの全体像です。 Shader "Custom/LoginEffectShader" { Properties { [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {} _MaskTex("Mask Texture", 2D) = "whi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く