OptiX を Python で呼んでちょっとしたテストとか Windows でぺろっとやりたい.
OptiX のコードビルドとかめんどい...
SDK も regist しないと落とせないし...
ctypes でコンパイル不要で頑張ってみます.
dll のありか
標準では PATH が通っていないようです.
OptiX のコードを見るとレジストリ探索とかしてたりします.
Python で winreg でレジストリ探索してもよいですが,
Windows だと(バージョンにもよるかも), 以下のところにありました.
from ctypes import *
dllpath='C:\\Windows\\System32\\DriverStore\\FileRepository\\nv_dispsig.inf_amd64_145fe9c72c40de0a\\nvoptix.dll'
optix = cdll.LoadLibrary(dllpath)
print(optix.optixQueryFunctionTable)
ハッシュは PC ごとに変わるようですので, Python で C:\\Windows\\System32\\DriverStore\\FileRepository\\nv_dispsig.inf_amd64_*
で glob でみつけるとよいでしょう.
(nv_dispsig
なフォルダは 1 個だけ)
optixInit?
これもコードみるとわかりますが関数として用意はされておらず, optix SDK header のみにあります. 内部では上のように nvoptix.dll を読んでいます.
各種 optix 関数?
上で得た optixQueryFunctionTable に関数テーブルがあるようです!
TODO
OptiX のヘッダーを見て各種呼び出しできるようにする.
(ライセンス的にヘッダーは MIT なので copyright 表記などしておけば問題ないでしょう)