CMakeでビルドした実行プログラムのあるディレクトリにリソースファイルをコピーする

やりたいこと CMakeを用いてプロジェクトを管理しているときに、ビルドした実行ファイルと同じディレクトリ(またはそこから相対的に定義されるディレクトリ)に画像データ等のリソースデータをコピーしたいという状況を考える。 リソースファイルは、例えば…

オイラー角による回転行列の表現まとめ

本記事は、その正しさを一切保証しません。特に要出典・要確認等と書かれた箇所は注意が必要です。また、現時点では未完成です。随時追記・更新していくつもりです。 右手系・左手系について 座標系を考えるとき、右手系と左手系のどちらかを用いることにな…

ベクトルによる微分のレイアウト(分子レイアウト記法と分母レイアウト記法)

2つの異なる記法と混乱 ベクトル(や行列)による微分には2つの異なるレイアウトが用いられる。 分母レイアウト記法 (Denominator Layout) 分子レイアウト記法 (Numerator Layout) これらは演算結果が異なるため、意識して用いないとしばしば混乱の元となる…

知覚を考慮した色差 CIEDE2000 とその実装

色差の指標 CIEDE2000 色差、つまり2つの色の距離を計算する方法はいくつかあるが、人間の知覚を考慮した指標である CIEDE2000 を用いるのが良いことが多い。 Color difference - Wikipedia 新しい色差式(CIE DE2000)について。-楽しく学べる知恵袋 | コニ…

macOSでCMakeを使ってビルドする際にQt 5へのパスを渡す

Qt 5をライブラリとして用いるプログラムをCMakeを使ってビルドする際、例えばQt 5 Widgetsを使う場合はCMakeLists.txtに find_package(Qt5Widgets REQUIRED) または find_package(Qt5 COMPONENTS Widgets REQUIRED) などと記述することになります*1。しかし…

等式制約あり最適化問題と拡張ラグランジュ乗数法

