【HALCON】add_scene_3d_light 関数について - 3Dシーンに光源を追加
2024-08-23
2024-08-23
HALCON
のadd_scene_3d_light
関数は、3Dシーンに新しい光源を追加し、その位置や種類を設定するための機能です。この関数を利用することで、シーン内に適切なライティングを設定し、3Dオブジェクトを効果的に照らすことができます。光源はシーン内のオブジェクトの見え方に大きく影響を与えるため、正しい配置と種類の選択が重要です。
使用例
以下は、add_scene_3d_light
関数を使って3Dシーンに光源を追加する具体例です。
* 3Dシーンを作成し、光源を追加
create_scene_3d(&Scene3D)
add_scene_3d_light(Scene3D, [-100.0, -100.0, 0.0], 'point_light', &LightIndex)
この例では、まずcreate_scene_3d
関数を使って3Dシーンを作成し、add_scene_3d_light
関数で[-100.0, -100.0, 0.0]
に光源を追加しています。光源の種類は'point_light'
で、位置が指定されています。
引数
-
Scene3D
3Dシーンのハンドル。create_scene_3d
関数で生成されたシーンのハンドルを使用します。 -
LightPosition
新しい光源の位置を指定する配列。'point_light'
では光源の位置、'directional_light'
では光の方向を指定します。 -
LightKind
光源の種類を指定する文字列。例として、'point_light'
(点光源)や'directional_light'
(方向光源)などがあります。 -
LightIndex
追加された光源のインデックス。これにより、シーン内で光源を管理できます。
戻り値
add_scene_3d_light
関数は、追加された光源のインデックスを返します。このインデックスを利用して、光源の設定を変更したり、光源を削除したりすることが可能です。
応用例
複数の光源を使ったシーンのライティング
この関数を使って、シーンに複数の光源を追加し、異なる位置や方向から照明を設定することができます。以下は、複数の光源を追加する例です。
* 複数の光源をシーンに追加
add_scene_3d_light(Scene3D, [-100.0, -100.0, 0.0], 'point_light', &LightIndex1)
add_scene_3d_light(Scene3D, [0.0, 0.0, -100.0], 'directional_light', &LightIndex2)
この例では、点光源と方向光源をシーンに追加して、異なる効果を与えています。LightIndex1
は点光源、LightIndex2
は方向光源を指しています。
注意点
- 光源の配置と種類は、シーン内のオブジェクトの照明に大きく影響を与えます。適切に設定することが重要です。
- 現在の
HALCON
のバージョンでは、シーン内に複数の光源を追加しても、1つの光源しかサポートされないため、最後に追加された光源が有効になります。この仕様は将来のバージョンで変更される可能性があります。
まとめ
HALCON
のadd_scene_3d_light
関数は、3Dシーンに光源を追加し、シーンのライティングを調整するために非常に重要なツールです。この関数を使用することで、シーン内のオブジェクトを効果的に照らし、視覚的なクオリティを向上させることができます。