とりあえず日記

2017-01-14 PS4 Pro購入

PS4 ProとEIZO EV3237について

PS4 Proを購入したので、試しに手持ちの4Kモニタ(EIZO EV3237)に繋いでみましたが、4Kの表示ができませんでした。

PS4 ProはHDCP 2.2を要求しますが、EIZO EV3237はHDCP 1.4とバージョンが古いのが原因かも?

あっ、もちろんPS4 Pro同梱のHDMIケーブルを利用しています。

モニタのHDCPバージョンアップするための、ファームウェアアップデートがあれば良いのに・・・

(2017/05/14更新)

PS4 ProのセーフモードからHDCPを1.4に固定しましたが、4Kモニタとして認識されませんでした。

2016-09-04 THE NORTH FACE × GORE-TEXオリジナル防水スタッフサック

f:id:ohtorii:20160904155856p:image:w320

THE NORTH FACE × GORE-TEX®オリジナル防水スタッフサック(40ℓ)が当たりました。

登山、旅行と大切に使わせて頂きます。

プレゼントに応募しても基本的に当たらないので、珍しいこともあるものだ・・・



2016-01-08 あけましておめでとうございます。

あけましておめでとうございます。

本業が忙しいため日記は放置気味ですが管理はしています。

昨年はノートPCをLenovo T540Pへ更新しましたが、トラブルが多く困り気味です。

以上、生存報告でした。


レノボ・ジャパン 20BE00BHJP ThinkPad T540p

レノボ・ジャパン 20BE00BHJP ThinkPad T540p

2015-06-06

OmniSharpServer備忘録

自分用の備忘録。

exeの生成

https://github.com/OmniSharp/omnisharp-server

コマンドラインからexeを作成する。

omnisharp.exe --help

Usage: omnisharp [-s /path/to/sln] [-p PortNumber]

Options:
  -s, --solution=VALUE       The path to the solution file
  -p, --port=VALUE           Port number to listen on
  -c, --client-path-mode=VALUE
                             The path mode of the client (Cygwin, Windows or
                               Unix)
  -v, --verbose=VALUE        Output debug information (Quiet, Debug, Verbose)
  -h, --help                 Show this message and exit
      --pid, --hostPID=VALUE The processId of the editor to watch
      --config=VALUE         The path to the server config.json file

2015-04-24 Euler angle(xyz/zxy/xzy/yxz/yzx/zyx) to quaternion.

Euler angle(xyz/zxy/xzy/yxz/yzx/zyx) to quaternion.

オイラーの各軸(X/Y/Z軸)からクォータニオンへ変換する。

void	XToQuaternion(Quaternion& q, float  x){
	q.x = sin(x * 0.5f);
	q.y = 0.0f;
	q.z = 0.0f;
	q.w = cos(x * 0.5f);
};

void	YToQuaternion(Quaternion& q, float  y){
	q.x = 0.0f;
	q.y = sin(y * 0.5f);
	q.z = 0.0f;
	q.w = cos(y * 0.5f);
};

void	ZToQuaternion(Quaternion& q, float  z){
	q.x = 0.0f;
	q.y = 0.0f;
	q.z = sin(z * 0.5f);
	q.w = cos(z * 0.5f);
};

数式は「実例で学ぶゲーム3D数学」を参照。

実例で学ぶゲーム3D数学

実例で学ぶゲーム3D数学

Euler angle(xyz/zxy/xzy/yxz/yzx/zyx) to quaternion.

void	XYZToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cy*cz*sx-cx*sy*sz;
	q.y=cy*sx*sz+cx*cz*sy;
	q.z=cx*cy*sz-cz*sx*sy;
	q.w=sx*sy*sz+cx*cy*cz;
};


void	ZXYToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cx*sy*sz+cy*cz*sx;
	q.y=cx*cz*sy-cy*sx*sz;
	q.z=cx*cy*sz-cz*sx*sy;
	q.w=sx*sy*sz+cx*cy*cz;
};


void	XZYToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cx*sy*sz+cy*cz*sx;
	q.y=cy*sx*sz+cx*cz*sy;
	q.z=cx*cy*sz-cz*sx*sy;
	q.w=cx*cy*cz-sx*sy*sz;
};


void	YXZToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cy*cz*sx-cx*sy*sz;
	q.y=cy*sx*sz+cx*cz*sy;
	q.z=cx*cy*sz+cz*sx*sy;
	q.w=cx*cy*cz-sx*sy*sz;
};


void	YZXToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cy*cz*sx-cx*sy*sz;
	q.y=cx*cz*sy-cy*sx*sz;
	q.z=cx*cy*sz+cz*sx*sy;
	q.w=sx*sy*sz+cx*cy*cz;
};


void	ZYXToQuaternion(Quaternion& q, float  x, float  y, float  z){
	float cx = cos(x * 0.5f);
	float cy = cos(y * 0.5f);
	float cz = cos(z * 0.5f);
	float sx = sin(x * 0.5f);
	float sy = sin(y * 0.5f);
	float sz = sin(z * 0.5f);

	q.x=cx*sy*sz+cy*cz*sx;
	q.y=cx*cz*sy-cy*sx*sz;
	q.z=cx*cy*sz+cz*sx*sy;
	q.w=cx*cy*cz-sx*sy*sz;
};

数式の導出

Euler angle(xyz/zxy/xzy/yxz/yzx/zyx)からクォータニオンへ変換する数式は、wxMaximaで導出しています。

qmul(l,r) := [
l[1]*r[4] + l[4]*r[1] + l[2]*r[3] - l[3]*r[2] ,
l[2]*r[4] + l[4]*r[2] + l[3]*r[1] - l[1]*r[3] ,
l[3]*r[4] + l[4]*r[3] + l[1]*r[2] - l[2]*r[1] ,
l[4]*r[4] - l[1]*r[1] - l[2]*r[2] - l[3]*r[3] ];

qx:[sx  ,0      ,0      ,cx];
qy:[0       ,sy ,0      ,cy];
qz:[0       ,0      ,sz ,cz];

printf(false,"==== xyz ====");
xyz:qmul(qmul(qz,qy),qx);

printf(false,"==== zxy ====");
zxy:qmul(qmul(qy,qx),qz);

printf(false,"==== xzy ====");
xzy:qmul(qmul(qy,qz),qx);

printf(false,"==== yxz ====");
yxz:qmul(qmul(qz,qx),qy);

printf(false,"==== yzx ====");
yzx:qmul(qmul(qx,qz),qy);

printf(false,"==== zyx ====");
zyx:qmul(qmul(qx,qy),qz);

f:id:ohtorii:20150524220109p:image:w640


リンク

Euler から Quaternion へ変換する数式など。

Maths - Conversion Euler to Quaternion - Martin Baker