拡張ラグランジュ乗数法 等式制約あり最適化問題 *1を解くためのアルゴリズムとして、拡張ラグランジュ乗数法 (augmented Lagrangian algorithm) という手法があります。これは、同じく制約あり最適化問題を扱うための手法であるラグランジュの未定乗数法 (t…

Directional Field (方向場) の種類を整理する

Directional field (方向場)*1 や vector field (ベクトル場) についてのメモです。次の論文を参考にしています。 Directional Field Synthesis, Design, and Processing Amir Vaxman, Marcel Campen, Olga Diamanti, Daniele Panozzo, David Bommes, Klaus …

論文読み: Differential Coordinates for Interactive Mesh Editing (SMI 2004)

以下の論文に関するメモです。 Differential Coordinates for Interactive Mesh Editing Yaron Lipman, Olga Sorkine, Daniel Cohen-Or, David Levin, Christian Roessl, Hans-Peter Seidel International Conference on Shape Modeling and Applications (S…

追実装: Projective Dynamics (SIGGRAPH 2014)

この記事の概要 現在用いられる物理エンジンの多くは position-based dynamics (PBD) [Muller et al. 2007] を基礎としている *1 近年提案された projective dynamics [Bouaziz et al. 2014] は PBD より優れた性質を持っているらしい そこで projective dyn…

最適化計算アルゴリズムCMA-ESのライブラリlibcmaesを使ってみる

CMA-ESについて CMA-ES (Covariance Matrix Adaptation Evolution Strategy) は連続最適化アルゴリズムの一種です。日本語では共分散行列適応進化戦略と呼ばれます。進化戦略に基づいて、目的関数 を最小化する点 を計算するために使用されます。特徴として…

ベクトルや行列による微分の公式

ベクトルや行列に関する微分演算でよく使う式です。小文字ボールド体はベクトル、大文字ボールド体は行列を表しています。 基本 応用(基本の式から導出可能) その他 参考URL Matrix calculus - Wikipedia http://www.colorado.edu/engineering/CAS/courses…

論文読み: From Inspired Modeling to Creative Modeling (The Visual Computer 2016)

はじめに 今回紹介するのは、最近 Springer 社のジャーナル The Visual Computer に掲載された論文です。全体を大雑把に触れつつ、印象に残ったフレーズなどを引用しながらまとめたいと思います。Daniel Cohen-Or and Hao Zhang. From inspired modeling to …

UnityのNative Pluginを作ってC++のコードやライブラリを使う

概要 UnityといえばC#で開発するのが基本ですが、Native Pluginという機能を使えば、他の言語 (C++など) で書かれたコードを呼び出すことができます。今回はじめてNative Pluginを作ってみたので、調べたことなどをメモしておきたいと思います。 C++のライブ…

論文読み: Position Based Fluids (SIGGRAPH '13) その2

実装してみた この記事は過去に書いた記事の続きです: yuki-koyama.hatenablog.comこれまで流体シミュレーションを実装したことが一度もなかったため、一度ぐらいやってみようということで、最近流行りの Position-Based Fluids(のようなもの)の実装に挑…

対話型機械学習 (Interactive Machine Learning, IML) について

普段は Computer Graphics や Human-Computer Interaction を勉強しているのですが、最近は機械学習も少し勉強しています。今回は Human-Computer Interaction とも関わりの深いトピックである「対話型機械学習 (Interactive Machine Learning, IML)」につい…

共分散行列を含む多次元のガウス関数の微分

目的:ガウス関数の微分 共分散行列 (バンド幅行列) を用いて表された多次元 (多変量) で異方性のガウス関数 (多変量正規分布) の微分 (勾配) を考えます。微分したいガウス関数の形は だとします。ただし は正値対称な共分散行列 (バンド幅行列) で、 です…

Multidimensional Scaling (多次元尺度構成法, MDS) の計算方法と実装

Multidimensional Scaling (MDS) について少し勉強したのでメモしておきます。 Multidimensional Scaling とは はじめに 日本語では「多次元尺度構成法」と呼ばれる統計テクニックの一つです。英語版ウィキペディアの記事が詳細です。多次元尺度構成法 - Wik…

日本人研究者によるSIGGRAPH論文

概要 日本人研究者によるSIGGRAPH論文 (2014--2015年分) の情報を以下のページにまとめました。せっかくなので公開します:SIGGRAPH Papers by Japanese ResearchersYouTube動画の埋め込みや著者の個人ページへのリンクも含んでおり、日本人研究者の活躍ぶり…

論文読み: Solid Simulation with Oriented Particles (SIGGRAPH 2011)

今回は古い論文の紹介です。2年前にこの手法を実装したことがあるのですが、そのときにキャプチャした動画もいくつか紹介します。 Matthias Müller and Nuttapong Chentanez Solid Simulation with Oriented Particles SIGGRAPH 2011 研究概要 Position-Bas…

情報検索のための Learning to Rank の概要

この記事では以下の文献の第一章の最初の方をざっと読んで得た知識を簡単にメモしています。事前に断っておくと、私は情報検索 (Information Retrieval, IR) の専門家でもありませんし、機械学習の専門家でもありません。誤り等ありましたらコメント欄にてご…

"Character Animation" セッション論文紹介 (SIGGRAPH Asia 2014)

来週月曜日(2014年12月15日)、私が所属する五十嵐研究室にて SIGGRAPH セミナーが行われます。 SIGGRAPH Asia 2014 - SIGGRAPH Seminarこれは、SIGGRAPH Asia 2014 で発表された全ての論文について、1セッションあたり15分以内にまとめて参加者同士で紹…

空の Subversion レポジトリを git-svn しようとすると失敗する

まだコミットが存在しない空の Subversion レポジトリに対して $ git svn clone [レポジトリの場所]を実行すると、clone 自体やその後の commit は成功するものの、push しようとすると Unable to determine upstream SVN information from working tree his…

論文読み: Computational Design of Linkage-Based Characters (SIGGRAPH 2014)

4次元プリンタ 私が勝手に提唱している「4次元プリンタ」という概念があります。(ありふれたアイデアなので別の人が全く同じアイデアを全く同じ言葉で既に発表しているかもしれません。またもっと的確な言葉もあるでしょうが、分かりやすいのでこの言葉を…

論文読み: Projective Dynamics: Fusing Constraint Projections for Fast Simulation (SIGGRAPH 2014)

Sofien Bouaziz, Sebastian Martin, Tiantian Liu, Ladislav Kavan, Mark Pauly Projective Dynamics: Fusing Constraint Projections for Fast Simulation SIGGRAPH 2014 全体の概略 物理シミュレーションのための time integration の手法として、projecti…

"Game & Design" セッション論文紹介 (SIGGRAPH '14)

2014年7月29日に私の所属する五十嵐研究室が主催の SIGGRAPH 勉強会があります。 SIGGRAPH 2014 Preview Seminar この勉強会では各々が担当するセッションを事前に決めておき、当日10分程度で担当セッションの論文内容を発表し合います。1日で全ての論文…

SIGGRAPH '14 におけるクラウドソーシング論文

はじめに クラウドソーシングに関する論文は CHI や UIST などの HCI (Human Computer Interaction) の国際会議や、AAAI などの機械学習の国際会議を中心に、この数年間で急激に増えています。近年ではコンピュータグラフィクスの国際会議である SIGGRAPH で…

論文読み: Unified Particle Physics for Real-Time Applications (SIGGRAPH '14)

ゲーム物理エンジンに関する技術の集大成的論文 今回取り上げるのは今年の SIGGRAPH で発表される予定の論文です。正式な publication date は7月ですが、既に著者らがウェブ上で論文と動画を公開しています。 Miles Macklin, Matthias Müller, Nuttapong C…

RBF 補間 (Radial Basis Function Interpolation) の概要と実装

はじめに RBF 補間とは RBF 補間とは、RBF (放射基底関数, radial basis function) を用いて入力となる散布データ (scattered data) の値を補間することです。または、与えられた散布データを元に非線形な関数をフィッティング (または近似) することだと考…

優決定系の線形方程式の最小二乗解を与える際の式変形(導出)

注意:本記事では厳密でない表現を随所に用いています。 優決定系の線形方程式 大雑把にいって、優決定系 (overdetermined system) とは変数の数に対して制約式が多く、解が存在しないような問題です。線形方程式 において、行列 が縦長の場合が優決定系と考…

自分の研究の意義について考えてみる

今回は少し (かなり) 大それたタイトルを付けてみました。内容は大したことないです*1。私は本記事執筆時点で修士課程の学生で、プロの研究者からはほど遠い研究初心者なわけですが、初心者なりに、日々研究について考えています。2 年ほど研究活動をしてみ…