Houdini ツール系ネタの参考

【Houdini】のためのスタンドアローンなツールを作ろう。
https://dftalk.jp/?p=20869
Houdini 15 のため若干古いが参考になります。

Houdini Engine API入門
https://qiita.com/jyouryuusui/items/3d86ab8e69652d5f951c
今の所、日本語で一番詳しい Houdini Engine の説明だと思う。

HOMの紹介
https://www.sidefx.com/ja/docs/houdini/hom/intro.html
ぱっと、Houdini Python にアクセスしたい場合に便利

Numpy での ベクトル処理

import numpy as np

a = np.array([1.0, 2.0, 3.0])
b = np.array([4.0, 5.0, 6.0])

a = a / np.linalg.norm(a)
b = b / np.linalg.norm(b)

np.dot(a, b)
np.cross(a, b)

面法線の求め方

import numpy as np

v0 = np.array([0.0, 0.0, 0.0])
v1 = np.array([0.0, 0.0, 0.0])
v2 = np.array([0.0, 0.0, 0.0])

t0 = v1 - v0
t1 = v2 - v0

n = np.cross(t0, t1)
print(n)

外積はかける順番で結果が異なる(法線の方向が逆を向く)ので注意。

下記記事を参考にさせて頂きました。素晴らしい記事をありがとうございます。
https://deepage.net/features/numpy-dot.html

Matplotlib 覚書

普通に画像を表示させるだけであれば、下記で表示出来る。

import matplotlib.pyplot as plt
plt.imshow(decoded_img[0].reshape(28, 28))

下記の表記でサイズが 20, 5 の新規領域を作り、(2, 10, i+1) で、2行10列ごとにサブプロットで領域を分割している?

n = 10
plt.figure(figsize=(20, 5))
for i in range(n):
    ax = plt.subplot(2, 10, i+1)
    plt.imshow(x_test[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)

    ax = plt.subplot(2, 10, i+1+n)
    plt.imshow(decoded_img[i].reshape(28, 28))
    plt.gray()
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
plt.show()

git command 覚書

リモートの branch 情報の取得
git branch -a

ローカルのいらない branch の削除
git branch -D origin/4.17

リモートブランチの取得
git fetch (fetchしないとローカルで branch ができる?)
git checkout -b remotes/origin/4.17

ローカルだけにあるファイル・フォルダを削除
git clean -fd

更新を元に戻す
git checkout .

git clone -b origin/4.17 https://github.com/EpicGames/UnrealEngine.git

NVIDIA PhysX のオープンソース化

NVIDIA PhysX SDK
https://developer.nvidia.com/physx-sdk

NVIDIA 物理シミュレーションエンジン「PhysX」をオープンソース化
https://www.4gamer.net/games/022/G002233/20181204012/

PhysX って以前からオープンソース化されていましたけど、今まで private リポジトリで申請が必要だったのが public で公開されたみたいです。

Game Physics on the GPU with PhysX 3.4
NVIDIA PhysX SDK 3.4.0 Documentation