2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
全31件 (31件中 1-31件目)
1
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/Summed-Area Tableエリア総和テーブルです。テクスチャサイズと同じだけの配列を作りテクセルの総和を計算してつめていきます。このテクスチャの総和で平均した画素の色で面積で割った値を使います。このような計算を行うことによって正確な平均値が取得できるということですね。最近はピクセルシェーダーでこの処理をリアルタイム(?)で処理できますので全画面フィルタなんかでは良いですね。まあボックスフィルタあるいはガウシアンフィルタとこのエリア総和テーブルが御三家(?)かなぁ。単に俺がそれだけしかしらないだけかも。
2005年12月31日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/ミップマップのぼけすぎ問題を解決する手法としてはまず Ripmap です。こいつは(Hewlett-Packardが作ったものです。)ミップマップは正方形でサブテクスチャを作っていたのですが Ripmap では長方形のサブテクスチャを作り同時に4つのサブテクスチャから補完することによりより正確にテクスチャを計算しようという話です。なかなかよく考えられた手法になっていますね。
2005年12月30日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/さらにミップマップの話。ミップマップのテクスチャのLODを決める値 d に関してですがこいつにLODバイアスとして値をいじることができます。ミップマップテクスチャのピラミッドを早くあがるなら d を大きくしてやればよいです。全体的にボケ気味になるのかな。ここまでは私いじったことが無いのですががんばればシーンに応じた値を作ることもできますね。ミップマップの欠点としてはぼけすぎることです。この問題を解決する方法を次回以降で探っていくとします。
2005年12月29日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/ミップマップの話の続き。フィルタリングを良くしてもガンマコレクションを行わないと明るさがだんだん変わってきます。たいていは遠くにいけばいくほどテクスチャが暗くなってしまいます。フィルタリング同様にガンマコレクションも行う必要があります。そしてミップマップのどのレベルのテクスチャが適用されるのかという話。OpenGL の場合はλと呼ばれるLODの値を持っていますがこれをどうやって求めるのでしょうか。1つとしてはピクセルのセルの長方形を構成する長い辺をピクセルの占有面積の近似として使う方法。別の方法としては∂u/∂x, ∂v/∂x, ∂u/∂y, ∂v/∂y の差の絶対値のうち最も大きいものを近似計算として使う方法です。これはすなわちスクリーン座標軸に対してテクスチャ座標の変化量の差になります。ミップマップのテクスチャのLODを決める値を d とすると(u,v,d)の情報で使用するテクスチャを決めることになります。値dは整数ならばそのレベルのサブテクスチャを使えばよいですが小数部分があればミップマップの2つのレベルの間で補完を行います。これをトライリニア補完と呼びます。ミップマップレベルの変わり目がなめらかになります。
2005年12月28日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/ミップマップの話。"Mip"は multum in parvo の意味でラテン語の多くのものを小さい場所に入れるという意だそうです。ミップマップ縮小フィルタはオリジナルのテクスチャとは別により小さいサイズのテクスチャを作っておきそのテクスチャをテクセル・ピクセル比を考え最適な時に使います。ミップマップのテクスチャはボックスフィルタとかで作られますがこいつはぼけるのであんまりよくありません。(ぼかしたいときには良いのですが)ガウシアンとかもう少しましな方法を使った方が良いでしょう。
2005年12月27日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/そして厄介な縮小フィルタの話。1ピクセルの中に複数のテクセルがありどの値をとれば綺麗なのかは難しい問題ですなんせ情報が大量に失われるわけですから。・ピクセルに該当するテクセルの中央の値を取得する。→簡単・高速ですが近辺の情報は全て失われ不正確で当然汚い。・近くの4つのテクセルの補完。→これは多少マシ。4つ以上のテクセルの影響を受けている場合はとたんにエイリアシングの問題が発生。さてこの辺までは簡単なのですが問題山積み。なので次回以降はもう少しマシになる手法を考えます。
2005年12月26日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/まずはテクスチャが拡大される時の話。縮小よりはだいぶ楽。テクスチャが拡大されると当然ガタガタになります。なのでそれを避けるあれこれについて考えます。・単純にもとのテクセルの近くの値を取ってる方法。→ガタガタですが簡単・高速・周りの4つのテクセルを補完する方法。→バイリニア補完。綺麗になりますけどちょっとぼけます。まあ拡大はこんな感じで簡単。というかあまり考えること無し。
2005年12月25日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/よく使われる2Dのイメージのテクスチャマップの話。テクスチャサイズには大抵2のn乗じゃないといけないなどのハード的な制約がある。そして貼った部分がカメラに凄く近かったり遠かったりするとテクセルの1つがピクセルの1つにまったく対応しなくなり諸々面倒なことが起こります。
2005年12月24日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/テクスチャブレンディングの話。replace:サーフェイスの色をテクスチャカラーで置き換えdecal:テクスチャのアルファがあれば下の色とブレンドmodulate:サーエイスの色とテクスチャの色を混ぜ合わせる全シェーディングをテクスチャでモジュレートすると変なこともある。なぜならディフューズとスペキュラーの両方にかかるので。なので別々にかけることもあります。
2005年12月23日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/テクスチャの歪みの話。頂点色はグーロー補完されるがテクスチャ座標は線形には補完されない。パースぺクティブコレクションの話は先で説明するとのこと。テクスチャイメージにはRGBAの値を入れ。これは色情報以外にもワーピングなんかにも使用。というか最近は便利な汎用メモリ的な扱い多数。というか使えそうな適当な入れ物がテクスチャしかないといっても良いかも。ジオメトリごとに他のジオメトリとの接続情報やユーザーデーターを埋め込めたりとか色々できればよいけど、今あるどのAPIもそこまでは整っていないね。将来的には変わりそうですけど。まあとにかくジオメトリ情報を書き換えるのに便利なのがテクスチャ。ぐらいに思っていたほうが良いかも。
2005年12月22日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/任意の3次元の形状に2次元のテクスチャを張るのは難しいという話。円錐なんかにはまともに貼れずゆがみが生じる。なのでこのあたり諸々研究されております。まずは3次元のテクスチャを貼れば楽ですよという話。これで継ぎ目とか歪みの問題は避けられる。テクスチャをイメージで持っていると楽ですがリソース的に厳しい。なのでノイズ関数なんかを使えば大理石とか木とかいい感じにできます。この辺はGPUでリアルタイムにできつつあります。
2005年12月21日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/なんだかこの章長いのですがここではテクスチャのラッピングモードの話。OpenGL ではラッピングモードですが DirectX ではテクスチャアドレッシングモードと読んでいます。ラップってイメージのものばかりではないのでアドレッシングモードと DirectX 作った際に名前変えたのですかね。・wrap(DirectX),repeat(OpenGL):いわゆる繰り返し。・mirror:繰り返しですが反転しつつ・clamp(DirectX),clamp to edge(OpenGL):イメージの端を伸ばす。影とかでよく使います。(端まで影を書いてあるとびろーんと伸びるのもよくある不具合)・border(DirectX),clamp to border(OpenGL):デカールテクスチャを貼るのに便利ということでこの辺は図を見つつ理解するだけですね。
2005年12月20日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/テクスチャ座標は(u,v,w)あるいは(s,t,r,q)などであらわされます。qはここではスポットライトのような投影なんかで使います。プログラマ側でテクスチャ座標をごちゃごちゃやるときはテクスチャマトリクスを直接作ってUVスクロールやら影の投影とかですかね。なんかつい最近仕事でそんなことやったばかりでなんだかタイムリーです。
2005年12月19日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/そして実際に数値を計算しつつ投影関数とテクスチャ参照を行いモデルのディフューズ色を書き換えるところまでをじっくり扱う。投影関数自体も実は結構難しい。普段はモデリングソフトがやってくれるので案外見過ごしかちかもしれません。テクスチャーの張り方ってかなりたくさんありますしなかなか難しいことになっているのです。テクスチャ座標を自動生成することもありますしもう大変なことこの上ないです。ここでは・球面投影・円筒投影・平面投影なんかを扱ってますね。ゆがみがどうとか言い出すと理屈が大変なのでフィーリングでうまく張るしかないような気がする今日この頃。
2005年12月18日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/かなり詳細にテクスチャ生成プロセスについて扱います。そもそも現在のパイプラインではまともに扱われていないようなものも扱いますとのこと。テクスチャ生成プロセスの開始はワールド座標のある点から。 projector 関数が適用されパラメータ空間に変換されこれがテクスチャのアクセスに使用されます。これをマッピングといいます。パラメータ空間からテクスチャ空間への変換を調和変換と呼びます。この値をテクスチャの参照に使用します。さらに値変換関数をかけることもあります。かなり細かく見ていますがここまで考えればありとあらゆることができます。
2005年12月17日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/諸々あり4章を飛ばして5章を先に読むことにします。5章はテクスチャの話。ここではイメージや関数などでテクスチャ位置を装飾する話全般です。単に絵を張るだけではありません。まずは非常によくあるブロック塀の例。・ブロック部とモルタル部のマテリアルが一緒だとおかしい→スペキューラー変える・そもそもブロック部が平らなのがおかしい→バンプマッピングという感じ。まずは基本からです。
2005年12月16日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/そしてまとめ。諸々参考文献が挙げられています。・The Geometry Toolbox・Mathmatical Element for Computer GraphicsSIGGRAPH の論文も紹介されていますのでこの辺もそのうちあたりますか。しかしこの本リファレンス多すぎなので一生楽しめそう。
2005年12月15日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/そして画角の話。これは結構重要。理解していない人多いけどスピード感出したりとか良く使えます。ここではテレビと観測者の距離での物理的な画角の話があってなかなか面白いです。画角を変えるとズームしたり立体感を強めたりとなかなか面白い効果が得られます。OpenGL と DirectX ではマトリックスの扱いや座標系のとり方が違いますのでその辺の注意も書かれています。この辺ははまりやすいところ。
2005年12月14日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/透視投影変換の話。図にあるように相似な三角形を考えると良い。ω除算が入りますね。まさに同時座標まんまな感じです。ビューフラスタムを定義します。非対称なビューフラスタムは立体視やCAVEモデルで使います。実はこの辺詳しく知りたいのですがあんま書かれていないね。まあ他をあたるか。赤青立体は GLUT のサンプルにありましたね。
2005年12月13日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/引き続き平行投影の話。右手系と左手系の変換に鏡像マトリックスを使う。この辺は DirectX と OpenGL 両対応のライブラリとかでやっているのかな。Z値は[-1,1]の代わりに[0,1]を使うような環境であればその変換もここでやりますよと。マトリックス表記が他の環境と異なっていたりもしますのでその辺にも要注意というところでしょうか。
2005年12月12日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.5.1 Orthographic Projection平行投影の話。3Dから2Dにぺしゃんこにつぶれるような変形。当然次元が1つ下がってますので不可逆な変換で行列式も0になります。この辺はほぼ公式的なところかと思うのですが left, right, bottom, top, near, far の平面があればマトリックスが素直に求まります。ここで面白いのが near が数値的に大きくて far が数値的に小さくなるという矛盾した座標系の話。これを自然に扱うために DirectX は Z+を奥にしているという理解でよいのですよね。
2005年12月11日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.4 Projections投影法の話。プロジェクション以外は3x3マトリックスで十分だったのですがこの辺は4x4マトリックスが必須になりますねという前置きの話。この辺はなぜ DirectX が奥方向がZ+になっているのかなどわかって面白いところなのではないかと思います。
2005年12月10日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.4 Vertex Blending 頂点ブレンディングはたいていCPUでやっているのですが頂点シェーダーで行うこともできます。当然パフォーマンス的にだいぶお得になります。ただ実際にはコリジョンやらシャドウボリューム生成やらのジオメトリ情報をCPUで読む必要がある場合はGPUからの読み戻しが必要なのでやはりCPUで行う必要があります。なんだかんだでモーション周りはなかなかGPU側にもって行きにくいところではあると思います。CPU側であれこれできるというのは比較的プログラマの工夫のしがいがあるので楽しいところだとも思いますね。
2005年12月09日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.4 Vertex Blending ステッチングをさらに一段階進めたものがスキニングやエンベロープと呼ばれるウエイトを設定するタイプのもの。まあこれはよく使いますね。ノードのローカル座標をワールドに持ってきてそこで他のフレームのノードローカル座標からワールドに持ってきたものとのブレンド処理を行うという形になります。まあ計算自体は単なる重みつき加算なので簡単ですね。まあ頂点数が増えれば増えるほど計算量が増えますので多用するとそれなりの処理負荷にはなりますね。法線は前に少しやりましたが逆行列の転置行列で変換します。スケールと平行移動だけならこれらは打ち消しあうということでしたね。
2005年12月08日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.4 Vertex Blending頂点ブレンディングの話です。しかしなんでクォータニオンの次にこの話題になるんでしょう?順番が唐突です。肩と腕の関節をうまくつなぐ例。たいていいつもこの例なんだよね。継ぎ目をどうやってつなぐのかが話題になります。諸々呼び方があります。スキニングとエンベロープはよく知られていると思いますがスケルトンサブスペースデフォメーションって言い方は初めて知った。まあある種一番身近なデフォメーションなのかも。ステッチングって2ノードを無理やりつなぐってこと?後に説明する手法とは別のものなの?なぞ。
2005年12月07日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/Rotation from One Vector to Anotherあるベクトルから別のベクトルへの変換。相変わらず俺には難しい…。すみませんいつも他人の作ったライブラリ使っているだけでした…。まずは2ベクトル s, t を正規化して扱います。そして公式に当てはめると(笑)ベクトルから三角関数になって三角関数からθが求まると。s, t が近い場合は数値的に不安定なのでこいつを避ける必要があります。ああ、しかしまたよくわからないなぁ。今仕事も忙しいのでじっくり読む暇もなし。なのでまたこんど腰を落ち着けて勉強します。
2005年12月06日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/Spherical Linear Interpolationということで次は球面線形補完の話。単位クォータニオンの補完です。これはモーションで必須になってきますね。ここもかなりややこしい計算。まあ最小距離の弧を描いて補完すると。よくわかりませんが間にスプラインのような計算も入るのかな。なるほどなるほど。…やっぱよくわからん。
2005年12月05日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/Matrix Conversionクォータニオンからマトリックスへの変換の話。まあいまどきのハードウェアはみんなこの手のマトリックス演算を高速にできるようになってますのでそちらにあわせる必要があるというわけです。まあごちゃごちゃややこしい計算ですがよくわからん。公式として使えばいいか。というかどっかにソースあるしそれコピペでいいか。なんか今日はやる気がないのでした。まあ必要になったらまたここ読みます。
2005年12月04日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.3.2 Quaternion Transforms定義がわかりましたので変換をやってみましょう。正規化された正規化クオータニオンをたいてい扱います。これがあらゆる3次元の回転を表現できるからです。注意点としては非ゼロの実数のqとの掛け算もまた同じ変換を表現するということ。まあ1回(360度)回転したのと2回(720度)回転したのの姿勢が同じってことなのかな?これはこういう状況を避けるしかないのかな。
2005年12月03日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.3 Quaterninonsクォータニオンの話。複素数の拡張として Sir William Rowan Hamilton さんが考案(1843)。その後 1985 年に Shoemake さんによってCG分野で使われはじめました。ちょうど20年ほど経っていたということですね。3.3.1 Mathmatical Backgroundクオータニオンの定義。これはもう本文読むだけですかね。
2005年12月02日
コメント(0)
今日も Real Time Rendering を読みます。http://www.realtimerendering.com/3.2.4 Rotation about an Arbitary Axis任意軸回転の話。オイラー角でこれをやるのは面倒なのだ。任意の回転軸 r があるのでこれに直行する軸 s, t を求める。s は r の要素で絶対値が最も小さい要素をみつけそれを 0 にし、残り2つの要素を入れ替え適当に作ります。tは直行2軸がわかれば外積一発です。この r,s,t を x,y,zの軸に持ってきて回転の処理を行った後にまた戻せばよいという感じです。といってもまあこの辺はクオータニオンでやるのが普通でしょうね。
2005年12月01日
コメント(0)
全31件 (31件中 1-31件目)
1


