『RustではじめるOpenGL』を読んだ
概要
RustとOpenGLを使ってリアルタイム3Dのデスクトップアプリケーションを作る方法を紹介する本。ある程度RustとOpenGLについて理解していることを前提に書かれている。OpenGL*1、SDL*2、Dear ImGui*3(ImGuiと略される)といったC言語ライブラリと、それに対応するRustのcrateが紹介されている。
その他感想とか
- OpenGLが難しい
- APIはWebGLとほぼほぼ同じように見える
- wgldで学んだもの書き方が似てる amalogue.hateblo.jp
- レンダリングのための手数が多くて、それを一つ一つ丁寧にメソッドコール書かないといけないのが大変
- 空で書ける気がしないので実際のアプリケーション作成にあたってはサンプルコードをゴリゴリに参考にすることになりそう
- APIはWebGLとほぼほぼ同じように見える
- Vertex構造体やFrameBuffer構造体の中でnewするときにOpenGLにバインドする処理などを押し込むのは、関心が外にもれなくて可読性が高そう
- OpenGL crateはAPIコールにunsafeを要求するので悲しみがある
- Cライブラリに対する薄いWrapperを目指してるっぽいので仕方ない
- ImGuiが楽しい
Window::new("Hello world") .size([300.0, 100.0], Condition::FirstUseEver) .build(&ui, || { ui.text("Hello world!"); ui.text("こんにちは世界!"); ui.text("This...is...imgui-rs!"); ui.separator(); let mouse_pos = ui.io().mouse_pos; ui.text(format!( "Mouse Position: ({:.1},{:.1})", mouse_pos[0], mouse_pos[1] )); });