1

xnaフレームワークで斜め投影(http://en.wikipedia.org/wiki/Oblique_projection )を実現しようとしています:

float cos = (float)Math.Cos(DegreeToRadian(45)) * -1; 
float sin = (float)Math.Sin(DegreeToRadian(45)) * -1; 

Matrix obliqueProjection = new Matrix( 
                                  1, 0, cos, 0, 
                                  0, 1, sin, 0, 
                                  0, 0, 1,   0, 
                                  0, 0, 0,   1); 

Matrix orthographicProjection = Matrix.CreateOrthographic(10, 10, -1, 100000); 

projection = orthographicProjection*obliqueProjection; 

ご覧のとおり、正投影と斜め投影を乗算するだけです。

私が得るものはこれです:

http://imageshack.us/photo/my-images/835/oblique1.png/

基本的には、正射投影がどのように見えるかを示しますが、奇妙なファー クリッピングがいくつかあります。

適切な斜め投影を実現するにはどうすればよいですか? 事前にThx

4

2 に答える 2

1

Diki による回答: http://forums.create.msdn.com/forums/p/85032/513412.aspx#513412

コードは次のように変更する必要があります。

Matrix obliqueProjection = new Matrix(  
                                  1,   0,   0,   0,  
                                  0,   1,   0,   0,  
                                  cos, sin, 1,   0,  
                                  0,   0,   0,   1);  

projection = obliqueProjection * orthographicProjection;  
于 2011-06-21T06:54:49.747 に答える
0

手始めに、適切な式を実装できます。

ウィキペディアの記事によると、射影行列はとを使用0.5 * cos0.5 * sinますが、バージョンではとだけcosを使用しますsin

于 2011-06-18T09:34:05.780 に答える