タグ

powazonのブックマーク (906)

  • playing with Unity 5's deferred shading pipeline - primitive: blog

    Unity4 の時に書いた自作 deferred shading 用の機能を Unity5 用に再実装しています。その経過の記録です。成果物はこちら https://github.com/i-saint/Unity5Effects Screen Space Boolean ステンシルや ZTest Greater の組み合わせでスクリーンスペースでブーリアン演算をやるというトリック。以前解説したものですが、Unity5 でこれをやるのは苦労しました。 実装の方針として、ブーリアン演算の段階では depth だけを出力し、実際に G-Buffer を書き出す段階では ZTest Equal を使用するように変更を加えた Standard Shader を用います。これは後述のステンシルの制限の回避や、必要なシェーダのバリエーションを最小限にするためです。代償として drawcall の数が増

    playing with Unity 5's deferred shading pipeline - primitive: blog
    powazon
    powazon 2021/04/26
  • deferred shading in Unity - primitive: blog

    Unity は標準で deferred rendering をサポートしていますが、これは light pre-pass とか deferred lighting と呼ばれるもので、deferred shading とはちょっと違います。私が必要としているのは deferred shading の方なので、これを Unity で実装してみました。 https://github.com/i-saint/DeferredShading deferred shading 自体の詳しい解説はここでは省略しますが、 大雑把には render target を複数用意し、ポリゴン描画パスではそれらに法線、位置、diffuse 色などシェーディングに使う情報を格納 (これらは geometry buffer、略して G-Buffer と呼ばれます)、その後 G-Buffer を利用してポストエフェクト的

    deferred shading in Unity - primitive: blog
    powazon
    powazon 2021/04/26
  • rendering fractals in Unity5 - primitive: blog

    Unity5 になってレンダリング機能の柔軟性が大きく増しました。 新たに追加された CommandBuffer により、Unity のレンダリングパスのほとんど任意のタイミングに任意の描画コマンドを差し込むことができるようになりました。また、deferred shading レンダリングパスが新たに追加されました。Unity4 にあったのは deferred lighting でしたが、今度のはリッチな G-Buffer を持ったちゃんとした deferred shading です。 CommandBuffer と deferred shading を併用することにより、Unity のレンダリングパスで用いられている G-Buffer を加工したり、ライティングを独自処理に差し替えたりといったことができるようになります。試しにこれらを用いてフラクタル図形をレンダリングしてみました。 ht

    rendering fractals in Unity5 - primitive: blog
    powazon
    powazon 2021/04/26
  • object space raymarching - primitive: blog

    夏コミ版 exception reboot で用いた、オブジェクトスペースでレイマーチする手法について解説してみます。(ここで言うレイマーチは厳密には sphere tracing のことですが、面倒なのでレイマーチで統一します) アイデア自体は特に新しくも難しくもなく、シーン内に単純なポリゴンモデルを配置し、そのモデルの中でレイマーチを行うというものです。レイマーチにより G-Buffer を生成し、あとは通常通りライティングを行います。 レイマーチについては過去にこの blog でも簡単な入門を書きました。最近では日語でも結構情報が出てくるくらい知名度が上がってきているように見受けられます。 raymarching for games - primitive: blog レイマーチで G-Buffer を生成する手法もしばらく前にこの blog で紹介しました。 rendering

    object space raymarching - primitive: blog
    powazon
    powazon 2021/04/26
  • 【Unity】Surfaceシェーダーとフラグメントシェーダーの違いを軽くまとめてみた - Qiita

    はじめに Unityシェーダーへの理解を深めるため、Surfaceシェーダーとフラグメントシェーダーの違いを軽くまとめてみました。 Surfaceシェーダーを使うとライティングやシャドウを考慮したシェーダーを簡単に書くことができます。 頂点シェーダー/フラグメントシェーダー 複雑なことをやりたい場合はこちらのシェーダー。 こちらはSurfaceシェーダーと比べてコードが複雑になりやすいです。 UnlitシェーダーやImageEffectシェーダーはこちらに含まれます。 両者の書き方の違い 筆者はこれらのシェーダーのどこが違うのかよくわからなかったので、書き方の違いを自分なりに軽くまとめてみました。 主な違い 具体的には以下のような違いがあります。 他にもあるかもしれません。 ・コンパイルディレクティブの書き方の違い ・Passブロックの有無 ・構造体データの書き方の違い ・vertex

    【Unity】Surfaceシェーダーとフラグメントシェーダーの違いを軽くまとめてみた - Qiita
    powazon
    powazon 2021/04/26
    shader
  • 頂点・フラグメントシェーダーで3Dキャラクターの一部の色を変える

    次に、「Materials」フォルダの中に「VertexFragmentMaterial」を作成する。この作成手順は前回までと同じだ。 Shadersフォルダに作成した、VertexFragmentShaderファイルをダブルクリックすると、エディタが起動してコードが表示される。不要なコードを削除して、必要なコードを多少追加して整形したのが、リスト1だ。 Shader "Unlit/VertexFragmentShader" { Properties { _Color("Color", Color) = (1,0,0,1) _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma

    頂点・フラグメントシェーダーで3Dキャラクターの一部の色を変える
    powazon
    powazon 2021/04/26
    shader
  • [Unity]複数のパスを持つShaderを使うと何が起こるかを確かめる - ヨシムネ退屈日記

    powazon
    powazon 2021/04/23
    “UnityShaderの「Pass」について理解を深めるために実験してみました”
  • 15-06-06《半透明ポリゴンの描画順問題[接触篇]》:習慣 不沈空母をつくる - ブロマガ

    これもリアルタイム3DCGでは前回の輪郭線の件同様に不可欠な知識だと思うのですが つかリアル系なら輪郭線はあまり必要ないけどこっちは関係なく重要 、やはり定番すぎるためかあまり言及されてない様なので、ここらでひとつ。 自分がこの件に関して詳しく知ったのはntny氏のローポリでした。最近だとマシシの巻末で言及されてます。 通常、リアルタイムの3DCGはポリゴンを順番に一枚一枚描画する事で表示されています。その描画する順番(描画順)が、半透明な材質やテクスチャを適用したポリゴンにおいてしばしば問題を引き起こす事があります。 ・症例例えばMMDで、ここに半透明のキャノピーを持つ、砂漠を浮いて走る車があるとします。ここにミクさんを読み込んで座席に乗せるとあら不思議、キャノピー越しの部分が消えてしまいます。 【左】砂漠を浮いて走る車。キャノピーは半透明材質を設定 【右】ミクさんを読み込んで乗せる

    15-06-06《半透明ポリゴンの描画順問題[接触篇]》:習慣 不沈空母をつくる - ブロマガ
    powazon
    powazon 2021/04/22
    描画準の丁寧な記事
  • 【UnityShader】ステンシルバッファでマスクをかける #23 - 知識0からのUnityShader勉強

    前回の成果 溶けるようなShaderを制作しました soramamenatan.hatenablog.com 今回やること ステンシルバッファについて理解しようと思います。 www.shaderslab.com 事前準備 Scene上にCubeとQuadを配置し、Quadが手前に来るようにします。 Sceneから見た図 Gameから見た図 ソースコード マスクされるオブジェクト Shader "Custom/stencilObject" { Properties { _MainTex ("Base(RGB)", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Opaque" } Stencil { Ref 1 Comp equal Pass keep } CGPROGRAM #pragma surface surf Lambert

    【UnityShader】ステンシルバッファでマスクをかける #23 - 知識0からのUnityShader勉強
    powazon
    powazon 2021/04/22
    stencilの詳しい説明
  • 異空間から転送されてきたように演出するマスクシェーダ - e.blog

    概要 今作っているコンテンツで、なにもない空間からオブジェクトが転送されてきたような演出をしたいと思い、そのために色々シェーダを書いたのでそのメモです。 以下の画像を見てもらうとどういう効果かイメージしやすいと思います。 今回はこれを実装するにあたって色々ハマったり勉強になったりした点を書いていきたいと思います。 なお、こちらで解説しているシェーダなどについてはGithubで公開しているので動作を見たい方はそちらをダウンロードして確認ください。 github.com まずは方針決め Deferred Shadingだと、最初にMeshをレンダリングして、その後にBoolean演算を行ってくり抜く、みたいなことができるようです。 (↓こんな感じの。みんな大好き凹みTips) tips.hecomi.com ただ、作っているコンテンツがVRなのでDeferredとは相性が悪く、Forward

    異空間から転送されてきたように演出するマスクシェーダ - e.blog
    powazon
    powazon 2021/04/22
    boolean表現の丁寧な記事
  • Unity でShaderの勉強 その3 - Qiita

    Shader楽しい 今日はvertexshaderartというサイトを見つけた。 なかなか面白い。 https://www.vertexshaderart.com/ 法線方向に膨らませるShader Shader "Custom/Test1" { Properties { _Scale ("hoge",Range(0,0.1)) = 0.01 } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" uniform float _Scale; struct v2f { half3 worldNormal : NORMAL; float4 pos :SV_POSITION; }; v2f vert(float4 pos : POSITION , float

    Unity でShaderの勉強 その3 - Qiita
    powazon
    powazon 2021/04/22
    depth周りの丁寧な記事
  • UnityのiTweenを試してみる その3 Scale系 - Qiita

    株式会社ZOOA(ゾーア)のzobです。[@twitter] 弊社はフリーランスや、個人事業主、給料UPを目指している方向けに高単価求人案件配信サイト(ZOB)も運営しておりますので是非ご覧ください! 前回に引き続き、iTweenを色々と試してみました。 今回はScale系のメソッドを試してみました。 検証で使用したUnityバージョンは以下の通りです。 Unity2018.1.0f2 iTween.ScaleTo ScaleToは指定した値まで拡大・縮小アニメーションを行います。 使い方は以下の通りです

    UnityのiTweenを試してみる その3 Scale系 - Qiita
    powazon
    powazon 2021/04/20
    “UnityのiTweenを試してみる その3 Scale系”
  • [Unity]iTweenのアニメーションを停止させるStopメソッドでのタイプ指定方法

    [Unity]iTweenのアニメーションを停止させるStopメソッドでのタイプ指定方法 更新日: 2019/10/18 公開日: 2015/12/30カテゴリー: Unity Stopメソッドで特定のアニメーションを停止させる方法先に、正解のタイプ指定方法から。 例えば、PunchScale()アニメーションを停止させる場合は以下のようにします。 iTween.Stop(gameObject, "punch");第二引数のstring型「type」には「”PunchScale”」とメソッド名をそのまま指定するのではなく、予め用意されているアニメーション形式の文字列を渡します。 他の例で言えばMoveTo()やMoveAdd()なら「“move”」と指定します。iTweenのプログラムコードを見る限り指定できるタイプは以下のようです。 “value”“color”“audio”“move”

    [Unity]iTweenのアニメーションを停止させるStopメソッドでのタイプ指定方法
    powazon
    powazon 2021/04/19
    “iTweenを使っていて「アニメーションを途中で止めたい」、「ループしているアニメーションを止めたい」”
  • Profilerの使い方と最適化の目安の付け方(前編)【Unity】【Unite 2017 Tokyo】【最適化】 - (:3[kanのメモ帳]

    この記事でのバージョン Unity 2017.1.0f3 はじめに 今回は『Unite 2017 Tokyo』の講演の動画を見て、要点をまとめたり、追加で調べたり、 実際に手を動かしたりしながら、記事にもしちゃおうという感じの記事です。 そして、題材にする講演は、「最適化をする前に覚えておきたい技術」です! 講演者:黒河 優介(ユニティ・テクノロジーズ・ジャパン合同会社) こんな人におすすめ ・最適化したいが、何をしてよいかわからず困っている人 ・効率的に最適化を行いたい人 受講者が得られる知見 ・Unity Profilerに関するノウハウ ・最適化の目算、見積もりをする技術 目次 はじめに 目次 最適化とは 最適化の手順 Profilerの基的な使い方 メモリの使用量が多い場合 メモリリーク メモリ使用量が多いのはC#?Unity? Unityのメモリ使用量が多い場合 C#のメモリ使

    Profilerの使い方と最適化の目安の付け方(前編)【Unity】【Unite 2017 Tokyo】【最適化】 - (:3[kanのメモ帳]
    powazon
    powazon 2021/04/18
    メモリリーク
  • 【Unity】Unityでメモリリークを分析するための5つの方法 - LIGHT11

    Unityでメモリリークを分析するための方法をまとめました。 Profilerでメモリが増え続けていることを確認する Profilerでネイティブメモリに乗っているオブジェクト数をチェックする ProfilerのMemoryをDetailedモードにして参照関係をチェックする Memory Profilerでメモリをキャプチャして明らかに数の多いオブジェクトを探す Memory ProfilerのDiff機能でフレーム間の差分を取る 関連 Unity2018.4.0f1 Profilerでメモリが増え続けていることを確認する まずは何はともあれメモリがリークしていることをProfilerできちんと確認します。 Profilerの基的な使い方は次の記事にまとめていますので必要に応じて参照してください。 light11.hatenadiary.com メモリのProfilerはネイティブメモ

    【Unity】Unityでメモリリークを分析するための5つの方法 - LIGHT11
    powazon
    powazon 2021/04/18
    “Unityでメモリリークを分析するための方法”
  • 【Unity】Audioの基本と扱いについて - KAYAC engineers' blog

    今回はAudioの扱い方です。 3Dサウンドについては触れず、社内で扱う事の多い2Dサウンドを前提にして書いていきます。 こんにちは、ソーシャルゲーム事業部所属エンジニアのぴーちんです!!宜しくお願いしますヾ(@⌒ー⌒@)ノ この記事はカヤックUnityアドベントカレンダー2016の17日目の記事になります。 Audioの扱いについて Audioの扱いについて Unityで音を鳴らす仕組みの基 Unityで扱える音声フォーマットの種類について AudioFileとAudioFormatの関係 音声ファイルの品質について AssetPostprocessor 設定例 AudioManager AudioSettings SEとBGMの音の鳴らし方の違い BGM SE AudioMixer 使用例 おわりに Unityで音を鳴らす仕組みの基 Unityの音は AudioClip, Audi

    【Unity】Audioの基本と扱いについて - KAYAC engineers' blog
    powazon
    powazon 2021/04/14
    audio
  • 現代のモバイルゲーム開発者が向き合うべき ディスプレイ事情と、その対応方法

    はじめに 現代では多くの人々がスマートフォンやタブレットを所持し、ゲームを楽しんでいることと思います。 モバイル向けのゲーム市場は大きく、世界では今も多くの開発者たちが iOS / Android 向けの商用ゲームを作っています。 さて、モバイルゲームの開発には、多くの開発者を悩ませるちょっと困った事情があります。 それは ディスプレイが非常に多くの多様性を持っている ことです。 正方形に近い形のタブレットもあれば細長い端末もあり、カメラがディスプレイの中に割り込んでいたり、 OS が専有する領域があったりと様々です。物理的な大きさもバラバラですね。 そのくせモバイル端末はタッチパネルで、ディスプレイに触れる UI になっているのです。 ゲーム開発を生業とする多くのエンジニア / アーティスト / ゲームデザイナーは、 これまでに何度も頭を抱えてきたことでしょう。 稿では、2019 年現

    現代のモバイルゲーム開発者が向き合うべき ディスプレイ事情と、その対応方法
    powazon
    powazon 2021/04/06
    “現代のモバイルゲーム開発者が向き合うべき ディスプレイ事情と、その対応方法”かなりわかりやすい
  • 【 Unity 】 iOS アプリをビルドして実機で実行する手順 | hirokuma.blog

    Unity で iOS向けにビルドして生成したXcodeプロジェクトを使ってiPhoneで動作するアプリケーションのビルド・実行手順について説明します。 iOS アプリのビルドはXcodeで行うのですが、署名に関する設定や実機デバイスの登録などつまづくポイントが多々ありますので、その辺も詳しく解説していきます。 環境構築関連やUnityでのビルド手順はこちらを参照ください。

    【 Unity 】 iOS アプリをビルドして実機で実行する手順 | hirokuma.blog
    powazon
    powazon 2021/04/06
    “iOS アプリをビルドして実機で実行する手順”
  • iOS 版のビルド、および実行手順

    目次 概要 iOS 版アプリケーションのビルド前設定 iOS 版アプリケーションのビルド iOS 版アプリケーションのインストール iOS 版アプリケーションの実行 概要▲ MUN で生成した Unity プロジェクトを iOS 版でビルドする場合の手順について ここでは MUN で生成した Unity プロジェクトについて、iOS 版実行バイナリとして生成し、実行する手順について触れます。 iOS 版アプリケーションのビルド前設定▲ ビルド用のサブウィンドウを起動する まずは実行バイナリを生成するために、ビルド用のサブウィンドウを起動させます。 Unity Editor を動かしている状態で、MacOSX または macOS Sierra 上のメニューから、File > Build Settings... を選んでください。 ビルド用のサブウィンドウで、iOS プラットフォームを選択する

    powazon
    powazon 2021/04/06
    iosのビルド~xCode設定など
  • イベント関数の実行順序 - Unity マニュアル

    Unity スクリプトを実行すると、既定の順序で多くのイベント関数が実行されます。このページでは、これらのイベント関数について説明し、それらがどのように実行シーケンスに収まるかを説明します。 スクリプトのライフサイクルの概要 以下の図は、Unity がスクリプトの生存期間中にイベント関数を順序付け、繰り返す方法をまとめたものです。 さまざまなイベント関数の詳細は、以下のセクションを参照してください。 最初のシーンのロード エディター 最初のフレームを更新する前 フレーム間 更新順序 アニメーション更新ループ レンダリング コルーチン オブジェクトが破棄される場合 終了する場合 スクリプトライフサイクルのフローチャート ノート ブラウザーの中には SVG 画像ファイルをサポートしないものがあります。上の画像が正しく表示されない場合 (テキストが表示されない場合など) は、Google Chr

    powazon
    powazon 2021/04/04
    関数の実行順序