HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
1102
youdaiOpenGL系座標から、DirectX系座標へ変換したい3解決


youdai

リンク

2022/11/2(Wed) 19:32:59|NO.97281

OpenGL系座標から、DirectX系座標へ変換したいです。

位置については恐らく、Zの正負を反転すればいいだけだと思うのですが、回転軸系についてはよく分かりませんでした。

DirectX系ライブラリのvAudioの3Dサウンド機能をOpenGL系のHGIMG4で使おうと思ったのですが、座標系の設定にDirextX系への回転系座標変換が必要で、その部分で躓いてしまいました。

vAudio
https://www.vector.co.jp/soft/winnt/prog/se494127.html

アドバイスよろしくお願いいたします。



この記事に返信する


youdai

リンク

2022/11/4(Fri) 13:27:23|NO.97296

具体的には以下の回転の変換で躓いています。


/* 座標系はBlenderと合わせている。 XY軸が平面軸で、Z軸が上下になっている。Z+が上で、Z-が下である。 */ ; 音源の位置を指定 getpos objID, x, y, z ; 音源の位置をvAudioに対してOpenGL系座標からDirectX座標に変換する形で指定 vAudio3DSetPosition x, y, -z if stat == 0 : dialog "音源の位置設定無効", 1, "vAudio3DSetPosition error": end ; プレイヤーの位置を指定 getpos playerID, x, y, z ; プレイヤーの位置をvAudioに対してOpenGL系座標からDirectX座標に変換する形で指定 vAudio3DSetListenerPosition x, y, -z if stat == 0 : dialog "プレイヤーの位置設定無効", 1, "vAudio3DSetListenerPosition error": end ; ここまでの位置関係は問題ないはずである ; プレイヤーの頭上の向き ; DirectXに合わせて、Zの向きを反転している fvset head_vector, 0.0, 0.0, -1.0 /* ここではgetangで向きを取得しているが、 もしクォータニオンから変換した方が向きが正確であるなら、getquatの方がいい。 */ getang playerID, pang.0, pang.1, pang.2 ; プレイヤーの向き /* ここでプレイヤーの向きをOpenGL系回転からDirectX系回転へ変換しなけばならない。 ネットの変換系TISPにはDirectX系回転はOpenGLとは逆で、時計回りではなく反時計回りだという資料があったので、 全ての軸を反転してみたのだが、上手くいかない。 回転順序か、オイラー角のせいかもしれないが原因は不明。 getquatで取得して、クォータニオンからDirectX回転へ変換した方がいいかもしれないが、やり方が分からない。 */ pang.0 = -pang.0 pang.1 = -pang.1 pang.2 = -pang.2 vAudio3DSetListenerOrientation pang.0, pang.1, pang.2, head_vector.0, head_vector.1, head_vector.2 if stat == 0 : dialog "プレイヤーの向き設定無効", 1, "vAudio3DSetListenerOrientation error" : end



GENKI

リンク

2022/11/4(Fri) 23:27:13|NO.97300

やっとchmファイル開けた。
スピーカーから出る音の左右を入れ替えることができれば何も悩まなくていいんですが、命令なさそうですね。
リスナーの設定関連で出来るかなと思ったんですが、そんなに甘くはなかった。


> fvset head_vector, 0.0, 0.0, -1.0

頭が水平方向を向いています。


> vAudio3DSetListenerOrientation pang.0, pang.1, pang.2, head_vector.0, head_vector.1, head_vector.2

マニュアルを見ると、最初の引数3つは「前方ベクトルのx,y,z座標成分を表す実数値」と書かれています。
getangで取得出来る値はラジアン(角度)です。



youdai

リンク

2022/11/5(Sat) 00:09:21|NO.97301

変換方法が分からないので、結局自分で3Dサウンドシステムを構築しました。
自己解決とします。

GENKIさん、コメントありがとうございます。
自己解決の報告が間に合わなくてすみません。



ONION software Copyright 1997-2023(c) All rights reserved.