Vala プログラミング

WebGPU プログラミング

おなが@京都先端科学大

Rust

nannou: An open-source creative-coding framework for Rust

nannouは、Rust言語で書かれたクリエイティブコーディング環境です。 作品もRust言語でコーディングします。nannou Home | Nannou GitHub - nannou-org/nannou: A Creative Coding Framework for Rust.nannouを紹介した日本語のページです。 ・Rust製クリエ…

vulkano バージョンアップ V0.17

vulkano が v0.17 にバージョンアップしました。 バージョンアップにともなって、以下の部分が変更になりました。1 rustc のバージョンアップによる変更 v1.37.0 (2019-08-15)より trait object で dyn を省略するとワーニングが出るように なりました。"dyn…

Rust Vulkano Texture Mapping

Texture Mapping 前回の Two Objects に Texture Mapping を適用しました。 Texture Mapping の方法は、David Wolff「OpenGL 4.0 シェーディング言語 ( OpenGL 4.0 Shading Language Cookbook )」を参考にしています。追加・変更する箇所 1 shader ・vertex…

Rust Vulkano Two Objects

2つのオブジェクト(Two Objects)の描画方法 オブジェクト1(obj-1):キューブ(cube) オブジェクト2(obj-2):床と壁(floor and Walls)1 Vertex buffer と Index buffer Vertex buffer と Index buffer はそれぞれのオブジェクトについて準備します。 オブ…

Rust Vulkano Cubemap

cubemapの描画 Vulkano issue #922 (Usage of CubeMap) を参考にしました。 1) The data for the buffer is the image data of six images appended to each other in the order of: left, right, bottom, top, back, and front (at least that is the order…

Rust Vulkano Cube and Texture ( Depth, Two Uniforms )

#[macro_use] extern crate vulkano; extern crate vulkano_shaders; extern crate winit; extern crate vulkano_win; extern crate arcball; extern crate cgmath; extern crate image; use vulkano_win::VkSurfaceBuild; use vulkano::buffer::BufferUsage…

Vulkano Two Uniforms

This is a Vulkano two uniforms example, which is based on Vulkano image example. ・first uniform : (set = 0, binding = 0) uniform sampler2D ・second uniform : (set = 0, binding = 1) uniform Data #[macro_use] extern crate vulkano; extern cr…

Rust Vulkano Tutorial(1) Window Creation(3) Resize

前回のプログラムは、ウィンドウのリサイズに対応していません。 ウインドウを拡大したとき、描画領域ののサイズが対応していません。3 ウィンドウのリサイズ ウインドウのリサイズに対応するには、ウィンドウをリサイズしたとき、 スワップチェーンとフレ…

Rust Vulkano Tutorial(1) Window Creation(2)

前回のWindow Creation(1)のつづきです。2 ウィンドウの初期化 つづけて、ウィンドウの初期化を行います。次の処理が続きます。 (6)スワップチェーン(Swapchain)とイメージ(SwapchainImage)の作成 (7)レンダーパスと(render_pass)フレームバ…

Rust Vulkano Tutorial(1) Window Creation(1)

