iPadPro + ApplePencilレビュー

iPadProとApplePencilを購入して少し具合がわかってきたので、Cintiq24HDとの比較をしてみます。 ペンのズレ Cintiqではペン先と表示面の間に結構な厚みがあり、調整しても1mm以上ズレます。ペンの傾きによってもズレ量が変わります。 ApplePencilではそうい…

Ray-Based TemporalReprojection for ScreenSpaceReflection

概要 Stochastic Screen-Space Reflectionsでは、サンプル数を増やすためにTemporalReprojectionが使われています。 しかし普通のTemporalReprojectionを使うと、平行移動時に歪みが発生してしまうので、特別なReprojectionをしているようです。 この資料の…

ゲームグラフィクスアルゴリズム資料一覧

(最終更新:2015/09/27) ゲームグラフィクスに興味のある人向けに資料を分類して集めました。 新しいの見つけたら増やしたり分類し直したりします。※以下は応用的な内容なので、復習も兼ねて基礎的なアルゴリズム(CG数学、パイプラインとかシャドウマップ…

ステレオレンダリングの効率化

自分で計算しようかと思ってましたが、すでに考え付いてた人がおりましたので、ただの紹介です。When there's no need to render twice | Stereoscopic 3D | Oculus VR Forums 平均的なIPDの場合、52m以上離れると差が1ピクセル未満になるようですので、左目…

Unityでドット絵シェーダ その3

このコンテンツは、『ユニティちゃんライセンス』で提供されています 前回のドット絵シェーダはスクリプトからドット粒度を変えられるようになりましたが、 ドットの粒度が画面全体ですべて同じになってしまうという特徴(欠点)がありました。 これではカメ…

Unityでドット絵シェーダ その2

このコンテンツは、『ユニティちゃんライセンス』で提供されています Unity5のフリー版が発表されましたね。 Unity4の無料版では使えなかったImageEffectが使えるようになっていますので、かなり表現の幅が広がったのではないかと思います。 というわけで前…

Unityでドット絵シェーダ

このコンテンツは、『ユニティちゃんライセンス』で提供されています Blenderでドット絵シェーダを作っている方がいましたので、Unityで実装方法考えてみました。 ドット絵シェーダー v1.0 - 3Dモデルをドット絵風に描画するシェーダーが公開!試行錯誤した…

Unityシェーダ入門 #006 FowardRenderingでの影

UnityのForward Renderingでは1つのDirectional Lightからのみ、リアルタイム影を落とすことが出来ます。影をカスタマイズしたい場合があるので、処理の流れをまとめてみました。 1. シャドウマップを生成します。 QualitySettingのShadowCascadesによって、…

LPV(Light Propagation Volume) メモ

UE4のリアルタイムGIは重量級のSVOGI(SparseVoxelOctreeGI)ではなく、処理の軽いLPV(LightPropagationVolume)に変更され実装されているようです。 (UE4を採用しているFableLegendsのGI実装→Blog - Latest News from Lionhead : Dynamic Global Illumination …

リアルタイムレンダリング最初から その1

次世代機も出たタイミングで自分自身の知識の整理も兼ねて、レンダリング手法について何回かに分けてなるべくわかりやすくまとめてみます。 1.何もない世界 ゲームの世界には何も存在していませんので、何も見えません。 真っ黒なディスプレイが表示されてい…

2014年抱負

ああもう2014年になってしまいました。去年から始めたブログで、これまでは技術的なものがメインでしたが、Twitterでは書ききれない長文など、必ずしもUnityやCGに関係ないものも書いていこうかなと思います。 それでは今年の抱負です 1.イラスト描き 当初は…

UnityでOIT(Order Independent Tranceparency)

通常半透明オブジェクトをレンダリングする際には、ソート(奥から手前に向かって)が必要になります。しかし、Unityではオブジェクト単位でのソートはしますが、ポリゴン単位でのソートは行いません。(Unityに限った話ではありませんが) 従って、正しく半…

Unityシェーダ入門 #005 Multiple Render Target

以下はUnity4.3.0f4、DX11で行っています。 1回のレンダリングで複数の値を出力するMRT(MultipleRenderTarget)をやってみます。手順は1.複数の値を出力するシェーダを作成する(SurfaceShaderではなく、展開されたシェーダじゃなきゃ駄目っぽい。やり方が今の…

Unityシェーダ入門 #004 Replaced Shader

通常ユーザが編集するSurface Shaderは、画面上に見える部分の色や形を変えることが出来ます。しかし、シェーダが使われるのは直接画面に見える部分だけではありません。1.シャドウマップレンダリング用シェーダ(影を落とすためのシェーダ) 2.影かどうか判…

Unityでの半透明オブジェクトの描画順序の変更

ガラスなどの半透明オブジェクトの内側に、さらに半透明のオブジェクトなどがある場合に、Unityが描画順序を正しくソートしてくれない事があります。正しい描画順序が予め決まっている場合(例えばガラスビンの中の液体など)は、シェーダーを少しカスタマイ…

ZBrushでのテクスチャ作成メモ

Blenderで作成したモデルのテクスチャをZBrushを用いて作成する。 Blender 1.モデリング 2.UV展開(Smart UV Project機能) 3.OBJ形式でモデルをエクスポート ZBrush 4.Toolにインポート5.Tool > TextureMap > CreateのNew From~でテクスチャ作成 (解像度はTo…

Unityシェーダ入門 #003 #pragma debug

Unityシェーダ入門3回目です。 今回はUnityが標準で作成するサーフェイスシェーダと、頂点シェーダ、フラグメントシェーダの関係を説明します。 #pragma debug 前回説明したコードの中に#pragmaというのが有りました。これはコンパイラに命令を出すためのキ…

Unityシェーダ入門 #002 サーフェイスシェーダ

Unityシェーダ入門2回目。 前回は大まかなグラフィックス処理の流れを説明しましたので、今回からソースコードを出して、具体的な内容に入っていきます。 プログラマブルシェーダ 前回紹介した頂点シェーダ、ラスタライズ、ピクセルシェーダですが、この中で…

Unityシェーダ入門 #001 グラフィックスパイプライン

これからUnityのシェーダについて、1から学べるように書いていきたいと思います。 ・グラフィックスパイプライン 画面に3Dキャラクターなどのモデルを表示する際、最初の材料としてポリゴンを受け取り、いくつかの流れ作業を経た最終結果として、ディスプレ…