You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
かねた 先週9/8~9/12の期間中 KLab Expert Camp(KEC)というイベントの第二回目が開催されていて、それにメンターとして参加していました。 当日の様子はハッシュタグ「#KLabExpertCamp」を追ってもらえれば確認できます。 twitter.com 参加者の方々にめちゃくちゃ刺激を貰えていた5日間でしたので、終了して数日たってますが未だにロスを感じています。 皆さんとMeetで会話しながら作業するのはとても楽しかったですし、僕自身も色々と学びになることが多くてよい経験となりました。 KLab Expert Camp(KEC)とは KECは、技術的に深いテーマに取り組んでいる学生の発掘・育成を目的とした KLab の新しいインターンの取り組みです。 第一回目当時の様子や、どういった経緯で開催されたかといった内容は以下の会社のブログに詳細に書かれているのでよかったら
Reflection Probeを適用するシェーダの書き方です。 ここではReflection Probeの仕組みは割愛し、シェーダ内での取り扱いについてのみ書きます。 Reflection Probeについては別の記事で書きます(17.07.10 書きました -> 関連からリンク)。 キューブマップを取得する まずはReflection Probeによってレンダリングされたキューブマップを取得してみます。 Unityではunity_SpecCube0というキューブマップが定義されており、次のように使われることが決まっています。 Reflection Probeの影響範囲内である場合にはReflection Probeによるキューブマップが入ってくる それ以外の場合にはLighting WindowのEnvironment Reflectionで設定したキューブマップが入ってくる 上記を踏
これは VRC非公式 のドキュメントです。 VRCSDK2バージョン 2020.04.17.11.34 に基づいて記載されています。 はじめに VRC の Unity2018 アップデートと同時に、アバターアップロード時に次のような警告が出るようになりました。 A Material on this avatar has custom shader keywords. Please consider optimizing it using the Shader Keywords Utility. 直訳すると、 このアバターに使われているマテリアルには独自のシェーダキーワードが含まれています。 Shader Keywords Utility を使用して最適化することを検討してください。 つまり「独自のシェーダキーワード」なるものが使われているので Shader Keywords Utility
水面やワイングラスなどを作る時、 透明シェーダを当ててリフレクションプローブで反射を出しますよね。 しかし、それだけでは全くそれらしく見えません。 厚みのないガラス窓ならそれで十分ですが、厚みを感じさせたい場合は 屈折表現を入れる事でグッとクオリティがアップします。 背景の画を取得する ゲームエンジンにおける屈折は、プリレンダーのレイトレースのように、 まともに計算をして表現するものではありません。 背景の画をオフセットさせることで、屈折しているかのように見せるのです。 Unity のシェーダーではオブジェクトの背景の画を、テクスチャとして簡単に取得することができます。 SubShader { Tags { "Queue" = "Transparent" "RenderType" = "Transparent" } GrabPass {} CGPROGRAM sampler2D
今回はGrabPassをおさらいします。 GrabPassとは、すでに描画されている画面ををテクスチャとして扱えるというものです。(まちがっているかも...) すでに描画されている背景をゆがませたりといった面白い表現が可能になります。 参照: docs.unity3d.com tsumikiseisaku.com 勉強段階で知った機能なのでまだ実践では使っていません。ですので軽く試しておわりにしようと思います。 コード Shader "Unlit/GrabPass" { Properties{ _Texture("Texture",2D)="white"{} _Float("float",float) = 1 _Color("Color",Color) = (1,1,1,1) _Range("Range",Range(-10,10))=0.5 _Vector("ector",Vector)
シェーダはいろんなことができます。Geometry Shaderで好きな場所にポリゴンを出したり、Fragment Shaderでポリゴンではない方法で物体を描画したり。 その中でも特に「メモリにデータを保存して計算を回す」話について書きます。これは実質好きなプログラムを自由に書けるという話です。変数の保存とか。 概ねVRChatにおける話を書きますが、まぁ普遍的な状況と大して違いはないと思います。 読み飛ばしながら必要なところだけを読むのを推奨します。あと修正/意見などあればtwitter (@phi16_) まで。 全体構造 プログラムには入力と出力があります。VRChatに於いては或る計算の最終的な出力としては当然「視界に映るモノ」ということになりますが、それを生み出すための入力、そしてその入力を作り出す計算機など、様々な機構が存在できます。 特に私が計算機と呼んでいるモノは、「何か
はじめに なんかShaderでエモい感じのできてBOOTHで配ったら興味ある人がいたので適当に解説します。 BOOTHはここからどうぞ→Galaxy Shader - Voxel Gummi - BOOTH ぶっちゃけShurikenとか使えば良さそうな気がしますがテッセレーションの勉強がてら座標操作の練習がしたかったんでゴニョゴニョした次第です。 まずはコード全文をペタリ // Copyright (c) 2019 @Feyris77 // Released under the MIT license // https://opensource.org/licenses/mit-license.php Shader "Unlit/Galaxy Shader" { Properties { [IntRange]_Tessellation ("Particle Amount", Range(
2019/03/8~10の3日間、VRChat上でバーチャルマーケット2という大きなお祭りが開催されました。 www.v-market.work バーチャルな出展サークルが一堂に会し、アバターや小物やスクリプトがずらりと展示される、バーチャル空間の巨大見本市、バーチャルマーケットの第2回です。前回より大幅にパワーアップしていたのですが、大きなトラブルもなく、無事終了しました。運営の皆様、他の出展者の皆様、来場者の皆様、お疲れさまでした。 そのバーチャルマーケット2に、今回、出展を行いました(バーチャルミュージアムC, C-S08)。今回の出展の為にサークルを作り、ブースに宣伝とロマンを詰め込んで、Vケット運営に託しました。それがこちらです。 …… #VRChat #バーチャルマーケット pic.twitter.com/xCF8fNMlEj— ソクハ (@Sokuhatiku) 2019年3
はじめに Unity での XR Settings に含まれる Stereo Rendering Method ですが、みなさんは理解されていますか?ちなみに私は理解していませんでした。。 なんとなく マルチパス は遅くて シングルパス にすると速い、しかしながらシングルパスにするにはシェーダの対応が必要、といった知識はあったのですが、では具体的に中で何が起きているのかはこれまで深く見てきませんでした。そこで本エントリでは以下の公式ブログ記事を参考に、両眼立体視系(2 枚のレンダーターゲットが必要とされる状況)の XR でのレンダリング手法の概要を見ると共に、ユーザがシェーダでどういった対応を行わなければならないのか、またそれは何故なのか、といった点を解説していきたいと思います。 blogs.unity3d.com XR レンダリング概要 Unity の公式ブログでは マルチカメラ、マルチ
WebGL WebGL top ブラウザの準備 WebGL を始める前に canvas を知る 3D 描画の基礎知識 レンダリングのための下準備 行列(マトリックス)の基礎知識 頂点とポリゴン コンテキストの初期化 シェーダの記述と基礎 頂点バッファの基礎 行列演算とライブラリ シェーダのコンパイルとリンク モデルデータと頂点属性 minMatrix.js と座標変換行列 ポリゴンのレンダリング ポリゴンに色を塗る(頂点色の指定) 複数モデルのレンダリング 再帰処理と移動・回転・拡大縮小 インデックスバッファによる描画 カリングと深度テスト 立体モデル(トーラス)の描画 平行光源によるライティング 環境光によるライティング 反射光によるライティング フォンシェーディング 点光源によるライティング テクスチャマッピング マルチテクスチャ テクスチャパラメータ アルファブレンディング ブレンド
Shaderはゲーム中に使用する際にロードされ、それが原因でカクつきの原因になる場合があります。それを防ぐために、Unity5から導入されたShaderVariantCollectionの機能を使用し、ShaderのPreloadを行ないます。 公式で説明しているページはこちらになります。 シェーダロードタイムの最適化 ShaderVariantCollectionの機能 読み込みたいShaderとキーワードのリストを保持しています。 キーワードは"#pragma multi_compile"や、Fogのモードの"Linear"、"Exp"、"Exp2"等の同じShaderでも、異なる機能(Variant)を所持していた場合に、Preloadするものを選択する必要があります。 ShaderVariantCollectionの作成方法 "Project > Create > ShaderVa
概要 最近では主流になっている「物理ベースレンダリング」の概要をまとめたいと思います。 物理ベース、と呼ばれることから分かるように、レンダリングする際の色の決定を物理ベース、つまり「光のエネルギーを用いて」表現することを言います。 エネルギーを用いて表現することにより、実際にそこにどれくらいの光が集まっているのか、という点からレンダリングするために、実際の映像のように写実的な表現が可能となります。 (とはいえ、いくつもの近似を重ねているのでやっぱりまだどこか映像感があるのも否めませんが) レンダリング方程式 レンダリング方程式は「エネルギー保存の法則」を基礎に、ある程度光学的に正しい光の状態の近似として方程式を解くものです。 物理ベースレンダリングを勉強しているといくつかの方程式が出てきますが、高速に解く方法だったり、より最適な近似を行うものだったり、といった違いがあります。 ただ基本的に
Part 1, Part 2, Part 3, Part 4, Part 5 We can safely say that Unity3D has made game development easier for a lot of people. Something where it still has a long way to go is, with no doubt, shader coding. Often surrounded by mystery, a shader is a program specifically made to run on a GPU. It is, ultimately, what draws the triangles of your 3D models. Learning how to code shaders is essential if yo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く