Rust Vulkano のチュートリアルです。 今回は初期化したウィンドウ(Window)の作成について記述しています。 Vulkanoガイド(https://vulkano.rs/guide/introduction)とVulkano Triangle Example (https://github.com/vulkano-rs/vulkano)を参考にしてい…

Rust Vulkano Triangle (3)

Rust Vulkano Triangle (2)の続きです。5 スワップチェインとイメージの作成 screen(サーフェイス)にイメージを描画するには、Swapchain (スワップチェイン)が必要になります。 スワップチェインの作成と同時にSwapchainImage(イメージ)が作成され ま…

Rust Vulkano Triangle (2)

前回の Vulkano API を用いた Triangle 描画のまとめです。 Vulkan と Vulkano のチュートリアルサイト、Vulkano 関連のドキュメントを参考にしています。 ・ Vulkan ( Introduction - Vulkan Tutorial ) ・ Vulkano ( Vulkano ) ・ Vulkano ドキュメント ( …

Rust Vulkano ( Vulkan ) Triangle

Rust Vulkano プロジェクト( https://github.com/vulkano-rs/vulkano ) の triangle サンプルです。 マウスで簡単にズームや回転が出来るように、ArcBallCamera( arcball crate) を追加しています。実行結果 スタート時 zoom ( マウスホイールのアップ・ダウ…

Rust kiss3d ライブラリ

kiss3dライブラリ(https://github.com/sebcrozet/kiss3d)の紹介です。kiss3dは、3dのグラフィックス エンジン(graphics engine)です。 オブジェクト(cubeやsphereなど)の描画、オブジェクトの拡大縮小や回転などの 操作が簡単にできるように設定されてい…

Rust glium Tessellation (4) 3D surface

glium テッセレーションDavid Wolff著「OpenGL 4.0 シェーディング言語 ( OpenGL 4.0 Shading Language Cookbook )」 第6章「ジオメトリシェーダとテッセレーションシェーダ」 「3Dサーフェイスをテッセレートする」 「シェーディングしたメッシュの上にワイ…

Rust glium Tessellation (3) Teapot

glium テッセレーション Teapot ( Phong Model )実行結果 tessellation level = 2 tessellation level = 4 tessellation level = 81 depth bufferの設定 let display = glutin::WindowBuilder::new() .with_dimensions(800, 600) .with_title(format!("Tess …

Rust glium Tessellation (2) 2D quad

glium テッセレーションDavid Wolff著「OpenGL 4.0 シェーディング言語 ( OpenGL 4.0 Shading Language Cookbook )」 第6章「ジオメトリシェーダとテッセレーションシェーダ」 「2D四角形をテッセレートする」実行結果 tessellation level = 2 tessellation …

Rust glium Tessellation (1) Bezier Curve

glium(https://github.com/tomaka/glium)のexamplesにあるtessellation プログラム(tessellation.rs)を参考にして、David Wolff著「OpenGL 4.0 シェーディング言語 ( OpenGL 4.0 Shading Language Cookbook )」の6章 「ジオメトリシェーダとテッセレーショ…

Rust glium ( OpenGL ) triangle and square

rust の glium ライブラリを利用して、三角と四角を同一ウィンドウに 表示します。実行結果 プログラム #[macro_use] extern crate glium; fn main() { use glium::{DisplayBuild, Surface}; let display = glium::glutin::WindowBuilder::new() .with_dimen…

Rust OpenGL gliumライブラリ

今回は、RustでOpenGLを扱うライブラリの一つであるgliumについて まとめています。(glium([https://github.com/tomaka/glium/)の examplesにあるtutorial-02.rsを使用しています。)gliumでは、OpenGLのAPIとは異なる独自のAPIを導入しています。 以下は、…

Rust glium テッセレーション ( Tessellation )

glium (https://github.com/tomaka/glium)のexamplesに、tessellationの サンプル(tessellation.rs)があります。 上矢印キーと下矢印キーを使って、tessellation レベルを上げ下げできます。実行結果 tessellation level = 2 tessellation level = 4 tesse…

Rust ImGui + Glium ( OpenGL )

ImGui のGUI(ボタン)から、Gliumで描画したtriangleの回転角をコントロールできる ようにしています。 (実行結果) ・ imgui ウィンドウ上の「+」ボタンと「ー」ボタンを押すと、回転角の値が増減します。プログラム ### imgui-glium.rs #[macro_use] ex…

Rust Glium CubeMap ( OpenGL )

CubeMap (実行結果) ・ cubemap 画像は、Humus サイト(http://www.humus.name/)のTexures(Yokohama 3) を使用しています。(画像サイズを512x512にしています。) プログラム ###glium-cubemap.rs #[macro_use] extern crate glium; extern crate image;…

Rust glium OpenGL ( triangle )

Rust言語のgliumライブラリ(OpenGLライブラリ)を用いて、coloured triangleを描画しています。 ( 実行結果)・triangleは、上矢印キー(左回転)と下矢印キー(右回転)を使って回転させて います。 プログラム### triangle.rs#[macro_use]extern crate gl…