自己研鑽 じこけんさん

忙しいさなか、自己けんさんも必要ですね、

忙しさにかまけて、自己研さんを放置するのは、よくないですね

寝る時間を削ると、体が、緊張感が持続するので、いらいらがでてくるときが

あります、いわしをたべるとよいのでしょうか

リラックスする時間を削るのは、体にはよいですね、緊張感が持続するので、

それで、ついに最後にアドレナリンがでてきます、目ぱちくり

DirectX11について、けんさんしてみましょう

相当高速化されているみたいですね、

①XMとは、なんの略か

②トランスフォームとは

③移動を英語で

④回転を英語で

⑤拡大・縮小を英語で

少し、考えるなり、調べるなりしてください

 

⑥プログラミングとは、コンパイルエラーがでたとき

 なぜなのか、これを推測どおり、とけたときは

 うれしいですね、

 デバッグ時、バグがでたとき、なぜなのか

 推理しながら、こうか、違うか、こうか、違う、あーまた

 エラー、ここでどつぼにはまって、気分は落ち込む

 少し、気分転換、コーヒータイム、リラックスタイム

 または、翌日の明け方、通勤時間、など

 しばらく封印して、またチャレンジすると、宇宙から

 ヒントが、あーひょっとしてこれか、あー溶けた

 このときが、プログラミングの冥利みようりですね

 気分絶好調になります、

 

それでは、

①DirectXMath

 Mathtとは、Mathematicsでしょうね

②トランスフォーム

 3次元空間を

 拡大して、回転して移動する

 トランスフォーマー

③移動

 Move

 Translation

③回転

 Rotation

④拡大・縮小

 Scaling

ついでに、WorldMatrixのつくりかた

ScalingMatrix  * RotationMatrix * TranslationMatrix

拡大してから、回転して、移動する

左手系ですね

なおRotaition Matrix

X軸周りの回転 (航空工学上、機首をあげるピッチ)

 RotationX

Y軸周りの回転 (航空工学上 機体を回転ヨー 機体を滑走路に向けて、回転)

 RotationY

Z軸まわりの回転(航空工学上 機体を回転ロー 回転して降下)

 RotationZ

RotationMatri=RotationX * RotationY * RotationZ

ふつう

YawPitchRow ヨーピッチロー

機首を回転させて(ヨー)、滑走路に出て、管制塔からの指示で

それから、加速すると、エルロンのおかげで、機首があがる(ピッチ)

そのまま、離陸して、上空に向かう

つぎに機体を上空で、大阪湾上空(笑)

回転させ(ロー)、エルロンを左右で逆に作動させ、ラダーでアメリ

ラスベガスに向かう、サンフランシスコかな

サンフランシスコのお寿司屋さんのトロは、なんと

昔の話、築地からマグロを仕入れているとのこと

 

ということで、

ヨーロッパですと、フランスはパリのドゴール空港か

パリは降りて、バスに乗ると

景色はRPGの世界、お城が、すごい

 

y軸周りの回転 ヨー

x軸周りの回転 ピッチ

z軸周りの回転 ロー

あー夜があけました、周りは静かです

図書館か、(笑)

 

物体の距離は2Ⅾですと

物体の中心間距離でいけますね

float distx=abs(player.pos.x - enemy.pos.x);

float disty=abs(player.pos.y - enemy.pos.y);

dist=distx * distx + disty * disty

または

dist=sqrt(dist);

ヒット判定

dist < playerの半径 + enemyの半径

3Ⅾになりますと、剛体(rigid body)を扱うので

質点が集まっている

空間にいろんな方向に厚みがあります

BOXをかぶせて、ヒット判定すると、かなり正確に当たりますね

OBBといいますが、

ただし、シューティングのように、爆発するようなけーすでは、いらないよ

という場合でも

実装しておけば(実装がむずいですが、ポリゴンの頂点情報をよんで

        maxpos,minposを求める)

物体の幅、高さ、奥行がもとまって、いいと思います

info(情報)としては、価値があると思います。

これにローカルの方向軸を加えれば、ヒット判定ができます

幅w=fabs(maxpos.x - minpos.x);

高h=fabs(maxpos.y - minpos.y);

奥z=fabs(maxpos.z - minpos.z);

なお、fabsとは小数点 絶対値のこと

float absolute

練習)

vertexデータをよみながら、maxposをもとめよ

if(maxpos.x <vertex.x) maxpos.x=vertex.x;

yについて

zについて同様

minposのif()文をかんがえてみよう

あー完全に世の中明るい、相変わらずしずか

耳がとうくなったせいか(笑)