ノーマルマップのあれこれ

この記事 もう大分前ですが3Dモデルを読み込んで OpenGL で表示するようなプログラムを書いていて ノーマルマップを適用するあたりがなかなか難しかったのでまとめておこうという内容です。 ノーマルマップを使ったシェーダーの計算の話などです。 法線ベク…

Blender で 3D モデルのテクスチャに効果をつける

この記事 Blender を少し前に使いはじめたものの自分でモデリングはまだやったことがありませんでした。 昨年末ぐらいから動画を見たりしてモデリングやテクスチャやスキニングのやり方などを勉強中です。 モデリング練習でいらすとやのイラストを元にモデル…

Cコンパイラの学習

この記事 「低レイヤを知りたい人のためのCコンパイラ作成入門」を読んでCコンパイラ書いてみた感想などです。 実際書いたコードはここに置いています。 github.com テキスト www.sigbus.info このテキストは結構前に公開されたもののようでいろんな人がブロ…

Blender でスクリプトを使ってレンダリング

概要 tkaaad97.hatenablog.com この記事で 3D モデルのアニメーションをレンダリングして連番の画像を生成するようなことをしていました。 このときは手動でやっていたんですがアニメーションが複数種類あって、種類によってはモデルの向きを変えてレンダリ…

FFI のあれこれ

はじめに 少し前に FFI を使って Haskell から C++ の処理を呼び出すというのをやっていてなかなか大変だったのでこれについて書いておきます。 私がわからなくて調べたことなどあまり整理されてない雑多な内容になります。 FFI の情報 参考になりそうなペー…

タイルマップ描画のメモ

はじめに もうずいぶん前ですが Tiled Map Editor についてブログに少し書きました。 その後最近になって Tiled Map Editor で作ったマップを描画する部分を OpenGL で実装したりしていたためメモとして書いておきます。 描画の方法 タイルマップのデータを…

3D モデルからドット絵生成

はじめに ゲームの素材に使うようなドット絵のアニメーションを作ったりしたくて 3D モデルから生成するのを試してみました。 ドット絵の素材も売られてたりしますがなかなか自分の使いたいサイズやモーションの条件に合うものが見つかりませんでした。 3D …

Lens パッケージの型の関係について

Lens パッケージの型の関係について はじめに たまに Lens を使うことがあって便利なんだけどよくわからないまま雰囲気で使っているところがあって、もう少し理解したいなという気がしていました。 なかなか難しくていまだに大半は理解できてないんですが Le…

OpenGL のユニフォームブロックについて

はじめに OpenGL のシェーダにデータを受け渡す方法の一つにユニフォームがありますが、 ユニフォームを少し拡張したような機能でユニフォームブロックというものもあってこれについて調べたことについて書きます。 仕様 ユニフォームブロックにはユニフォー…

Jenkins の CodeBuild プラグイン の TIPS

はじめに Jenkins から CodeBuild を使うためのプラグインが AWS で提供されていて、このプラグインのちょっとした使い方についてです。 docs.aws.amazon.com github.com plugins.jenkins.io 検索してもこのプラグインの情報があまり無くて使われてないよう…

モーメントシャドウマップについて

はじめに 分散シャドウマップに続いてモーメントシャドウマップについてです。 モーメントシャドウマップの方が少し難しい感じでなかなか理解がすすまなかったんですが、論文のほかに補足的なドキュメントが出ていてそちらを見ていたら大体の流れが理解でき…

分散シャドウマップについて

はじめに 分散シャドウマップ (Variance Shadow Maps) について調べたことのまとめです。 モーメントシャドウマップという手法の方が新しく提案されていて、これは分散シャドウマップを改良した方法のようです。 最初はモーメントシャドウマップを調べていた…

vertex skinning の覚え書き

はじめに 3D モデルを読み込んで OpenGL で表示させようとしていてこのあたりを調べていたのでここに書いておきます。 glTF を主に調べていましたが、他のフォーマットなどでも同じ仕組みが使われてるようです。 glTF のドキュメントには vertex skinning と…

Go で Lambda 書いたときの覚え書き

はじめに Go 言語はほぼ触ったことなかったんですがもうリリースから10年ぐらい経っているらしいです。 AWS Lambda を書くのに少し Go 言語を使ってまた使うかもしれないので覚えたことを書いておきます。 go1.12 のバージョンを使っていました。 まだ少しし…

OpenGL を使うテストを CI でするときに osmesa が使えそう

はじめに 前に docker で OpenGL を使う環境を作ってそれでローカル環境では動かせていたんですが CI の環境では GPU が使えなかったり、X Server がない、privilegedのオプションが使えないなど場合もあって そのままでは使えないことが多いので CI でも使…

CodeDeploy を導入したときに調べたことなど

