この記事の狙い 近年、最新のテレビゲームやVRコンテンツ等で、写実的な3Dグラフィックスは珍しいものではなくなりました。 これらの多くには「物理ベースレンダリング」という手法が用いられています。 この記事シリーズでは、UnityやUnreal Engine、Three.jsなどでCGコンテンツを作った経験がある人を想定し、次のような知見の手助けとなることを目的としています。 物理ベースレンダリングのイメージを掴んでもらう。 物理ベースレンダリングを自分で実装するための情報を提供する。 世の中にある物理ベースレンダリング対応のアセット素材をUnityやWebGLライブラリで活用するのに必要な知識を提供する。 前提(おことわり) あくまで「なんとなくわかりたい人向け」の記事です。ネット上には物理ベースレンダリングについての良記事がたくさんありますが、多くは厳密性を重視しており、数式も沢山あるた
void rtcCommit (RTCScene scene) バッファにセット済みのデータをシーンに登録します.ジオメトリの追加や修正を行ったらレイトレース前に呼び出して下さい.なお例によって第1引数(scene)には既に作成してあるシーンを渡して下さい. レイとの交差判定 まず例として,上図のような始点Roが(0, 0, 20),方向が(0, 0, -1)のレイが三角形と交差するかどうかを判定しましょう.まずはこのようなレイを次のように作成します. /* レイを生成する */ RTCRay rtcray; /* レイの始点 */ rtcray.org[0] = 0.0; // x rtcray.org[1] = 0.0; // y rtcray.org[2] = 20.0; // z /* レイの方向 */ rtcray.dir[0] = 0.0; // x rtcray.dir[
「STYLYにて作品制作したいけれど、どうやって素材を集めればよいかわからない」という方も多いのではないでしょうか。 作品制作に使用する3Dモデルや画像などの素材は自分で作成したり購入するのが一般的ですが、インターネット上には無料で自由に使える素材も存在しています。 そこで今回は、無料で使えるフリー素材をインターネットで探し、STYLYでの作品制作に活用する方法を紹介します。 無料で使える素材とは? ネットで無料でダウンロードできる素材は大まかに分けて、フリー素材・パブリックドメイン・クリエイティブコモンズの3つの種類が存在します。 これらはネット上で混同されたり、誤った解釈をなされていることも多いので注意が必要です。 また、素材によって商用利用の可否が異なりますが、STYLYで作品を作って公開するだけであれば商用利用には当たらないため、この点を気にする必要はありません。 フリー素材 フリ
魚眼レンズの射影方式 ここでは魚眼レンズの射影方式について、数学的にどのように書き表すことができるかを考えます。 直線が楕円になる理由 4つの射影方式のうち、正射影と立体射影に関しては、空間上での直線が画面上で楕円として投影されます。 (等距離射影と等立体角射影については、研究が済んでいないため、図形の形状を特定できていません)。 正射影と立体射影において、直線が楕円になる理由を簡単に説明します。 空間上での直線とSPを結ぶ図形は三角形になりますが、直線が無限に長い場合は平面になると解釈できます。 魚眼の球画面上に投影される図形は、この平面と球面が交差してできる図形であり、言い換えると球を平面で切断したときに発生する図形であると言えます。 球はどのような平面で切断しても、その断面は円になります。よって球画面上に投影される図形は円になると断定できます。 ここから先は各射影方式について見ていき
はじめに 本サイトは透視図法の徹底解説を行うことを目的として開設されました。 透視図法は義務教育課程での履修項目となっているため、おそらくみなさん名前ぐらいは知っているかと思います。 透視図法を使うことで、空想の世界を絵の中で自由に表現できるようになります。 室内から街並みまで、直線が主体の空間であれば、その力を如何なく発揮してくれます。 透視図法は非常に便利なものですが、数学を根拠とした図法のため、 コンピュータとの相性が良い反面、人間がこれを駆使しようとすると、幾多の壁にぶつかります。 当サイトでは理論に重きを置いています。理論を押さえることは重要です。 人体を描くために解剖学を学ぶケースがありますが、 これは表面的な目視観察だけでは習得しえない構造的観点からの人体の構築を目指すからに他なりません。 人々を魅了する絵を描くには膨大な観察と描写の反復トレーニングが必要ですが、透視図法はこ
Cygames エンジニアの森重です。 2018年9月30日(日)に東洋大学で開催されたCG技術の実装と数理 2018に於いて『Introduction to Direct X Raytracing』という発表を行いました。 CG技術の実装と数理は、SIGGRAPHやEurographicsなどで発表された技術論文やコースを自分で実装して、見えてきた課題やわからなかった点を議論して、次の技術研究開発につなげていく研究会です。 当日は、台風の影響で悪天候の中、発表と議論に、お越しいただいたみなさま、ありがとうございました。 はじめに 本発表では、レイトレーシングをCPU, GPU Compute, DirectX Raytracing(DXR)のそれぞれで実装してみた際の検討事項、課題、結果について紹介しました。 以下が発表資料となります。 「DXR を使ったAmbient Occlusio
Stratified Sampling of Spherical Triangles 元論文は、James Arvo, "Stratified Sampling of Spherical Triangles" で、前回のこちらの関連になります。 ushiostarfish.hatenablog.com James Arvo, "Stratified Sampling of Spherical Triangles" は、Spherical Rectanglesよりもだいぶ前の論文で、SIGGRAPH '95 の論文とのことです。Carlos Ureña, Marcos Fajardo, Alan King , “An Area-Preserving Parametrization for Spherical Rectangles” からも当然引用があります。 こちらもやはりモチベーションや達
こんにちは、Unityエンジニアのオオバです。 GLSL Sandboxとは、 言わずと知れた有名なWebサービスです。 GLSLで書かれたシェーダーを即時実行して全世界にブラウザベースで共有できます。 ソースも公開されているためシェーダー教材としても非常に重宝します。 実際にUnityで試してみたい表現が見つかったりするので移植することもありますが、 そもそもUnityはShaderLabという独自のシェーダー言語なので単純にコピペという訳にはいきません。 本記事では移植方法について説明していきます。 →11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら シェーダー言語が違う先ほど説明したとおり、Unityのシェーダーは全てShaderLabで 記述されていて、記述文法としてはCg/HLSLです。 ということで、GLSL SandboxのG
GLSL Sandboxは、ピクセルシェーダをリアルタイムプレビューしながらガリガリ書いていけるサービスです。 適当にいじっているうちに面白い絵が出てくるので、暇つぶしによく遊んでいます。 ピクセルシェーダは万能なので、頑張ればこんな絵も出せるらしいです。 さっそく何か書いていってみましょう! (1)中心位置を合わせる GLSL Sandbox 新規作成した直後です。 デフォルトのコードだと中心位置がズレていてやりにくいので、適当に原点を中心に持ってきました。 ついでに無駄なソースコードを削り落としました。 #ifdef GL_ES precision mediump float; #endif uniform float time; uniform vec2 mouse; uniform vec2 resolution; void main( void ) { vec2 pos = (g
UnityのCompute Shaderで波動方程式のシミュレーションの実装です。 波動方程式に関しては以下の記事を参考にしました。 波動方程式の数値解法 - Qiita using UnityEngine; public class Wave : MonoBehaviour { [SerializeField] GameObject plane; [SerializeField] ComputeShader computeShader; [SerializeField] float deltaSize = 0.1f; [SerializeField] float waveCoef = 1.0f; private RenderTexture waveTexture, drawTexture; private int kernelInitialize, kernelAddWave, kern
2017年度 東京大学理学部 コンピュータグラフィクス論 科目番号: 0510029 日時: 木曜2限 (10:25~12:10) 場所: 理学部7号館007 Introduction to Computer Graphics 2017 (School of Science, Univ. Tokyo) Course code: 0510029 Time: Thursdays, 10:25--12:10 Location: Science bldg. 7, room 007 担当教員 高山 健志 国立情報学研究所 助教 Email: takayama [at] nii.ac.jp 蜂須賀 恵也 創造情報学専攻 講師 Email: thachisuka [at] siggraph.org 安東 遼一 国立情報学研究所 助教 Email: rand [at] nii.ac.jp Lecturer
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く