3

3D 球体をピクセル グリッドに投影できるラスタライズ アルゴリズムは何ですか? レイキャスティングは避けたい。基本的に、3D 座標と半径が与えられた場合、ピクセル グリッド上に 2D 円/楕円を簡単に作成する方法はありますか?

例: 半径 4 の (2,2,2) の円は、5 つのピクセルに投影されます: p1(2,0)p2(0,1) p3(1,1) p4(2,1)p5(1,2) )

パーティクル システムのピクセル スプラッティングなどの手法に出くわしましたが、これを行う方法について明確な答えが見つかりませんでした。

ありがとう

4

6 に答える 6

1

どのような投影がありますか?

私は、射影が最も興味深いものの円ではないことを確信しています。うーん。私がそれを行う方法は、軸*がカメラポイントに整列している3Dで円周円を見つけることだと思います。円から必要なポイントを選択し、それらをスクリーン スペースに変換します。最も簡単に言えば、ポリゴンが得られますが、補間されたスプラインもおそらく良い結果をもたらすはずです。

*: 回転対称軸

于 2008-12-26T00:35:26.160 に答える
0

球の平面への投影は楕円ですが、円で近似することもできます。これは、ポイントの透視投影とほぼ同じように実行できます。

画面の中心が(X = 0、Y = 0)であり、ビューアが(X = 0、Y = 0、Z = 0)にあると仮定します。球が半径sRの(sX、sY、sZ)にあり、画面がビューアからD単位離れている(焦点距離)場合、円は(cX = sX * D / sZ、cY =半径cR=sR * D/sZのsY*D / sZ)。すべてがD/sZによって単純にスケーリングされます。

この円は、焦点距離(D)が大きい場合、または球のsX座標とsY座標がゼロに近い場合にのみ、球の投影の適切な近似値になります。

于 2010-10-19T03:00:44.943 に答える
0

計算を簡単にするために、真の予測に少し不誠実に耐えることをいとわないようです。もしそうなら、従います...

まず、投影された円の座標系に一致するように球をシフト、回転、およびサイズ変更できると仮定します。両方の半径をrと呼び、中心が球の場合は(0,0,0)、円の場合は(0,0)であると仮定します。X軸は両方で左右に走り、Y軸は両方で上下に走り、Z軸は球の後ろから前に走ります。

これが楽しい部分です。これで完了です。X座標とY座標は、球と円の両方で同じです。Z座標が正の場合はポイントが表示され、負の場合はポイントが球の裏側に非表示になります。

于 2009-01-02T04:38:06.303 に答える
0

私はあなたの問題を100%理解していません。ピクセルグリッド=画面スペースのピクセルですか、それとも固定比率がありますか?

私の推測では、次のことを試すことができます。

内部ビューポートの座標を画面スペースのピクセルにマッピングし、比率を計算します。その比率を使用して、オブジェクトを目的の場所に正確に配置します。このメソッドを使用して、Windowsベース(フルスクリーンではない)のD3Dアプリを作成し、3Dオブジェクトとのマウス操作を可能にしました。これにより、マウスを使用してオブジェクトを移動およびサイズ変更できるため、通常のWindowsアプリのように感じることができます。試行錯誤しながら比率を計算しました(行列計算が苦手でした)。

上記のようにビュー投影マトリックスを乱さなかった場合、3D座標は左から右および下から上に-1.0fから1.0fです。したがって、上記と同じ方法を使用して、比率を簡単に計算し、オブジェクトを適切に配置できます。

于 2008-12-26T06:51:59.097 に答える
0

おそらく最も簡単な方法(線形代数を気にしない場合)は、4x4の射影変換行列を使用することです。実際、4x4マトリックスを使用して、ほぼすべての種類の3D変換を実行できます。

これがあなたが始めるためのウィキペディアの記事です。

于 2008-12-31T21:08:31.970 に答える
0

クールなので、球の x、y、z から x、y を取り出して円を形成すると仮定します。ピクセル グリッド上で適切なピクセルをシェーディングするにはどうすればよいでしょうか。基本的に、円をラスタライズするアルゴリズムは何ですか?

于 2009-01-16T22:52:23.147 に答える