はじめに 大分前に CodeDeploy について少し調べたことがありました。 tkaaad97.hatenablog.com その後実際に CodeDeploy を導入する機会があってもう少し色々調べたり試したりしたことがあったのですが、導入したことに満足して調べたことをまとめていませ…

XPath と Lens で XML を扱う

はじめに OpenGL の仕様が XML で書かれていてこれについて調べたりしてました。 XML 扱う機会があまりなくてほとんど使ったことがなかったんですが調べてみると色々と XML 使われているところはあるのだなと感じました。 XML から検索したりコード生成した…

ECS で JMeter を動かしてみる

ECS を使った負荷テストについてです。 負荷テストでは十分な負荷を発生させることができれば 実行環境はある程度自由に選択できるので Docker で色々なツールを実行する というのも選択肢の一つになると思います。 Locust など新しめのツールを ECS で使う…

AWS S3 への匿名での Put

概要 AWS S3 に匿名で Put すると危ないという話についてです。 私もこれを間違ってやってしまってました。 AWS のドキュメントにも少し書かれていましたが間違って使ってしまっている人もいるんじゃないかと思います。 docs.aws.amazon.com 注記 バケットを…

Android で朝起きるときに音楽を流したい

概要 スマート家電などを活用している人の話に影響されて 朝起きる時に音楽を流したり照明を自動で点けたりしたいと思い色々試してました。 スマートスピーカーがあるとアラームとして音楽を流すなど簡単にできそうですが スマートスピーカーは持ってないた…

CloudFormation のリソース仕様からコード生成してみる

はじめに この間 AWS-CDK というプロジェクトが公開されていました。 aws.amazon.com github.com https://awslabs.github.io/aws-cdk/awslabs.github.io まだ開発者プレビューという段階で正式な公開ではないようです。 中身はあまり詳しく見ていませんが、…

InfluxDB と Grafana で可視化して Puppeteer で PDF を生成

はじめに 計測データのグラフや表をまとめたいことが 何度かあったんですがちょうどいいツールを見つけられていませんでした。 エクセルでグラフを作ったりgnuplotでグラフを作ったりもできますが 見た目をかっこよくまとめるのは慣れないと難しそうに感じま…

Docker 内で GLFW のプログラムを動かすサンプル

はじめに Docker の利用は CLI やサーバーサイドの利用が主なのかなと思っていましたが GUI のプログラムもある程度は動かせるようです。 軽いゲームなどを作る場合も使えるかもしれません。 実験用に GLFW のデモアプリを動かす Docker イメージを作ってみ…

Amazon Aurora オートスケーリングでも ScheduledAction が使えた

はじめに オートスケーリング機能でよく使われるのは EC2 のオートスケーリング機能だと思います。 ポリシーを設定すると自動でインスタンスを増減させてスケールアウト、スケールインできます。 またスケジュールされたアクションも設定することができて、…

VS Code でも intero が使えてなかなか便利

はじめに 前に haskell-ide-engine について書いたんですがビルドが面倒などの理由であまり使わなくなりました。 intero は Emacs だけかと思ってたんですがいつの間にか VS Code や neovim でも使えるようになってたため導入してしばらく使ってみています。…

Tiled フォーマットの覚え書き

Tiled ゲームを作る時に使ってみたいと思って前に Tiled について調べたことについて書いて置きます。 Tiled はアクションゲームや RPG などのマップをタイルで構成するためのツールです。 Tiled Map Editor | A flexible level editor ゲームのマップ数が少…

IAM ポリシーでのリソースに対する設定について

はじめに AWS IAM の機能を使うとユーザーや EC2 に付けるロールの権限を細かく設定できて不慮の事故などを防ぐことができます。 IAM ポリシーの設定をリソースに対して行うと例えば本番環境へのリソースを間違って削除したり更新する事故を予防できると思い…

S3 Select の機能を awscli から使ってみた

S3 Select S3 Select は去年の AWS re:Invent で話に上がっていて少し気になっていたものの忘れていました。 S3 Select と Glacier Select – オブジェクトのサブセットを取得 | Amazon Web Services ブログ S3 Select(Preview)を試してみました #reinvent …

KVS から複数件まとめて取得してデータ構築する

はじめに KVS に限った話ではなく DB などでも同じようなことがありますが データ取得件数が多いときに一件づつ取得していると遅くなってしまう場合があります。 こういうときのために複数件まとめて取得する API が用意されている場合が多いと思います。 Re…

抽象構文木の書き方のアイデア

はじめに 抽象構文木の書き方を色々と試行錯誤していて考えついた方法について書いておこうと思います。 Haskell で抽象構文木を書く方法はかなり色々あります。 例えば data で定義する GADTs を使った方法 Fix を使った方法 (Data types à la carte) Tagle…