夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

BlenderPythonを使用して実行中のPCのスペックを取得する

本日はBlenderPython枠です。

前回Pythonを使用してCPUやOSの情報を取得しました。

redhologerbera.hatenablog.com

 しかしながらPythonでは通常psutilやGPUtilなどのライブラリをしようしない場合GPUなどの情報にアクセスすることはハードルが高いです。

 ところがBlenderではプリファレンス画面のシステムタブを見ることでわかる通りソフトウェアとしてPCの情報を取得しています。

今回はこの情報をBlenderPythonで取得する方法を行います。

〇bpy.context.preferences

プリファレンス画面で取得している情報にアクセスするためにはbpy.context.oreferencesを使用します。

docs.blender.org

ここではプリファレンスに登録されている様々な情報を取得できます。

bpy.context.preferences.addonsではアドオンの情報が取得できます。

アドオンとして登録されているcyclesのプリファレンスに登録さえれているデバイスネームを使用することで検出できます。

bpy.context.preferences.addons["cycles"].preferences.get_devices()

コードとしては以下になります。

import bpy
import bmesh

# BlenderがGPUデバイスを検出するためにget_devices()を使用
bpy.context.preferences.addons["cycles"].preferences.get_devices()

# 使用しているすべてのデバイス(GPUとCPUを含む)の名前を表示
for d in bpy.context.preferences.addons["cycles"].preferences.devices:
    print(d["name"])

このコードを実行するとコンソールウィンドウに次のように表示されます。

ここでは11th Gen Intel Core i9-11900K @ 3.50GHz、NVIDIA GeForce RTX 4070が表示されています。

なぜかアップデート前のNVIDIA GeForce RTX 3080も表示されてしまっていますが、おそらく以前使用した際に登録され、登録が自動で解除されていないのだと推察されます。

以上でPCのスペックが表示できました