<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.azzip-azzip.com</title>
	<atom:link href="http://blog.azzip-azzip.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.azzip-azzip.com</link>
	<description></description>
	<lastBuildDate>Thu, 12 Apr 2012 14:53:32 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>[obj-c] AVFoundationむずかしい</title>
		<link>http://blog.azzip-azzip.com/2012/04/obj-c-avfoundation_muzui/</link>
		<comments>http://blog.azzip-azzip.com/2012/04/obj-c-avfoundation_muzui/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 14:51:37 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3262</guid>
		<description><![CDATA[家で動画系のアプリを作っているのですが、AVFoundationフレームワークを使えば実装できるということはわかっていたので、 とりあえず重要そうなAVCapture系のクラスをちょこちょこと調べてました。 [obj-c [...]]]></description>
			<content:encoded><![CDATA[<p>
家で動画系のアプリを作っているのですが、AVFoundationフレームワークを使えば実装できるということはわかっていたので、<br />
とりあえず重要そうなAVCapture系のクラスをちょこちょこと調べてました。<br />
<br />
<a href="http://blog.azzip-azzip.com/2012/03/avfoundation/">[obj-c] AVFoundationのAVCapture〜クラスのメモ</a>　<br />
<br />
AVFoundationのリファレンスをがんばって翻訳しつつクラスの役割を見ていくところからはじまり、<br />
appleのサンプルであるAVCamを読み解いていく感じでスタート。<br />
<br />
読んで試してなんとなくAVFoundationのAVCapture〜系のクラスの基本的な処理は理解できてきて、<br />
いざ作りたいもののテスト版を作っていこうという感じだったのですが、<br />
<ul>
	<li>・AVCaptureVideoDataOutputクラス</li>
	<li>・AVCaptureMovieFileOutputクラス</li>
</ul>
の2つのアウトプットが共存できないという、、、　<br />
2つを同時に使っているサンプル無いな～とは思っていたのですが、できないんですね。<br />
この2つを組み合わせればいけるじゃん！とか内心思ってたのが外れ、ちょっとどうしようという感じでした。<br />
<br />
で、気を取り直して別方向からのアプローチに切り替え、またちょこちょこ調べるうちに、<br />
AVAssetWriterを使えばいけそうという感じになったので、<br />
<ul>
	<li>・AVAssetWriterクラス</li>
	<li>・AVAssetWriterInputクラス</li>
</ul>
を使った実装を中心で調べました。　やっぱり日本語の情報は少ないですね、、<br />
<br />
appleのサンプルのRosyWritterというのが、自分のやりたいことに近かったのでそれを参考に勉強。<br />
RosyWritterを見て、要は、<br />
<br />
<div class="line">CMSampleBufferRefさえ用意できれば、どんなに加工したものでも最終的に動画データとして保存できる。</div>
<br />
という感じのことがわかりました。<br />
その考えを元に良いやり方ないかな〜とググっていたら、<br />
<br />
<ul>
	<li>・openGLからCMSampleBufferRefを創りだす方法</li>
	<li>・CGImageからCVImageBufferに変換する方法</li>
</ul>
<br />
がStack Overflow上でみつかりました。 さすが！<br />
後者の方法からテストし、<br />
<br />
結果的には<br />
<strong>AVAssetWriterInputPixelBufferAdaptor</strong><br />
というクラスも使うことで<br />
<br />
<div class="line">移している映像を毎フレームキャプチャして、それを画像に変換、最終的にそれを全部くっつけて1つにしたmovデータで保存</div>
<br />
という実装ができました。<br />
最終的なものには画像に変換したものに加工処理を加える予定です。<br />
保存された動画はいいのですが、プレビュー用のリアルタイムでキャプチャしているものをUIViewで表示している方の処理速度的にちょっと微妙で、<br />
そこだけopenGLで描画しようかなというところです。<br />
<br />
今ここ<br />
<br />
ここまでくるのになんだかんだで結構時間かかった、、<br />
頭の整理をかねてメモ書き。<br />
<br />
またちょっと進んだ〜<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/04/obj-c-avfoundation_muzui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Facebook] Facebookページの広告だしてみた</title>
		<link>http://blog.azzip-azzip.com/2012/04/facebook_ad/</link>
		<comments>http://blog.azzip-azzip.com/2012/04/facebook_ad/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 17:07:36 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3245</guid>
		<description><![CDATA[自分の管理してるFacebookページの広告を3月〜４月の間でだしてみました。 ・予算 : 3,000 ・タイプ : CPC（クリック回数によって支払額を決めるクリック単価広告） 結果 予算がかなり低いので全体的な数値は [...]]]></description>
			<content:encoded><![CDATA[<p>
自分の管理してるFacebookページの広告を3月〜４月の間でだしてみました。<br />
<ul>
	<li>・予算      :  3,000</li>
	<li>・タイプ   :  CPC（クリック回数によって支払額を決めるクリック単価広告）</li>
</ul>
<br />
</p>
<blockquote><p>結果</p></blockquote>
<p>
<img src="http://blog.azzip-azzip.com/wp-content/uploads/2012/04/facebook_ad.jpg" alt="facebook_ad" />
<br />
<br />
<br />
予算がかなり低いので全体的な数値は低いですが、、<br />
広告をクリックしてくれた人の半分以上がFacebookページをいいね！してくれた結果になりました。<br />
これは思ってた以上です。<br />
<br />
CTR（インプレッション数に対するクリック率）が低いのは何か修正の余地がありそうですが、もうちょっと試してみないとなんとも。<br />
インプレッション数がこの予算でこの数字がいいのかどうなのかももうちょっと様子みですね。<br />
<br />
また来月CPCで広告だしてみようかと思います。　5000円くらいは、、！<br />
<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/04/facebook_ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[obj-c] AVFoundationのAVCapture〜クラスのメモ</title>
		<link>http://blog.azzip-azzip.com/2012/03/avfoundation/</link>
		<comments>http://blog.azzip-azzip.com/2012/03/avfoundation/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 17:53:09 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3197</guid>
		<description><![CDATA[iOS Developer ProgramにあるAVCamを理解しないと次に作りたいアプリをしっかりと作れないので、 理解するためにいろいろとメモっていく予定です。 最初はやっぱりAVFoundationのAVCaptu [...]]]></description>
			<content:encoded><![CDATA[<p>
iOS Developer Programにある<a href="https://developer.apple.com/library/ios/#samplecode/AVCam/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010112">AVCam</a>を理解しないと次に作りたいアプリをしっかりと作れないので、<br />
理解するためにいろいろとメモっていく予定です。<br />
<br />
最初はやっぱりAVFoundationのAVCapture〜を理解するところから！今更感もありますが、きにしません。<br />
ググればいろいろと情報は出てくるけども、とりあえず参考サイト見たり翻訳しながらメモ。<br />
<br />
</p>
<blockquote><p>AVFoundation の AVCapture〜クラス</p></blockquote>
<p>
オーディオデータやビデオデータを扱うクラス<br />
<br />
必要なフレームワークは<br />
<strong><ul>
	<li>・AVFoundation</li>
	<li>・CoreVideo</li>
	<li>・CoreMedia </li>
</ul></strong><br />
<br />
<br />
各クラスの使いそうなメソッドやプロパティ<br />
</p>
<blockquote><p>AVCaptureSession</p></blockquote>
<p>
入力データと出力データの調整をする<br />
中心的クラス<br />
<br />
<strong>– canAddInput:</strong><br />
与えられた入力データがセッションに追加できるかどうか<br />
<br />
<strong>– addInput:</strong><br />
与えられた入力データをセッションに追加する<br />
<br />
<strong>– removeInput:</strong><br />
与えられた入力データをセッションから削除<br />
<br />
<strong>– canAddOutput:</strong><br />
与えられた出力データがセッションに追加できるかどうか<br />
<br />
<strong>– addOutput:</strong><br />
与えられた出力データをセッションに追加する<br />
<br />
<strong>– removeOutput:</strong><br />
与えられた入力データをセッションから削除<br />
<br />
<strong>– startRunning:</strong><br />
フローの開始<br />
<br />
<strong>– stopRunning:</strong><br />
フローの停止<br />
<br />
<strong>beginConfiguration</strong><br />
呼び出した後にキャプチャデバイスの削除や追加をする<br />
<br />
<strong>commitConfiguration</strong><br />
beginConfigurationの変更をまとめて適用する<br />
<br />
<strong>running</strong><br />
セッションが実行中かどうか確認<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureDevice</p></blockquote>
<p>
入力データ（オーディオやビデオのデバイス）を取得<br />
オブジェクトは入力デバイスごとに1つずつ存在する<br />
<br />
<strong>+ defaultDeviceWithMediaType:</strong><br />
指定したタイプのメディアデバイスを取得する事ができる<br />
<br />
<strong>+ devicesWithMediaType:</strong><br />
指定したタイプのキャプチャを入力できるメディアデバイスの配列を取得する事ができる<br />
（カメラの表と裏）<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureDeviceInput</p></blockquote>
<p>
取得した入力データをAVCaptureSessionに渡す<br />
リファレンスに載ってないクラス？<br />
<br />
<strong>deviceInputWithDevice:</strong><br />
AVCaptureDeviceのインスタンスとエラー処理用のインスタンスを渡す<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureVideoDataOutput</p></blockquote>
<p>
出力データを受け取る<br />
<br />
<strong>videoSettings</strong><br />
圧縮の設定を行う<br />
<br />
<strong>alwaysDiscardsLateVideoFrames</strong><br />
処理が遅れるばあいにビデオフレームを落とすかどうか？<br />
デフォルトはYES<br />
<br />
<strong>– setSampleBufferDelegate:queue:</strong><br />
デリゲートとコールバック用のキューの設定<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureConnection</p></blockquote>
<p>
入力データと出力データの接続状態<br />
<br />
<strong>videoMirrored</strong><br />
鏡像表示されているかどうか<br />
<br />
<strong>videoOrientation</strong><br />
データの向き<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureStillImageOutput</p></blockquote>
<p>
メタデータを使って静止画をキャプチャするために使用する<br />
<br />
<strong>– captureStillImageAsynchronouslyFromConnection:completionHandler:</strong><br />
静止画のキャプチャをする<br />
<br />
<strong>+ jpegStillImageNSDataRepresentation:</strong><br />
キャプチャしたデータの取得<br />
<br />
<strong>outputSettings</strong><br />
圧縮の設定を行う<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureVideoPreviewLayer</p></blockquote>
<p>
カメラで録画している内容を表示する<br />
<br />
<br />
</p>
<blockquote><p>AVCaptureMovieFileOutput</p></blockquote>
<p>
ムービーファイルに出力する場合に使用<br />
<br />
<strong>startRecordingToOutputFileURL:recordingDelegate: </strong><br />
QuickTimeムービーの録画を開始する<br />
 <br />
<br />
</p>
<blockquote><p>AVCaptureAudioDataOutput</p></blockquote>
<p>
キャプチャ中のオーディオデータを処理する場合に使用 <br />
<br />
<br />
<br />
間違ってたり、このメソッド重要だろうとかあったら教えてください。<br />
ちょこちょこ書き足していく予定です。<br />
<br />
<br />
</p>
<blockquote><p>参考</p></blockquote>
<p>
・<a href="http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVFoundationFrameworkX/_index.html#//apple_ref/doc/uid/TP40010364">リファレンス</a><br />
・<a href="http://news.mynavi.jp/column/iphone/040/index.html">http://news.mynavi.jp/column/iphone/040/index.html</a><br />
・<a href="http://news.mynavi.jp/column/iphone/041/index.html">http://news.mynavi.jp/column/iphone/041/index.html</a><br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/03/avfoundation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[apps , iPhone] picrollというアプリをリリースしました</title>
		<link>http://blog.azzip-azzip.com/2012/03/apps_picroll/</link>
		<comments>http://blog.azzip-azzip.com/2012/03/apps_picroll/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 14:24:23 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[apps]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3185</guid>
		<description><![CDATA[picrollはスクロールフォトビューワーです。 写真の閲覧を快適にします。 横スワイプでは無く、縦スクロールで写真を閲覧します。 よかったら使ってみてください。 早速紹介していただきました。 ・横スワイプではなく、縦ス [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://apps.azzip-azzip.com/ios/picroll/"><img src="http://apps.azzip-azzip.com/assets/img/picroll/picroll_sc.jpg" alt="picroll" /></a><br />
<br />
<a href="http://itunes.apple.com/jp/app/picroll/id509838506?mt=8&#038;uo=4" target="itunes_store"><img src="http://r.mzstatic.com/images/web/linkmaker/badge_appstore-lrg.gif" alt="picroll - azzip-azzip" style="border: 0;"/></a><br />
<br />
picrollはスクロールフォトビューワーです。<br />
写真の閲覧を快適にします。<br />
<br />
横スワイプでは無く、縦スクロールで写真を閲覧します。<br />
よかったら使ってみてください。<br />
<br />
<br />
早速紹介していただきました。<br />
・<a href="http://d.hatena.ne.jp/renewal49/20120320/1332204158">横スワイプではなく、縦スクロールで閲覧するフォトビューワー『picroll』 &#8211; リニューアル式 </a><br />
本当にありがとうございます！<br />
<br />
<br />
</p>
<blockquote><p>support page</p></blockquote>
<p>
<a href="http://apps.azzip-azzip.com/ios/jp/picroll/">http://apps.azzip-azzip.com/ios/jp/picroll/</a><br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/03/apps_picroll/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[event] 上野遠足をすっぽかしたヤチをしばく会 〜ヤチとインディアンデスロック〜</title>
		<link>http://blog.azzip-azzip.com/2012/02/mirai-kagakukan/</link>
		<comments>http://blog.azzip-azzip.com/2012/02/mirai-kagakukan/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 17:33:59 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[event]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3174</guid>
		<description><![CDATA[つづる達と科学未来館に行ってきました！ プラネタリウムを観て、今年のメディア芸術祭でも賞をとった作品で遊び、字作字演の素敵なアイデアを目の当たりにし、地球ソーダを飲んだ素敵な時間でした！ 他の写真 もまたまたFlickr [...]]]></description>
			<content:encoded><![CDATA[<p>
つづる達と科学未来館に行ってきました！<br />
プラネタリウムを観て、今年のメディア芸術祭でも賞をとった作品で遊び、字作字演の素敵なアイデアを目の当たりにし、地球ソーダを飲んだ素敵な時間でした！<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6928286565/in/photostream"><img src="http://farm8.staticflickr.com/7051/6928286565_5fb9f6482e_b.jpg" alt="つづる" /></a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6782168118/in/photostream"><img src="http://farm8.staticflickr.com/7065/6782168118_fe4d55cf87_b.jpg" alt="つづる２" /></a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6928288629/in/photostream"><img src="http://farm8.staticflickr.com/7066/6928288629_979fd98ec1_b.jpg" alt="つづる３" /></a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6782167878/in/photostream"><img src="http://farm8.staticflickr.com/7059/6782167878_0d5c2a4c58_b.jpg" alt="つづる４" /></a><br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/sets/72157629450728315/with/6782167878/">他の写真</a> もまたまたFlickrにアップしてあります<br />
<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/02/mirai-kagakukan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[obj-c] BarButtonItem を Interface Builder で簡単に画像にする</title>
		<link>http://blog.azzip-azzip.com/2012/02/obj-c_barbuttonitem/</link>
		<comments>http://blog.azzip-azzip.com/2012/02/obj-c_barbuttonitem/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 10:45:31 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[objective-c]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3149</guid>
		<description><![CDATA[今日も 堤さん と自由が丘ハッカソンやってきました。 疑問点をいろいろ聞けて充実した時間でした。　次回は３月！　楽しみです。 本題。 Interface Builder でいろいろやりたいタイプなので、どうにかしてできな [...]]]></description>
			<content:encoded><![CDATA[<p>
今日も <a href="http://d.hatena.ne.jp/shu223/">堤さん</a> と自由が丘ハッカソンやってきました。<br />
疑問点をいろいろ聞けて充実した時間でした。　次回は３月！　楽しみです。<br />
<br />
本題。<br />
Interface Builder でいろいろやりたいタイプなので、どうにかしてできないかなーと思っていじってたらできたメモ。<br />
<br />
こうして、UIViewの上にてきとーにRound Rect Buttonを配置して<br />
<img src="http://blog.azzip-azzip.com/wp-content/uploads/2012/p01.jpg" alt="" title="p01" width="370" height="400" class="alignnone size-full wp-image-3154" />
<br />
<br />
TypeをCustomにして、画像にする<br />
<img src="http://blog.azzip-azzip.com/wp-content/uploads/2012/p02.jpg" alt="" title="p02" width="369" height="400" class="alignnone size-full wp-image-3155" />
<br />
<br />
それをNavigationBarの上にドラッグする<br />
<img src="http://blog.azzip-azzip.com/wp-content/uploads/2012/p03.jpg" alt="" title="p03" width="369" height="400" class="alignnone size-full wp-image-3156" />
<br />
<br />
でいけた！！<br />
こんな簡単にできるの知らなかった。<br />
自動的にBarButtonItemのしたにButtonが配置されるかんじになるみたい。<br />
便利！ 便利！<br />
<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/02/obj-c_barbuttonitem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[event] ぶらり大阪・京都の旅 2011 冬</title>
		<link>http://blog.azzip-azzip.com/2012/01/osaka_kyoto_2011_winter/</link>
		<comments>http://blog.azzip-azzip.com/2012/01/osaka_kyoto_2011_winter/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 17:48:07 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[event]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=3029</guid>
		<description><![CDATA[ぶらり大阪・京都の旅 2011 冬 ということで、年末の12/28夜に出発して12/31朝に帰ってくる小旅行してきました。 大阪と京都です。 大阪は、まさに食い倒れといった感じで食べまくってました。 京都では観光地をいろ [...]]]></description>
			<content:encoded><![CDATA[<p>
ぶらり大阪・京都の旅 2011 冬 ということで、年末の12/28夜に出発して12/31朝に帰ってくる小旅行してきました。<br />
大阪と京都です。<br />
<br />
大阪は、まさに食い倒れといった感じで食べまくってました。<br />
京都では観光地をいろいろ回って ザ・京都 っていう感じを満喫しました。<br />
<br />
どちらもやさしいタクシーの運転手さんに恵まれて、とても充実した楽しい旅行でした。<br />
<br />
</p>
<blockquote><p>大阪</p></blockquote>
<p>
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606342571/in/set-72157628649276795"><img src="http://farm8.staticflickr.com/7150/6606342571_e437482569_b.jpg" alt="大阪" /></a><br />
かに道楽（道頓堀）<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606389207/in/set-72157628649276795"><img src="http://farm8.staticflickr.com/7165/6606389207_4a33f6409a_b.jpg" alt="大阪4" /></a><br />
赤い鳥（心斎橋）<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606428353/in/set-72157628649276795"><img src="http://farm8.staticflickr.com/7142/6606428353_20613091ce_b.jpg" alt="大阪2" /></a><br />
通天閣<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606435027/in/set-72157628649276795"><img src="http://farm8.staticflickr.com/7151/6606435027_07ed8a3e63_b.jpg" alt="大阪3" /></a><br />
グリコ（道頓堀）<br />
<br />
<br />
</p>
<blockquote><p>京都</p></blockquote>
<p>
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606477209/in/set-72157628649722735"><img src="http://farm8.staticflickr.com/7174/6606477209_377a03e999_b.jpg" alt="京都" /></a><br />
京都タワー<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606477693/in/set-72157628649722735"><img src="http://farm8.staticflickr.com/7162/6606477693_f676edc867_b.jpg" alt="京都2" /></a><br />
三十三間堂<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606487381/in/set-72157628649722735"><img src="http://farm8.staticflickr.com/7023/6606487381_0e0edf7bf9_b.jpg" alt="京都3" /></a><br />
清水寺<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606501489/in/set-72157628649722735"><img src="http://farm8.staticflickr.com/7148/6606501489_357fdff858_b.jpg" alt="京都4" /></a><br />
祗園<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6606497619/in/set-72157628649722735"><img src="http://farm8.staticflickr.com/7145/6606497619_360eb2085f_b.jpg" alt="京都5" /></a><br />
祗園<br />
<br />
他にもFlickrに<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/sets/72157628649276795/">ぶらり大阪・京都の旅 2011 冬 〜大阪編〜</a><br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/sets/72157628649722735/">ぶらり大阪・京都の旅 2011 冬 〜京都編〜</a><br />
で写真あげてありますんで、よかったら見てみてください。<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/01/osaka_kyoto_2011_winter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[other] とりあえず、2012 新年の目標</title>
		<link>http://blog.azzip-azzip.com/2012/01/other-%e3%81%a8%e3%82%8a%e3%81%82%e3%81%88%e3%81%9a%e3%80%812012-%e6%96%b0%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99/</link>
		<comments>http://blog.azzip-azzip.com/2012/01/other-%e3%81%a8%e3%82%8a%e3%81%82%e3%81%88%e3%81%9a%e3%80%812012-%e6%96%b0%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 15:27:53 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[other]]></category>
		<category><![CDATA[新年]]></category>
		<category><![CDATA[目標]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2871</guid>
		<description><![CDATA[新年明けましておめでとうございます。 とりあえず、2012 新年の目標からこのブログをスタートしたいと思います！ 仕事を頑張るのはもちろんのことなので、 プライベートの目標で。 プライベートワークをしっかりやる ・今やっ [...]]]></description>
			<content:encoded><![CDATA[<p>
新年明けましておめでとうございます。<br />
とりあえず、2012 新年の目標からこのブログをスタートしたいと思います！<br />
<br />
仕事を頑張るのはもちろんのことなので、<br />
プライベートの目標で。<br />
<br />
</p>
<blockquote><p>プライベートワークをしっかりやる</p></blockquote>
<p>
<ul>
	<li>・今やってる（1つはこれからやる予定の）個人プロジェクトをどんどん制作・更新していく</li>
	<li>・iPhone or iPad アプリを合計で３つはリリースする！！</li>
</ul>
</p>
<blockquote><p>プログラミング・その他技術などのレベルアップ</p></blockquote>
<p>
<ul>
	<li>・openGL / C++ / oblective-c などのC言語関連の知識の向上</li>
	<li>・コンピュータビジョンの勉強</li>
	<li>・電子工作も引き続き遊びながら覚えていきたい</li>
</ul>
</p>
<blockquote><p>数学知識の向上</p></blockquote>
<p>
<ul>
	<li>・プログラムの勉強をしていく中で数学の勉強も</li>
	<li>・ゲーム制作のための数学・物理本を参考にして勉強</li>
</ul>
</p>
<blockquote><p>英語の習得</p></blockquote>
<p>
<ul>
	<li>・webページの一日一日の課程をやっていく</li>
	<li>・twitterを利用して覚えていく</li>
</ul>
</p>
<blockquote><p>その他もろもろ</p></blockquote>
<p>
<ul>
	<li>・ダイエット！ -10kgくらい！</li>
	<li>・本をたくさん読む</li>
</ul>
<br />
しっかりとした基板を作れるように、勉強する時間をもっとしっかり作って、成長できる一年にする。<br />
やりたい事がいっぱいあるので、少しづつ確実にやっていけるように。目標を明確に持つように。<br />
と、自分に言い聞かせて有意義に生活していきます。<br />
今年も一年よろしくお願いします。<br />
<br />
<br />
あと、去年参加した<a href="http://atnd.org/events/22792">iOS Advent calendar</a>が電子書籍になるみたいで、自分の記事も載せていただけるみたいです。<br />
参加できて良かった！<br />
<br />
今年もがんばるぞー！<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2012/01/other-%e3%81%a8%e3%82%8a%e3%81%82%e3%81%88%e3%81%9a%e3%80%812012-%e6%96%b0%e5%b9%b4%e3%81%ae%e7%9b%ae%e6%a8%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[openFrameworks] openFrameworksでJuliusを使う</title>
		<link>http://blog.azzip-azzip.com/2011/12/openframeworks-openframeworks%e3%81%a7julius%e3%82%92%e4%bd%bf%e3%81%86/</link>
		<comments>http://blog.azzip-azzip.com/2011/12/openframeworks-openframeworks%e3%81%a7julius%e3%82%92%e4%bd%bf%e3%81%86/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 19:50:27 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[julius]]></category>
		<category><![CDATA[openFrame]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2887</guid>
		<description><![CDATA[openFrameworksでJuliusを使ったときのメモ。 Juliusをmacで使う方法は以下のサイトを参考にさせていただきました。 ・http://d.hatena.ne.jp/kazekyo/20100821/ [...]]]></description>
			<content:encoded><![CDATA[<p>
openFrameworksでJuliusを使ったときのメモ。<br />
Juliusをmacで使う方法は以下のサイトを参考にさせていただきました。<br />
・<a href="http://d.hatena.ne.jp/kazekyo/20100821/1282406366">http://d.hatena.ne.jp/kazekyo/20100821/1282406366</a><br />
・<a href="http://d.hatena.ne.jp/foldrr/20111009/p1">http://d.hatena.ne.jp/foldrr/20111009/p1</a><br />
<br />
<br />
</p>
<blockquote><p>openFrameworksの設定</p></blockquote>
<p>
addonsExamplesの中にある networkTcpClientExample をベースにして、<br />
[c]<br />
//testApp.cpp<br />
weConnected = tcpClient.setup(&#8220;localhost&#8221;, 10500);<br />
[/c]<br />
testApp.cppの上の部分の行をこういうふうに変更。<br />
ビルドして.appを起動。<br />
<br />
<br />
</p>
<blockquote><p>Juliusの設定</p></blockquote>
<p>
Juliusはターミナルからモジュールモードで起動してあげる。<br />
<br />
<strong>手順</strong><br />
1. dictation-kit-v4.1.tar.gz を<a href="http://julius.sourceforge.jp/index.php?q=dictation-kit.html">juliusのサイト</a>からダウンロードして解凍。 Linux版でもWindows版でもどっちでもいいっぽいです。<br />
2. ターミナルで以下のコマンドを実行してdictation-kit-v4.1のディレクトリに移動。<br />
<div class="line">cd dictation-kit-v4.1</div>
3. 最後にターミナルで以下のコマンドを実行してモジュールモードで起動。<br />
<div class="line"> julius -C fast.jconf -charconv EUC-JP UTF-8 -module</div>
 <br />
<br />
この状態でマイクのついているマシンで適当に話しかけると、<br />
こんな感じのXML形式の文字列をopenFrameworks側で取得できる<br />
[c]<br />
<RECOGOUT>  <SHYPO RANK="1" SCORE="-3304.690674"><br />
    <WHYPO WORD="" CLASSID="<s>&#8221; PHONE=&#8221;silB&#8221; CM=&#8221;0.701&#8243;/><br />
    <WHYPO WORD="こんにちは" CLASSID="こんにちは:コンニチワ:こんにちは:3" PHONE="k o N n i ch i w a" CM="0.288"/><br />
    <WHYPO WORD="。" CLASSID="。:。:。:8" PHONE="sp" CM="0.574"/><br />
    <WHYPO WORD="" CLASSID="</s>&#8221; PHONE=&#8221;silE&#8221; CM=&#8221;1.000&#8243;/><br />
  </SHYPO><br />
</RECOGOUT><br />
[/c]<br />
取得しているのは一行づつみたいなので、必要な行の必要な部分だけ取り出してあげればオッケーでした。<br />
他にもっといい方法あるかと思いますが、とりあえず簡単にできたので。<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/12/openframeworks-openframeworks%e3%81%a7julius%e3%82%92%e4%bd%bf%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[openFrameworks] openFrameworksでKinectとopenNI使ったスケルトントラッキングのメモ</title>
		<link>http://blog.azzip-azzip.com/2011/12/openframeworks_kinect_openni/</link>
		<comments>http://blog.azzip-azzip.com/2011/12/openframeworks_kinect_openni/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 12:17:54 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[openFrameworks]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[openNI]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2631</guid>
		<description><![CDATA[openFrameworksでスケルトントラッキングしてキャラクターを動かそうとしたら、 各部位の座標の取得でハマりました。いい情報が見つからなかったのでメモ。 ofxOpenNIのサンプルをgithubからダウンロード [...]]]></description>
			<content:encoded><![CDATA[<p>
openFrameworksでスケルトントラッキングしてキャラクターを動かそうとしたら、<br />
各部位の座標の取得でハマりました。いい情報が見つからなかったのでメモ。<br />
<a href="https://github.com/gameoverhack/ofxOpenNI">ofxOpenNIのサンプル</a>をgithubからダウンロードして使ってます。<br />
<br />
</p>
<blockquote><p>各部位の座標を取得</p></blockquote>
<p>
なんか無理矢理な気がするのできっと他にいい方法があるはず。。<br />
顔の座標の取得は<br />
[c]<br />
recordUser.tracked_users[0]->neck.position[0].X<br />
recordUser.tracked_users[0]->neck.position[0].Y<br />
[/c]<br />
または<br />
[c]<br />
recordUser.tracked_users[0]->neck.position[1].X<br />
recordUser.tracked_users[0]->neck.position[1].Y<br />
[/c]<br />
でいけました。<br />
顔と首の付け根の部分の座標が取れたので角度計算してあげれば首まげたりできた。<br />
その他の部位は<br />
[c]<br />
//顔（首）<br />
recordUser.tracked_users[0]->neck.position<br />
<br />
//左肩、左ひじ、左手<br />
recordUser.tracked_users[0]->left_shoulder.position<br />
recordUser.tracked_users[0]->left_upper_arm.position<br />
recordUser.tracked_users[0]->left_lower_arm.position<br />
	<br />
//右肩、右ひじ、右手<br />
recordUser.tracked_users[0]->right_shoulder.position<br />
recordUser.tracked_users[0]->right_upper_arm.position<br />
recordUser.tracked_users[0]->right_lower_arm.position<br />
	<br />
//左肩とおなかの真ん中<br />
recordUser.tracked_users[0]->left_upper_torso.position<br />
<br />
//右肩とおなかの真ん中<br />
recordUser.tracked_users[0]->right_upper_torso.position<br />
	<br />
//左足の関節のつけね、左ひざ、左足<br />
recordUser.tracked_users[0]->left_lower_torso.position<br />
recordUser.tracked_users[0]->left_upper_leg.position<br />
recordUser.tracked_users[0]->left_lower_leg.position<br />
<br />
//右足の関節のつけね、右ひざ、右足<br />
recordUser.tracked_users[0]->right_lower_torso.position<br />
recordUser.tracked_users[0]->right_upper_leg.position<br />
recordUser.tracked_users[0]->right_lower_leg.position<br />
<br />
//おしり（左右の足の間接のつけね）<br />
hip.debugDraw();<br />
[/c]<br />
でいけました。<br />
手とか足とか回転させる場合は基本的にどの部分もposition[0]とposition[1]で角度計算してあげればいける。<br />
角度とかも中で計算してくれてて値取れるのかな。。　わかりません。<br />
<br />
</p>
<blockquote><p>認識しているかどうか</p></blockquote>
<p>
認識しているかどうかを管理したいときに<br />
[c]recordUser.getNumberOfTrackedUsers();[/c]<br />
でユーザーの感知はできるけど、ボーンを認識していなくても反応してしまう。<br />
ボーンを認識されているかどうかで処理をわけたいときは<br />
[c]recordUser.tracked_users[0]->neck.found[/c]<br />
とかのどっかの部位が見つかったかどうかを調べることで、スケルトントラッキングできているか判別できました。<br />
足とかだと隠れちゃう可能性もあるので、首にしとけば無難だと思います。　無理やりですが。。<br />
<br />
部位の座標の取得とか無理矢理な気がするので、いい方法あったら教えてください。<br />
<br />
</p>
<blockquote><p>参考</p></blockquote>
<p>
• <a href="https://github.com/gameoverhack/ofxOpenNI">https://github.com/gameoverhack/ofxOpenNI<br />
</a><br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/12/openframeworks_kinect_openni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[obj-c, openGL] GLKitについて</title>
		<link>http://blog.azzip-azzip.com/2011/12/ios-advent-calendar_glkit/</link>
		<comments>http://blog.azzip-azzip.com/2011/12/ios-advent-calendar_glkit/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 21:52:09 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[objective-c]]></category>
		<category><![CDATA[openGL]]></category>
		<category><![CDATA[GLKit]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2604</guid>
		<description><![CDATA[メリークリスマス！！ iOS Advent calendarに参加してまして、24日クリスマスイブの日の記事になります。 いままで23個の記事が出てきていますが、自分が興味があった ＆ 被らなかった のでネタは GLKi [...]]]></description>
			<content:encoded><![CDATA[<p>
メリークリスマス！！<br />
<br />
<a href="http://atnd.org/events/22792">iOS Advent calendar</a>に参加してまして、24日クリスマスイブの日の記事になります。<br />
いままで23個の記事が出てきていますが、自分が興味があった ＆ 被らなかった のでネタは <strong>GLKit</strong> にしました。<br />
勉強しながらなので薄い内容ですが、ご了承ください。<br />
<br />
openGLを使って遊んだりしてたけど、iPhoneでopenGLいじろうとしたらopenGL ES 2.0でなんかいろいろ違うじゃーんという思いを胸に、<br />
勉強していきたいと思います。 <br />
<br />
記事の流れはこんな感じです。<br />
<ul>
     <li>・openGL と openGL ES 2.0</li>
     <li>・GLKitとは</li>
     <li>・GLKitのテンプレさわってみる</li>
</ul>
<br />
<strong></p>
<blockquote><p>openGL と openGL ES 2.0</p></blockquote>
<p></strong>まずはopenGLとopenGL ES 2.0の違い<br />
<div class="line"><ul>
    	<li><strong>openGL ES 2.0では固定機能シェーダを完全に廃止</strong></li>
    	<li>&nbsp;&nbsp; glVertexPointer, glNormalPointer などの頂点系の削除</li>
    	<li>&nbsp;&nbsp; glPushMatrix, glPopMatrix などのマトリックス系の削除</li>
    	<li>&nbsp;&nbsp; glLight〜 などのライティング系の削除 </li>
<br /><br />
	<li><strong>プログラマブルシェーダのみの実装。</strong></li>
	<li>&nbsp;&nbsp; バーテックスシェーダ, フラグメントシェーダ などのシェーダを使う</li>
</ul></div>
などなど。<a href="http://www.asahi-net.or.jp/~yw3t-trns/opengl/opengles/index.htm">ここ</a> を参考に。<br />
<br />
今までopenGLの勉強したり遊んだりする場合は、固定機能シェーダを使ってました。<br />
GLSLもすこし勉強しているものの、まだ全然使えていないので固定機能シェーダが使えずプログラマブルシェーダだけでやっていく<br />
openGL ES 2.0 は僕には敷居が高いです。。<br />
<br />
そんなとき、<strong>GLKit</strong> の出番！ということですね。<br />
shader書かかず、openGL ES 2.0でopenGL的なことができるクラスが用意されているみたいです。<br />
<br />
<br />
</p>
<blockquote><p>GLKit について</p></blockquote>
<p>
iOS 5で追加されたopenGLのフレームワークで、openGL ES 2.0を使いやすくしてくれます。<br />
<br />
<a href="http://developer.apple.com/library/ios/#documentation/GLkit/Reference/GLKit_Collection/_index.html" target="_brank">リファレンス</a>より（google翻訳使いました）<br />
<div class="line">
openGL ES 2.0 アプリケーションを作成するのに必要な労力や、<br />
既存の openGL ES 1.1 アプリケーションを openGL ES 2.0 に移植するための労力を減らすためのライブラリを提供します。<br />
</div>
<br />
主な機能<br />
<div class="line"><ul>
	<li><strong>Texture loading</strong> : テクスチャーの扱いを簡単にしてくれる</li>
	<li><strong>Math libraries</strong> : 最適化されたベクトル、行列の関数が用意されている</li>
	<li><strong>Views and View Controllers</strong> : openGL ESのレンダリング、ループの実装を提供してくれる</li>
	<li><strong>Effects</strong> : 必要なシェーダの実装をやってくれる</li>
</ul></div>
Effects機能のGLKBaseEffectでライティングやマトリックス系の処理やってくれます。<br />
他にもopenGL的な書き方ができるのとGLU系の関数と似たものが用意されていたりします。<br />
<a href="http://nantekottai.com/2011/10/25/glkit-basics/"  target="_brank">こちら</a> で詳しく説明されているので、ここにぐわーと書いたの読むより、そちらを読んだ方が深く理解できるかと思います。<br />
<br />
<br />
</p>
<blockquote><p>GLKitのテンプレさわってみる</p></blockquote>
<p>
とりあえず最低限の使い方を理解したいので、テンプレート触ってみます。<br />
GLKitの機能を使っているものと、shaderを使っているものの２つ分記述してあるみたいなので、GLKitの部分だけを見ていきます。<br />
<br />
最初は立方体が2つぐるぐる回ってますが、シンプルにしていって最終的にはこんな感じに。<br />
<br />
<img src="http://farm8.staticflickr.com/7002/6560157891_06866c891a_b.jpg" alt="glkit_sample" />
<br />
<br />
[c]<br />
// &#8211; (void)viewDidLoad<br />
<br />
    self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];<br />
[/c]<br />
初期化と、指定したバージョンの OpenGL ES レンダリングAPIを割り当て。<br />
<br />
<br />
[c]    <br />
// &#8211; (void)viewDidLoad<br />
<br />
    GLKView * view = (GLKView *)self.view;<br />
    view.context = self.context;<br />
    view.drawableDepthFormat = GLKViewDrawableDepthFormat24;<br />
[/c]<br />
GLKitの準備。<br />
<br />
<br />
[c]<br />
// &#8211; (void)setupGL<br />
<br />
    [EAGLContext setCurrentContext:self.context];<br />
    <br />
    self.effect = [[GLKBaseEffect alloc] init];<br />
    self.effect.light0.enabled = GL_TRUE;<br />
    self.effect.light0.diffuseColor = GLKVector4Make(1.0f, 0.4f, 0.4f, 1.0f);<br />
[/c]<br />
最初に現在のレンダリングスレッドをセット。<br />
<br />
次にGLKBaseEffectクラスのeffect変数にライティングを設定しています。<br />
openGLでは8つの光源が設定できましたが、GLKBaseEffect.light* は0, 1, 2の3つしかないっぽいです。<br />
ていうかopenGL ESはもともと3つしかないのかな？<br />
エフェクトの初期化を抜けば、２行でライティングの設定ができて楽です。<br />
<br />
その後はVBOの設定をしているみたいです。<br />
<br />
<br />
[c]<br />
// &#8211; (void)tearDownGL<br />
<br />
    [EAGLContext setCurrentContext:self.context];<br />
    <br />
    glDeleteBuffers(1, &#038;_vertexBuffer);<br />
    self.effect = nil;<br />
[/c]<br />
viewDidUnloadではtearDownGL関数を呼んでいます。<br />
後始末。<br />
<br />
<br />
[c]<br />
// &#8211; (void)update<br />
<br />
    /**<br />
     * PROJECTION<br />
     */<br />
    float aspect = fabsf(self.view.bounds.size.width / self.view.bounds.size.height);<br />
    GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(65.0f), aspect, 1.0f, 100.0f);<br />
    self.effect.transform.projectionMatrix = projectionMatrix;<br />
    <br />
    /**<br />
     * MODEL VIEW<br />
     */<br />
    GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -3.0f);<br />
    modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 1.0f, 1.0f, 1.0f);<br />
    self.effect.transform.modelviewMatrix = modelViewMatrix;<br />
<br />
[/c]<br />
更新用のデリゲートメソッド<br />
本来はglkViewControllerUpdateだけど、 GLKViewControllerのサブクラスだからupdateを呼べばいい？（たぶん）<br />
<br />
まずはopenGLでいうところの <strong>glMatrixMode(GL_PROJECTION);</strong> 的な部分の記述。<br />
GLKMatrix4MakePerspectiveではgluPerspectiveとほぼほぼ同じようにかけます。GLU系が使えないけど代替の機能があるので助かります。<br />
最後にeffect.transform.projectionMatrixに代入。<br />
<br />
次にopenGLでいうところの <strong>glMatrixMode(GL_MODELVIEW);</strong> 的な部分の記述。<br />
GLKMatrix4MakeTranslationでマトリックス作りつつtranslationの設定。glTranslatedてきな感じ。<br />
あとは必要な設定をしてeffect.transform.modelviewMatrixに代入。<br />
glTranslated, glRotate, glScaleっぽい設定ができます。<br />
<br />
テンプレではGLKMatrix4Multiplyを使って２つのマトリックを掛け合わせたりしてるみたいですが、<br />
とりあえずはシンプルに理解したいので、そこはカット。<br />
<br />
最後にテンプレではアニメーション用の_rotationの値を更新してます。<br />
<br />
<br />
[c]<br />
//- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect<br />
<br />
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);<br />
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);<br />
    <br />
    [self.effect prepareToDraw];<br />
    glDrawArrays(GL_TRIANGLES, 0, 36);<br />
[/c]<br />
描画用のデリゲートメソッド<br />
prepareToDrawメソッドで エフェクト使うよ というのを定義して、<br />
その後描画してます。<br />
<br />
<br />
</p>
<blockquote><p>まとめ</p></blockquote>
<p>
いまはopenGLにすごく興味があるので、GLKitを勉強してみました。<br />
<br />
GLKitがあればシェーダの知識がなくても使うことができて便利なので、<br />
アプリにちょっとだけopenGL使いたいってなったときにはこれから使っていけそうです。<br />
ただ個人的にはやっぱりシェーダーをしっかり覚えていきたいので、がっつり使って何か作るという機会はなさそうです。<br />
ゲームっぽいの作ろう！ってなってもきっとcocos2d使うと思いますし。<br />
<br />
クリスマスが爆発する何かを作る予定でしたが、時間がなくて断念。<br />
勉強しながらの薄い内容で申し訳なかったですが、みなさんよいクリスマスイブを〜！!<br />
<br />
間違いなどのご指摘あれば <a href="https://twitter.com/#!/_azzip">@_azzip</a> まで連絡ください。<br />
<br />
<br />
</p>
<blockquote><p>参考</p></blockquote>
<p>
・<a href="http://developer.apple.com/library/ios/#documentation/GLkit/Reference/GLKit_Collection/_index.html" target="_brank">http://developer.apple.com/library/ios/#documentation/GLkit/Reference/GLKit_Collection/_index.html</a><br />
・<a href="http://nantekottai.com/2011/10/13/opengl-game-template/" target="_brank">http://nantekottai.com/2011/10/13/opengl-game-template/</a><br />
・<a href="http://nantekottai.com/2011/10/25/glkit-basics/" target="_brank">http://nantekottai.com/2011/10/25/glkit-basics/</a><br />
・<a href="http://d.hatena.ne.jp/nakamura001/20111117/1321545530" target="_brank">http://d.hatena.ne.jp/nakamura001/20111117/1321545530</a><br />
・<a href="http://monsho.blog63.fc2.com/blog-category-5.html">http://monsho.blog63.fc2.com/blog-category-5.html</a><br />
・<a href="http://d.hatena.ne.jp/ntaku/20090610/1244619913">http://d.hatena.ne.jp/ntaku/20090610/1244619913</a><br />
・<a href="http://www.asahi-net.or.jp/~yw3t-trns/opengl/opengles/index.htm">http://www.asahi-net.or.jp/~yw3t-trns/opengl/opengles/index.htm</a><br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/12/ios-advent-calendar_glkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[event] 秋のつづる狩り in 上野動物園</title>
		<link>http://blog.azzip-azzip.com/2011/11/tuduru_zoo/</link>
		<comments>http://blog.azzip-azzip.com/2011/11/tuduru_zoo/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 14:11:45 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[event]]></category>
		<category><![CDATA[photograph]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2585</guid>
		<description><![CDATA[つづるかわいいよつづる。 つづるママにはアップしていいとの許可をだたきましたので、アップアップ！ 他にも Flickr にアップしてありますんで、よければご覧下さい。]]></description>
			<content:encoded><![CDATA[<p>
つづるかわいいよつづる。<br />
つづるママにはアップしていいとの許可をだたきましたので、アップアップ！<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6410484095/in/set-72157628171446635"><img src="http://farm8.staticflickr.com/7002/6410484095_76e1e517fc_b.jpg" alt="秋のつづる狩り in 上野動物園" />
</a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6410489529/in/set-72157628171446635"><img src="http://farm8.staticflickr.com/7163/6410489529_dcfa60a8b7_b.jpg" alt="秋のつづる狩り in 上野動物園" />
</a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6410496395/in/set-72157628171446635"><img src="http://farm8.staticflickr.com/7150/6410496395_d2dbf6901c_b.jpg" alt="秋のつづる狩り in 上野動物園" />
</a><br />
<br />
<br />
<a href="http://www.flickr.com/photos/hirofumi_kaneko/6410492195/in/set-72157628171446635"><img src="http://farm8.staticflickr.com/7162/6410492195_2e6f355dd1_b.jpg" alt="秋のつづる狩り in 上野動物園" />
</a><br />
<br />
他にも <a href="http://www.flickr.com/photos/hirofumi_kaneko/sets/72157628171446635/">Flickr</a> にアップしてありますんで、よければご覧下さい。<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/11/tuduru_zoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[books] ここ数ヶ月で買った本、読んだ本、買ったけどまだ読んで無い本</title>
		<link>http://blog.azzip-azzip.com/2011/11/books01/</link>
		<comments>http://blog.azzip-azzip.com/2011/11/books01/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 14:35:38 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2408</guid>
		<description><![CDATA[金欠なので本買うのけっこう押さえてます。 リファレンス的なほんだと買っても読むタイミングがなかなかなかったりするので、 もっとこう考え方とかの本とかいいですね。はい。欲しいですね。 最近買った本の整理もかねて感想を。 フ [...]]]></description>
			<content:encoded><![CDATA[<p>
金欠なので本買うのけっこう押さえてます。<br />
リファレンス的なほんだと買っても読むタイミングがなかなかなかったりするので、<br />
もっとこう考え方とかの本とかいいですね。はい。欲しいですね。<br />
最近買った本の整理もかねて感想を。<br />
<br />
</p>
<blockquote><p>フィジカルコンピューティングを「仕事」にする</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4862671136/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4862671136"><img class="img_line" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4862671136&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4862671136" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4862671136/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4862671136">フィジカルコンピューティングを「仕事」にする</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4862671136" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
前半のチュートリアル部分はわかってる部分も多々あったのでパラパラパラっと軽く読みました。実際に使うときにリファレンス本的に使う感じにしたいです。<br />
お目当ての実案件の紹介が載っている後半部分はじっくり読みました。<br />
実案件への以ていきかた、実際にどように実装したか、現場で起こった事故にどう対処し、その後どう生かしているかなど。<br />
普段なかなか聞きたくても聞く機会のないことがたくさん書かれているので素敵です。特に実装方法の部分ではこういった方法で作ってるのか！など発見があり、勉強になりました。これから先インスタレーションの仕事をする機会があれば参考にしていきたいです。　1社に1冊は欲しいっすね！<br />
<br />
<br />
<br />
</p>
<blockquote><p>FORM+CODE -デザイン／アート／建築における、かたちとコード</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4861007518/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4861007518"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4861007518&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4861007518" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4861007518/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4861007518">FORM+CODE -デザイン／アート／建築における、かたちとコード</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4861007518" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
プログラミングするときの考え方が載っている本で、いろいろ難しい言葉も出てきましたが、すらっと読めました。<br />
最近読んだ本の中で一番面白かったです。<br />
繰り返す、変換する、パラメーター化、可視化、シュミレートなどのカテゴリ分けでいろいろ書かれてますが、<br />
個人的にはパラメータ化とシュミレートの部分が面白く、印象に残ってます。　歴史の話はマニアックすぎて自分にはちょっと難しかったです、、、<br />
この本読んで自分の中で考え方が変わったものもあって、プログラミングでかっこいいもん作りてーー！と思えました。<br />
<br />
<br />
<br />
</p>
<blockquote><p>OpenGL+GLSLによる画像処理プログラミング</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4777514765&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765">OpenGL+GLSLによる画像処理プログラミング―「OpenGL」と「シェーダ言語」で「レタッチ・ソフト」の仕組みを知る! (I・O BOOKS)</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
GLSLの勉強したくて買った本。GLSLのサンプルがいろいろのっているのと、基礎について書かれているのでかなり参考になりました。<br />
メインの画像処理部分は難しすぎてほとんど読めていませんが、、レビューに書いてあったとおり、やりたいときにリファレンス本として読んでいく方がいいのかな〜という感じです。<br />
GLSLの部分はわりと整理出来た感があるので、苦手意識は少しは消えました。まだまだ勉強中なのでこれからも読んでいこうと思います。<br />
<br />
<br />
<br />
</p>
<blockquote><p>レイアウトのデザインパターン帖</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4756241034/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4756241034"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4756241034&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4756241034" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4756241034/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4756241034">レイアウトのデザインパターン帖</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4756241034" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
とにかくデザインのレイアウトパターンが載っている本で、パラパラっとどんなのがあるかな〜という感じで読みました。<br />
「このレイアウトはここがこうなって、こうでここがこうなっているから良い！」とか、そういう考え方の本ではなかったですね。そういうもんだと思ってアマゾンで買いました、違いました。 ちゃんとレビューとか読んでなかったです。　反省。<br />
でもこれはこれで、パラパラっとどんなレイアウトの例があるかなーと見れるので結果オーライで！　<br />
<br />
<br />
<br />
</p>
<blockquote><p>iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4873115027/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4873115027"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4873115027&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4873115027" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4873115027/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4873115027">iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザイン</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4873115027" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
買いましたが、まだちゃんと時間とって読めてないのでこれから読みます！<br />
<br />
<br />
<br />
</p>
<blockquote><p>蒼井優写真集 「ダンデライオン」</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4860520696/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4860520696"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4860520696&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4860520696" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4860520696/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4860520696">蒼井優写真集 「ダンデライオン」</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4860520696" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
蒼井優ですね！　かわいいですね！　言う事無しです！　1家に1冊！<br />
<br />
<br />
<br />
</p>
<blockquote><p>うそっ。</p></blockquote>
<p>
<a href="http://www.amazon.co.jp/gp/product/4891948221/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4891948221"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4891948221&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4891948221" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4891948221/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4891948221">うそっ。</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4891948221" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
蒼井優ですね！　かわいいですね！　言う事無しです！　1家に1冊！<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/11/books01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[openGL, GLSL] openGL＋GLSLのメモ #2  座標系</title>
		<link>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo2/</link>
		<comments>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo2/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:34:37 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[GLSL]]></category>
		<category><![CDATA[openGL]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2379</guid>
		<description><![CDATA[openGLとかGLSLやっていくうえで座標系がしっかり理解できてないとこの先理解できないので、 基礎的なことだけどちゃんとメモ。 座標系と変換の流れ 1. オブジェクト座標系（モデリング座標、ローカル座標） オブジェク [...]]]></description>
			<content:encoded><![CDATA[<p>
openGLとかGLSLやっていくうえで座標系がしっかり理解できてないとこの先理解できないので、<br />
基礎的なことだけどちゃんとメモ。<br />
<br />
</p>
<blockquote><p>座標系と変換の流れ</p></blockquote>
<p>
<strong>1. オブジェクト座標系（モデリング座標、ローカル座標）</strong><br />
オブジェクトの頂点や法線を表す座標系<br />
<ul>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;▼ <strong>モデリング変換</strong> : オブジェクト座標系をワールド座標系に変換</li>
</ul>
<strong>2. ワールド座標系（グローバル座標系）</strong><br />
空間中のオブジェクトの位置を示す座標系<br />
<ul>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;▼ <strong>視野変換（ビューイング変換）</strong> : ワールド座標系から視点座標系への変換</li>
</ul>
<strong>3. 視点座標系（眼点座標系）</strong><br />
空間を視点（カメラ）から見た空間へ変換した座標系。<br />
<ul>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;▼ <strong>射影変換</strong> : 視点座標系からクリップ座標系への変換（オブジェクトの奥行き情報を保持する変換）</li>
</ul>
<strong>4. クリップ座標系</strong><br />
視点からの近平面と遠平面をクリッピングする座標系（たぶん）<br />
<ul>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;▼ <strong>遠近除算</strong> : 遠近除算（正規化）処理をすることで、クリップ座標系から正規化デバイス座標系になる</li>
</ul>
<strong>5. 正規化デバイス座標系</strong><br />
クリップ座標系の座標 x, y, z 成分を w で割った座標系<br />
<ul>
	<li>&nbsp;&nbsp;&nbsp;&nbsp;▼ <strong>ビューポート変換</strong> : 正規化デバイス座標系からウインドウ座標系への変換</li>
</ul>
<strong>6. ウインドウ座標系</strong><br />
表示画面に対応するピクセル単位の座標系<br />
<br />
<br />
<br />
<br />
以下は実際のopenGLでの処理。流れは逆からになる。<br />
</p>
<blockquote><p>ビューポート変換  5 → 6</p></blockquote>
<p>
正規化デバイス座標系からウインドウ座標系への変換<br />
ウインドウに設定される実際の描画領域の設定<br />
通常は表示ウインドウとビューポートのサイズを一致させて作る<br />
[c]<br />
void glViewport(GLint x , GLint y , GLsizei width , GLsizei height);<br />
[/c]<br />
▼<br />
</p>
<blockquote><p>射影変換  3 → 4, 5</p></blockquote>
<p>
視点座標系からクリップ座標系に変換<br />
投影の設定<br />
[c]<br />
glMatrixMode( GL_PROJECTION );<br />
glLoadIdentity();<br />
[/c]<br />
射影行列を使うことを宣言してから、変換を行う<br />
<br />
<strong>・透視投影の場合</strong><br />
[c]<br />
void gluPerspective(<br />
	GLdouble fovy , GLdouble aspect ,<br />
	GLdouble zNear , GLdouble zFar<br />
);[/c]<br />
aspectをビューポート変換で設定した width / height に設定することで<br />
図形の長さの比が保たれるようになる <br />
<br />
<strong>・正射影の場合</strong><br />
[c]<br />
void glOrtho(<br />
	GLdouble left , GLdouble right ,<br />
	GLdouble bottom , GLdouble top , <br />
	GLdouble near , GLdouble far      <br />
);<br />
[/c]<br />
▼<br />
</p>
<blockquote><p>視野変換  2 → 3</p></blockquote>
<p>
ワールド座標系から視点座標系への変換<br />
視点の設定と中心点の設定を行う<br />
[c]<br />
glMatrixMode( GL_MODELVIEW );<br />
glLoadIdentity();<br />
[/c]<br />
モデルビュー行列を使うことを宣言してから、変換を行う<br />
[c]<br />
void gluLookAt(GLdouble ex, GLdouble ey, GLdouble ez, <br />
			 GLdouble cx, GLdouble cy, GLdouble cz, <br />
			 GLdouble ux, GLdouble uy, GLdouble uz)<br />
//例)<br />
gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);<br />
[/c]<br />
ex, ey, ez : 視点（カメラ）の位置<br />
cx, cy, cz : シーンの中心点<br />
ux, uy, uz : 視体積の上方部分（ 通常は 0.0, 1.0, 0.0 でおっけ）<br />
<br />
▼<br />
</p>
<blockquote><p>モデリング変換  1 → 2</p></blockquote>
<p>
オブジェクト座標系をワールド座標系に変換<br />
下記の関数を利用して変換することを「アフィン変換（モデリング変換）」という<br />
[c]<br />
glScale*(sx, sy, sz);<br />
glRotate*(angle, ax, ay, az);<br />
glTranslate*(tx, ty, tz);<br />
[/c]<br />
▼<br />
</p>
<blockquote><p>オブジェクトの描画</p></blockquote>
<p>
実際に表示させるオブジェクトを描画する<br />
<br />
<br />
<br />
</p>
<blockquote><p>参考</p></blockquote>
<p>
・<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765">OpenGL+GLSLによる画像処理プログラミング―「OpenGL」と「シェーダ言語」で「レタッチ・ソフト」の仕組みを知る! (I・O BOOKS)</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
・<a href="http://oshiro.bpe.es.osaka-u.ac.jp/people/staff/imura/computer/OpenGL/coordinates/disp_content">OpenGLの座標系</a><br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[openGL, GLSL] openGL＋GLSLのメモ #1</title>
		<link>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo01/</link>
		<comments>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo01/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 14:25:52 +0000</pubDate>
		<dc:creator>_azzip</dc:creator>
				<category><![CDATA[GLSL]]></category>
		<category><![CDATA[openGL]]></category>

		<guid isPermaLink="false">http://blog.azzip-azzip.com/?p=2325</guid>
		<description><![CDATA[シェーダーむずいですね。とりあえずは基礎からしっかりとな感じで頑張ってます。 OpenGL+GLSLによる画像処理プログラミング この本とwebを見ながらGLSLの勉強したメモ。 まだ全部読んでないしよくわかってないけど [...]]]></description>
			<content:encoded><![CDATA[<p>
<img src="http://farm7.static.flickr.com/6221/6325810079_f50d15afa5_b.jpg" alt="GLSL hello world" />
シェーダーむずいですね。とりあえずは基礎からしっかりとな感じで頑張ってます。<br />
<br />
<br />
<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_il?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765"><img border="0" src="http://ws.assoc-amazon.jp/widgets/q?_encoding=UTF8&#038;Format=_SL160_&#038;ASIN=4777514765&#038;MarketPlace=JP&#038;ID=AsinImage&#038;WS=1&#038;tag=pizza01-22&#038;ServiceVersion=20070822" ></a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765">OpenGL+GLSLによる画像処理プログラミング</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
<br />
この本とwebを見ながらGLSLの勉強したメモ。 まだ全部読んでないしよくわかってないけど頭の整理もかねて。<br />
<br />
</p>
<blockquote><p>シェーダの種類</p></blockquote>
<p>
<ul>
	<li><strong>・バーテックスシェーダ（頂点シェーダ）</strong></li>
	<li><strong>・フラグメントシェーダ（ピクセルシェーダ）</strong></li>
</ul>
<br />
<strong>バーテックスシェーダ（頂点シェーダ）</strong><br />
<div class="line">頂点データを扱う。<br />
&#8220;位置・色・テクスチャ&#8221; とかの頂点の属性だけを参照・変更できる。<br />
バーテックスシェーダで計算された頂点は、ジオメトリシェーダかフラグメントシェーダに渡される。</div>
<br />
<strong>フラグメントシェーダ（ピクセルシェーダ）</strong><br />
<div class="line">各ピクセルに影響し、テクスチャを参照することで &#8220;バンプマッピング・フォグ・シャドウ・ブルーム&#8221; とかのエフェクトをレンダリング結果に適用させる。</div>
wiki見るとこんな感じらしい。 <br />
とりあえずは、バーテックスシェーダで頂点情報を計算して、フラグメントシェーダでエフェクトかけて、openGLに渡す<br />
っていう流れでいいんですかね。<br />
<br />
<br />
次はシェーダープログラムのほうのメモ。<br />
<br />
</p>
<blockquote><p>shader.frag と shader.vert </p></blockquote>
<p>
<a href="http://www.arakin.dyndns.org/glsl_simple.php">参考にさせてもらったサイト</a>のバーテックスシェーダとフラグメントシェーダのソースをほんーーのちょっとイジったやつ。<br />
[c]<br />
//shader.vert<br />
<br />
uniform int a;　//openGLと値のやりとり用<br />
void main(void)<br />
{<br />
    //transform <br />
	gl_Position = ftransform();<br />
	<br />
    // normal color <br />
	gl_FrontColor.rgb = 0.5 * gl_Normal.xyz + 0.5;<br />
	gl_FrontColor.a = float(a) * 0.01;<br />
}<br />
[/c]<br />
[c]<br />
//shader.frag<br />
<br />
void main (void)<br />
{<br />
	gl_FragColor = gl_Color;    <br />
}<br />
[/c]<br />
shader.vertのgl_FrontColorの値がshader.fragのgl_Colorに渡されて、<br />
shader.fragのgl_FragColorの値がopenGL側に適用される感じ？<br />
次あたりここら辺はまた詳しく勉強してメモしたいです。<br />
<br />
<br />
</p>
<blockquote><p>openGLとGLSLでのやりとり</p></blockquote>
<p>
GLSLを使うためのお決まり処理の流れは、参考サイトに書かれているものによると、<br />
<div class="line"><ul>
	<li>1. バーテックスシェーダとフラグメントシェーダのシェーダオブジェクトを作成 &#8211; glCreateShader();</li>
	<li>2. 作成したそれぞれのシェーダオブジェクトに対してソースプログラムを読み込む &#8211; glShaderSource();</li>
	<li>3. 読み込んだソースプログラムをコンパイル &#8211; glCompileShader();</li>
	<li>4. プログラムオブジェクトを作成 &#8211; glCreateProgram();</li>
	<li>5. プログラムオブジェクトに対してシェーダオブジェクトを登録 &#8211; glAttachShader();</li>
	<li>6. シェーダプログラムをリンク &#8211; glLinkProgram();</li>
	<li>7. シェーダプログラムを適用 &#8211; glUseProgram()</li>
</ul></div>
こんな流れらしい。　コピペしましたすいません。<br />
ここは覚えたほうがいいんだろうけど、クラス化しておけば触れずにすむところではあるので、ちょっとスルーで。<br />
とりあえず、<a href="http://www.amazon.co.jp/gp/product/4777514765/ref=as_li_ss_tl?ie=UTF8&#038;tag=pizza01-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4777514765">この本</a><img src="http://www.assoc-amazon.jp/e/ir?t=pizza01-22&#038;l=as2&#038;o=9&#038;a=4777514765" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />のサンプルのGLSLのお決まり処理クラスをちょっと変えて自分の使いやすいようにして使わせてもらいます。<br />
<br />
<br />
以下はopenGLとGLSLで値のやりとりの部分のメモ。<br />
[c]<br />
//main.cpp<br />
<br />
//シェーダーオブジェクト<br />
GLuint shader;<br />
<br />
void display(void)<br />
{<br />
    glClear(GL_COLOR_BUFFER_BIT);<br />
    <br />
    glUseProgram(shader); //シェーダーの適用<br />
<br />
    GLint a = 80; //openGLとシェーダーでやりとりする変数<br />
    GLint _loc01 = glGetUniformLocation(shader, &#8220;a&#8221;);<br />
    glUniform1i(_loc01, a);<br />
    <br />
    GLfloat vertex[][2]=<br />
    {<br />
        {10,10},<br />
        {100,10},<br />
        {10,100},<br />
        {100,100}<br />
    };<br />
    glVertexPointer(2, GL_FLOAT, 0, vertex);    <br />
    glEnableClientState(GL_VERTEX_ARRAY);    <br />
    glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);<br />
    <br />
    glUseProgram(0);  //シェーダーの適用の終了<br />
    <br />
    glFlush();<br />
}<br />
[/c]<br />
大事なところだけで抜粋。initとかの関数は無視。<br />
<br />
[c]<br />
//main.cpp<br />
<br />
glUseProgram(shader);<br />
/**<br />
 *この部分で描画処理<br />
 */<br />
glUseProgram(0);<br />
[/c]<br />
ここの描画処理の中に書かれたものにシェーダーが適用される。<br />
上のソースでいうとglDrawArraysで書いた四角形にシェーダーが適用されている。<br />
<br />
[c]<br />
//main.cpp<br />
<br />
GLint a = 80;<br />
GLint _loc01 = glGetUniformLocation(shader, &#8220;a&#8221;); //値を渡すための準備<br />
glUniform1i(_loc01, a); //値を渡す<br />
[/c]<br />
openGLとシェーダーの値のやりとりの部分。<br />
<div class="line">glGetUniformLocation : シェーダプログラムに値を渡すため、変数のインデックスを取得する。<br />
glUniform1i : openGLからシェーダプログラムに渡す。</div>
こんな関数を使えばいいらしい。<br />
あらかじめシェーダプログラム側に変数を用意しておいて、それのインデックスを取得、それを使って値をシェーダプログラムに渡す流れ。<br />
<br />
なんとなく、openGLとGLSL使うときの基礎的なメモはこんな感じで、ちょっとだけ苦手意識は消えた気が。気だけ。少しだけ。<br />
これからは時間みてもうちょっとシェーダプログラムとかopenGLとGLSLで値のやりとりの部分とか、サクッとコピペで終わったGLSLのお決まり処理の部分とかやってきます！<br />
<br />
<br />
<br />
<br />
<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.azzip-azzip.com/2011/11/opengl-glsl_memo01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

