LoginSignup
1
1

More than 3 years have passed since last update.

rust ~ 3D描画ライブラリ ~

Last updated at Posted at 2021-04-03

rustの3D描画ライブラリkiss3dのサンプルを動作させてみました。その結果をまとめたいと思います。

環境

ubuntu18.04

インストール

$ git clone https://github.com/sebcrozet/kiss3d.git

サンプルの実行

どのようなサンプルが用意されているか確認すると次のようになります。

$ cd ~/kiss3d
$ cargo run --example
error: "--example" takes one argument.
Available examples:
    add_remove
    camera
    cube
    custom_material
    custom_mesh
    custom_mesh_shared
    decomp
    event
    group
    lines
    mouse_events
    obj
    persistent_point_cloud
    planar_lines
    points
    post_processing
    primitives
    primitives2d
    primitives_scale
    procedural
    quad
    rectangle
    screenshot
    stereo
    text
    texturing
    ui
    window
    wireframe

次に各サンプルの動作を確認していきます。

サンプル1 add_remove

$ cargo run --example add_remove

このサンプルでは3Dのキューブ表示されます。写真ではわかりませんが、実際にはキューブがチカチカしていたため、描画したり消したりといった処理を行っていると考えられます。
Screenshot from 2021-04-03 13-12-58.png

サンプル2 camera

$ cargo run --example camera

このサンプルでは座標軸が画面内で回転している様子を確認することができます。
Screenshot from 2021-04-03 13-21-50.png

サンプル3 cube

$ cargo run --example cube

このサンプルでは3Dのキューブが表示されます。
Screenshot from 2021-04-03 13-29-42.png

サンプル4 custom_material

$ cargo run --example custom_material

このサンプルでは3Dグラフィック上で、きれいな色の球体が回転します。
Screenshot from 2021-04-03 13-32-44.png

サンプル5 custom_mesh

$ cargo run --example custom_mesh

このサンプルでは三角形のメッシュが回転します。
Screenshot from 2021-04-03 13-34-10.png

サンプル6 custom_mesh_shared

cargo run --example custom_mesh_shared

このサンプルでは赤、緑2枚の三角形メッシュが回転します。
Screenshot from 2021-04-03 13-36-09.png

サンプル7 decomp

$ cargo run --example decomp
Usage: target/debug/examples/decomp obj_file scale clusters concavity

Options:
    obj_file  - the obj file to decompose.
    scale     - the scale to apply to the displayed model.
    clusters  - minimum number of clusters.
    concavity - the maximum concavity accepted by the decomposition

こちらのサンプルは何らかのファイルを入力必要があるようです。今回は試せていません。

サンプル8 event

$ cargo run --example event

このサンプルは3Dグラフィック上のマウスカーソルの座標を出力します。
Screenshot from 2021-04-03 13-40-24.png

サンプル9 group

$ cargo run --example group

このサンプルでは写真のような3Dオブジェクトがそれぞれ回転します。
Screenshot from 2021-04-03 13-45-22.png

サンプル10 lines

$ cargo run --example lines

このサンプルでは2次元上に三角形のラインが描画されます。
Screenshot from 2021-04-03 13-47-37.png

サンプル11 mouse_events

$ cargo run --example mouse_events

このサンプルではグラフィック上のクリックした位置を出力します。
Screenshot from 2021-04-03 13-49-48.png

サンプル12 obj

$ cargo run --example obj
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/scene/scene_node.rs:865:16
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

このサンプルは何らかのエラーが発生して、今回は試すことができませんでした。

サンプル13 persistent_point_cloud

$ cargo run --example persistent_point_cloud
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0277`.
error: could not compile `kiss3d`

To learn more, run the command again with --verbose.

このサンプルでも何らかのエラーが発生して、今回は試すことができませんでした。

サンプル14 planar_lines

$ cargo run --example planar_lines

こちらのサンプルでは2Dグラフィック上に三角形のラインが描画されました。
Screenshot from 2021-04-03 13-55-01.png

サンプル15 points

$ cargo run --example points

写真では見えにくいですが赤、緑、青の3つの点が表示されます。
Screenshot from 2021-04-03 13-56-46.png

サンプル16 post_processing

$ cargo run --example post_processing

このサンプルでは下の写真の物体が変形したり、縁の色を変化させたりといった様子が表示されます。
Screenshot from 2021-04-03 13-58-14.png

サンプル17 primitives

$ cargo run --example primitives

こちらのサンプルでは、上のサンプルと形状が似た物体が生成されますが、上のように変化はありません。
Screenshot from 2021-04-03 14-01-55.png

サンプル18 primitives2d

$ cargo run --example primitives2d

このサンプルでは丸や四角形の図形が表示されます。
Screenshot from 2021-04-03 14-04-42.png

サンプル19 primitives_scale

$ cargo run --example primitives_scale

このサンプルでは、次のようにとてもたくさんの物体が表示され回転している様子を確認できます。
Screenshot from 2021-04-03 14-10-19.png

サンプル20 procedural

$ cargo run --example procedural
error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0277`.
error: could not compile `kiss3d`

To learn more, run the command again with --verbose.

このサンプルはエラーにより動作しませんでした。

サンプル21 quad

$ cargo run --example quad

このサンプルでは、3次元空間上に平面が波打っている様子が確認できます。
Screenshot from 2021-04-03 14-45-44.png

サンプル22 rectangle

$ cargo run --example rectangle

このサンプルでは2D空間上に四角形が回転している様子が確認できます

Screenshot from 2021-04-03 14-51-00.png

サンプル23 screenshot

$ cargo run --example screenshot

このサンプルを実行すると3Dグラフィック上のスクリーンショットが生成されます。
Screenshot from 2021-04-03 14-52-53.png
screenshot.png

サンプル24 stereo

$ cargo run --example stereo

下の写真のように四角形が2つ表示されます。マウスでグリグリするとどちらも同じように動くので、物体がコピーされて表示されているようです。
Screenshot from 2021-04-03 15-06-20.png

サンプル25 text

$ cargo run --example text

Screenshot from 2021-04-03 15-26-17.png

サンプル26 texturing

$ cargo run --example texturing

このサンプルでは、キューブにテキスチャーを貼っている様子が表示されます。
Screenshot from 2021-04-03 15-27-19.png

サンプル27 ui

$ cargo run --example ui
thread 'main' panicked at 'The 'conrod' feature must be enabled for this example to work.', examples/ui.rs:21:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

このサンプルでは、上記のメッセージが表示されるのみでした。

サンプル28 window

$ cargo run --example window

このサンプルでは、青い色のwindowが表示されます。
Screenshot from 2021-04-03 15-30-09.png

サンプル29 wireframe

$ cargo run --example wireframe

このサンプルでは3次元の物体をフレームで表示している様子が表示されます。
Screenshot from 2021-04-03 15-31-33.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1