読者です 読者をやめる 読者になる 読者になる

EPUB3ビューワー実装論(プロット)

EPUB3について EPUB3の概要 EPUBの歴史 EPUB3ガイドライン・拡張: 電書協ガイド、KADOKAWA-EPUB 既存のEPUB3ビューワー 事実上のリファレンス実装: iBooks リファレンス実装を目指すOSS: Readium スクロールタイプの実装: BiB/i, Murasaki 日本の2大ビューワ…

three.jsでglFrustum

three.jsでは、射影行列(ProjectionMatrix)がTHREE.Cameraとして抽象化されており、透視投影であるTHREE.PerspectiveCameraと、平行投影であるTHREE.OrthographicCameraの2つが標準で用意されています。一方、OpenGL*1には透視投影の射影行列APIとしてglFr…

THREE.TextureのneedsUpdate

ローダを使わずに自力でテクスチャを生成する時は、needsUpdateをtrueにすることを忘れずに。 texture = new THREE.Texture(img); // img要素 or canvas要素 texture.needsUpdate = true; 内部的にどうなっているかというと、最終的にrenderer.setTextureが…

three.jsにおける2D描画方法

Webブラウザ向けの3DCGライブラリであるthree.jsで、3D描画に2D描画*1を織り交ぜる方法を紹介します。これにより、前景と背景に自由に2D画像を描画できるようになり、ゲームのHUD表示などが可能になります。 基本的な考え方 three.jsに限った話ではありませ…

CherryPyとws4pyによるWebSocketチュートリアル

この記事は QiitaのPython Advent Calendar 2013 の7日目です。 はじめに 簡単に自己紹介をすると、筆者はOSやHCIを研究しているふりをしている、しがない院生です。現在、修士論文に向けPython+OpenCVでARシステムを構築しています。来年からWeb系エンジニ…

HTML5のDrag & Dropの罠

dragoverイベントをキャンセルしないと、dropイベントが発生しません!*1以上。 おまけ この仕様ですが、このサイトでいかにクソかについて語られているので、一読をおすすめします。こういうお話も含んだ、ちゃんとした実装の仕方は「ドラッグ&ドロップ-H…

ArrayBufferとBlobについてのメモ

とりま今の理解。ちゃんと調べてないので間違ってる可能性大。 Blobオブジェクトはバイナリデータを抽象化したもの。 Blobの実データはArrayBufferなどに変換して得られる。 ArrayBuffer内のデータから値を抽出するときはTyped Arrays(Float32Array、Int16Ar…

Photo Booth on the Web

今更ながら、WebRTCというHTML5の新規格を先日知りまして、思わず作ってしまいました。 見切り発車気味ですが公開します。 Photo Booth on the Web PhotoBoothはMacやiOSにデフォルトで入っているアプリで、カメラからの映像にリアルタイムでエフェクトを掛…