実践ドット絵シェーダー その2 - チラつき抑制編

これの続き。 mizuooon.hatenablog.jp

今回は、静止画だと綺麗に見えるけど動かすとなんか 3DCG っぽさあるよねというのを改善したい。

(実装バグってたので結果の動画を修正 @7/30深夜)

続きを読む

A Radiative Transfer Framework for Spatially-Correlated Materials

[1805.02651] A Radiative Transfer Framework for Spatially-Correlated Materials

f:id:mizuooon:20180605162830p:plain

SIGGRAPH 2018 の論文。

ボリュームレンダリングに使用する放射輸送方程式 (RTE) は媒質内の粒子が空間的に相関性のない配置をしていることを前提としていたが、 実はこの粒子の空間的な相関というのはボリュームの見た目に大きな影響を及ぼす。 この論文では、 粒子間の空間的相関性を考慮した RTE は Generalized Boltzmann Equation (GBE) として他分野で提案されていたものを レンダリングフレームワーク上で適用できるように拡張し、 粒子間の空間的相関性を考慮したボリュームレンダリングを可能にすることを目的としている。

続きを読む

実践ドット絵シェーダー

f:id:mizuooon:20180602191044p:plain:w200 f:id:mizuooon:20180602175242p:plain:w280

  • はじめに
  • 先行事例と課題
  • 陰影と色彩
  • シェーディングマップによる嘘陰影
  • 頂点シェーダアニメーション
  • ドット絵的なモデルとアニメーション
  • 結果
  • 問題点とか
  • その他テクニックとか
  • 今後

(追記:続いた)
実践ドット絵シェーダー その2 - チラつき抑制編 - 水鳥コンビナート

はじめに

自分はドット絵が好きだが、描くのはあまり好きではない。 正確に言うと、1,2 枚を描くのはよいがひとつのゲームに使用する大量のドット絵を全部自力で描くのは大変つらい。

例えばアクションゲームかなにかを作る場合を考えてみると、 キャラクターについてだけでも、必要なドット絵枚数は (登場キャラクター数) × (各キャラができるアクションの数) × (各アクションに必要な枚数) × (リテイクのコスト) で相当なものになるのがわかる。

そこでドット絵っぽいものをレンダリングできるシェーダを用いることで横着をしようというのが今回の目標である。 手描きと見紛うクオリティとまでは行かなくとも、 ドット絵っぽいものがヌルヌル大量の枚数で動くという高コストな表現をそこそこリーズナブルにできれば色々面白いことができるだろうと期待している。

続きを読む

SIGGRAPH Asia 2017 勉強会 : Reflectance and Scattering

先日 SIGGRAPH Asia 2017 勉強会 で、 "Reflectance and Scattering" というセッションのまとめについて発表した際の資料です。

続きを読む

Microfacet-based Normal Mapping for Robust Monte Carlo Path Tracing

Unity Labs | Microfacet-based Normal Mapping for Robust Monte Carlo Path Tracing

f:id:mizuooon:20180127185756p:plain

SIGGRAPH ASIA 2017 の論文。 古典的なノーマルマッピングはジオメトリの形状を変えずに法線情報のみに変更を加えるため 物理的に正しくないモデルになっており、物理ベースのレイトレーシングを行った際には種々の問題を引き起こす。 例えば上図のように、 視線方向が法線の裏側になってしまったり 反射したレイの方向がジオメトリの内部に行ってしまったりしてエネルギーロスが起きてしまうなど。 この論文では以上のような問題の解決のため、 マイクロファセットをベースとして古典的なバンプマッピングを置き換えるモデルを提案している。

続きを読む

Separable Subsurface Scattering

Separable Subsurface Scattering

vimeo.com

Computer Graphics Forum 2015 の論文。 サブサーフェススキャッタリング (SSS) を行う際、 表面下拡散のカーネルやら入射光やらが 軸ごとの関数に可分 (Separable) であるという仮定を置くと 高速に計算できてリアルタイムでも SSS できちゃうねという手法。 略称は SSSS でなんだかすごそうな感じがする。

続きを読む

『ボタン同時押し』実装を考える

たまにはゲーム制作っぽいのも書く。

横スクロールの格ゲーっぽいゲームを作る時を考える。 このとき、攻撃ボタンを押すとパンチが出て、下キーを押してしゃがみながら攻撃するとキックが出るようにしたいとする。 面倒なのでコマンド攻撃とか諸々は考えない。

この状態遷移図的なのを描くと以下のようになる。 今のフレームでの状態と押しているボタンによって、次フレームの遷移先状態が決まる。

f:id:mizuooon:20171019215019p:plain:w250

だが、実際作ってみるとわかるがこのまま愚直に実装すると恐ろしく手触りが悪くなる。 というのも、立っている状態からキックを出そうとすると結構な割合で出ないのである。 これはボタンの同時押しに対応した実装になっていないからである。 今回はこれを"いい感じ"にすることについて考える。

続きを読む