asaのブログ

数学・プログラミング(C++、WebGL)をまとめています

【WebGL】javascriptで画像読込

 テクスチャでハマったのでjavascriptで画像読込やってみました。
 

gist66726ed65c962b2b1c6c3b5126f9342c

【WebGL】NURBS曲線

 B-Splineに続いて、NURBS曲線を描いて見ました。
 重みを変化させると円が変化します。

■NURBS曲線
f:id:asa_r:20180218170730p:plain

■コード

gistbd0d6cf103567412bb83342700242e82

■参考
3次元図形処理技術解説 第11回 NURBS曲線 | O2

【WebGL】B-Spline曲線

 Basis-Splineを略してB-Splineと言います。制御点を大きく逸れるベジエ曲線と違ってB-Splineはある程度制御点近くを通ってくれます。

ベジエ曲線
f:id:asa_r:20180218143712p:plain

■B-Spline曲線
f:id:asa_r:20180218143718p:plain

■コード

gistd7839ca844ee64a21bc88bc2206599d3

■参考
Future B-Spline Page
B-スプライン曲線 - Wikipedia
15-2.補間(曲線)

【技術周り】CUDA

 CPUで時間のかかってしまう並列処理をGPUにやってもらう仕組み。C/C++で書ける。

GPUの構造
(1) PCI Express・・・PCとデータのやり取りをする出入り口
(2) DRAM・・・メモリ
(3) L2キャッシュ・・・キャッシュメモリ
(4) SM・・・並列プロセッサ
(5) Giga Thread Engine・・・処理の割り振りをする

■階層構造
(1) Thread・・・実行最小単位
(2) Block・・・Threadの集まり
(3) Grid・・・Blockの集まり

■CUDAのプレイヤー
(1) ホスト・・・命令をだすPCサイド
(2) サーバ・・・命令を実行するGPUサイド

■実行順序
(1) メモリの確保
(2) データコピー
(3) カーネル呼び出し
(4) 同期処理
(5) 終了処理

■環境構築
(1) CUDA Toolkitをダウンロード(1.5GB程度)
(2) PATHを通しておく

Hello World !
(1) 適当なフォルダでhello.cuを作成(Cでhelloを書くコード)
(2) nvcc -o hello hello.cu でコンパイルした後、実行
(3) helloと表示されれば成功

■参考
(1) CUDAプログラミング入門

【画像処理】最近のニュースまとめ(1/28-)

 今週集めたニュースをまとめておきました。

jp.techcrunch.com

 選択ツールがAIですごいことになったらしい。


jp.techcrunch.com

 名画と自撮りをマッチングさせてくれるアプリ。


www.recode.net

 ちょっと古いですけど、写真が綺麗に撮れるようになるよって話。

jp.techcrunch.com

 顔の数学的表現というのが面白い。